X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fhtml%2FSearch%2FResults.tsv;h=bb1907317a752bc1777afb9c3b1d57ced353e529;hp=e6b20481f9d3c3319788ea4aaf108dc7d841a477;hb=ef20b2b6b1feb47ad02b5ff7525f1a0fd11d0fa4;hpb=a513c0bef534d05f03c1242831b6f3be19b97dae diff --git a/rt/html/Search/Results.tsv b/rt/html/Search/Results.tsv index e6b20481f..bb1907317 100644 --- a/rt/html/Search/Results.tsv +++ b/rt/html/Search/Results.tsv @@ -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 %# %# %# (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: @@ -43,45 +45,64 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} +<%ARGS> +$OrderBy => 'id' +$Order => 'ASC' + <%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();