import rt 3.6.4
[freeside.git] / rt / html / Search / Results.tsv
index e6b2048..bb19073 100644 (file)
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
 %#                                          <jesse@bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
 %# 
 %# You should have received a copy of the GNU General Public License
 %# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%# 02110-1301 or visit their web page on the internet at
+%# http://www.gnu.org/copyleft/gpl.html.
 %# 
 %# 
 %# CONTRIBUTION SUBMISSION POLICY:
 %# those contributions and any derivatives thereof.
 %# 
 %# END BPS TAGGED BLOCK }}}
+<%ARGS>
+$OrderBy => 'id'
+$Order => 'ASC'
+</%ARGS>
 <%INIT>
 
-my $Tickets = RT::Tickets->new($session{'CurrentUser'});
-$Tickets->FromSQL($ARGS{'Query'});
+my $Tickets = RT::Tickets->new( $session{'CurrentUser'} );
+$Tickets->FromSQL( $ARGS{'Query'} );
+if ( $OrderBy =~ /\|/ ) {
+
+  # Multiple Sorts
+  my @OrderBy = split /\|/, $OrderBy;
+  my @Order   = split /\|/, $Order;
+  $Tickets->OrderByCols(
+    map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } }
+      ( 0 .. $#OrderBy ) );
+}
+else {
+  $Tickets->OrderBy( FIELD => $OrderBy, ORDER => $Order );
+}
 
 my @rows;
 my %known_cfs;
 
 my @attrs = qw( id QueueObj->Name Subject Status TimeEstimated TimeWorked TimeLeft Priority FinalPriority OwnerObj->Name 
-                Requestors->MemberEmailAddressesAsString DueObj->ISO ToldObj->ISO
-                CreatedObj->ISO ResolvedObj->ISO );
+                Requestors->MemberEmailAddressesAsString Cc->MemberEmailAddressesAsString AdminCc->MemberEmailAddressesAsString
+                DueObj->ISO ToldObj->ISO CreatedObj->ISO ResolvedObj->ISO LastUpdatedObj->ISO);
 
-    $r->content_type('application/vnd.ms-excel');
-    while ( my $Ticket = $Tickets->Next()) {
-       my $row;
-       foreach my $attr (@attrs) {
-                my $method = '$Ticket->'.$attr.'()';
-           $row->{$attr} = eval $method;
+$r->content_type('application/vnd.ms-excel');
+while ( my $Ticket = $Tickets->Next()) {
+    my $row;
+    foreach my $attr (@attrs) {
+        if ($attr =~ /(.*)->ISO$/ and $Ticket->$1->Unix <= 0) {
+            $row->{$attr} = "";
+        } else {
+            my $method = '$Ticket->'.$attr.'()';
+            $row->{$attr} = eval $method;
             if ($@) {die "Failed to find $attr - ". $@}; 
-       }
-
-        my $cfs = $Ticket->QueueObj->TicketCustomFields();
-        while (my $cf = $cfs->Next) {
-                my @content;
-               my $values = $Ticket->CustomFieldValues($cf->Id);
-               while (my $value = $values->Next) {
-                       push @content, $value->Content;
-               }
-                $row->{'CustomField-'.$cf->Id} = join(', ',@content);
-                if ($row->{'CustomField-'.$cf->Id}) {
-                        $known_cfs{$cf->Id} = $cf->Name;
-                }
         }
-        push @rows, $row;
-
+    }
 
+    my $cfs = $Ticket->QueueObj->TicketCustomFields();
+    while (my $cf = $cfs->Next) {
+        my @content;
+        my $values = $Ticket->CustomFieldValues($cf->Id);
+        while (my $value = $values->Next) {
+            push @content, $value->Content;
+        }
+        $row->{'CustomField-'.$cf->Id} = join(', ',@content);
+        if ($row->{'CustomField-'.$cf->Id}) {
+            $known_cfs{$cf->Id} = $cf->Name;
+        }
     }
+    push @rows, $row;
+}
+
 { 
-my @header;
+    my @header;
     foreach my $attr (@attrs) {
         my $label = $attr;
         $label =~ s'Obj-.(?:AsString|Name|ISO)''g;
@@ -89,27 +110,25 @@ my @header;
        push @header, $label;
     }
     foreach my $id (sort keys %known_cfs) {
-        push @header, $known_cfs{$id}; 
+        push @header, "CF-".$known_cfs{$id}; 
     }
-
-$m->out(join("\t", @header));
-$m->out("\n");
+    $m->out(join("\t", @header));
+    $m->out("\n");
 }
+
 foreach my $row (@rows) {
-        my @row;
-        foreach my $attr(@attrs) {
-                push @row, $row->{"$attr"};
-        }
-        foreach my $id (sort keys %known_cfs) {
-               my $val = $row->{'CustomField-'.$id};
-                $val =~ s/(\n|\r)//g;
-                push @row, $val;
-        }
-        
-        $m->out(join("\t",@row));
-        $m->out("\n");
+    my @row;
+    foreach my $attr(@attrs) {
+        push @row, $row->{"$attr"};
+    }
+    foreach my $id (sort keys %known_cfs) {
+        my $val = $row->{'CustomField-'.$id};
+        $val =~ s/(\n|\r)//g;
+        push @row, $val;
+    }
+    $m->out(join("\t",@row));
+    $m->out("\n");
 }
 
-
 $m->abort();
 </%INIT>