X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FSearch%2FElements%2FBuildFormatString;h=51f8bbdb30aded69604500f6a7393447a771e442;hb=7322f2afedcc2f427e997d1535a503613a83f088;hp=14e3a710550e71b13a8ee7eafc6f619cb2bc778b;hpb=45d35d5739d05e602bc317739485693e0e9ff0b5;p=freeside.git diff --git a/rt/share/html/Search/Elements/BuildFormatString b/rt/share/html/Search/Elements/BuildFormatString index 14e3a7105..51f8bbdb3 100644 --- a/rt/share/html/Search/Elements/BuildFormatString +++ b/rt/share/html/Search/Elements/BuildFormatString @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -109,14 +109,18 @@ my @fields = ( ) ); # loc_qw +# This callback will only run once and will be removed in 4.4 +# If you want to add a new item to @fields, use the Default callback below. $m->callback( CallbackOnce => 1, CallbackName => 'SetFieldsOnce', Fields => \@fields ); my $CustomFields = RT::CustomFields->new( $session{'CurrentUser'}); foreach my $id (keys %queues) { - # Gotta load up the $queue object, since queues get stored by name now. my $id + # Gotta load up the $queue object, since queues get stored by name now. my $queue = RT::Queue->new($session{'CurrentUser'}); $queue->Load($id); - $CustomFields->LimitToQueue($queue->Id) if $queue->Id; + next unless $queue->Id; + $CustomFields->LimitToQueue($queue->Id); + $CustomFields->SetContextObject( $queue ) if keys %queues == 1; } $CustomFields->LimitToGlobal; @@ -138,8 +142,7 @@ foreach my $field (@format) { if ( $RemoveCol ) { # we do this regex match to avoid a non-numeric warning - my ($index) = $CurrentDisplayColumns =~ /^(\d+)/; - my $column = $seen[$index]; + my ($index) = ($CurrentDisplayColumns // '') =~ /^(\d+)/; if ( defined($index) ) { delete $seen[$index]; my @temp = @seen; @@ -172,8 +175,14 @@ elsif ( $AddCol ) { $column{Suffix} .= ""; } if ($Size) { - $column{Prefix} .= "<" . $m->interp->apply_escapes( $Size, 'h' ) . ">"; - $column{Suffix} .= "interp->apply_escapes( $Size, 'h' ) . ">"; + if ( $Size eq 'Large' ) { + $column{Prefix} .= ''; + $column{Suffix} .= ''; + } + else { + $column{Prefix} .= "<" . $m->interp->apply_escapes( $Size, 'h' ) . ">"; + $column{Suffix} .= "interp->apply_escapes( $Size, 'h' ) . ">"; + } } if ( $Link eq "Display" ) { $column{Prefix} .= q{}; @@ -204,7 +213,7 @@ elsif ( $AddCol ) { } } elsif ( $ColUp ) { - my $index = $CurrentDisplayColumns; + my ($index) = ($CurrentDisplayColumns // '') =~ /^(\d+)/; if ( defined $index && ( $index - 1 ) >= 0 ) { my $column = $seen[$index]; $seen[$index] = $seen[ $index - 1 ]; @@ -213,7 +222,7 @@ elsif ( $ColUp ) { } } elsif ( $ColDown ) { - my $index = $CurrentDisplayColumns; + my ($index) = ($CurrentDisplayColumns // '') =~ /^(\d+)/; if ( defined $index && ( $index + 1 ) < scalar @seen ) { my $column = $seen[$index]; $seen[$index] = $seen[ $index + 1 ]; @@ -227,17 +236,17 @@ my @format_string; foreach my $field (@seen) { next unless $field; my $row = ""; - if ( $field->{'output'} ) { - $row = join '', @{$field->{'output'}}; + if ( $field->{'original_string'} ) { + $row = $field->{'original_string'}; } else { $row .= $field->{'Prefix'} if defined $field->{'Prefix'}; $row .= "__$field->{'Column'}__" unless ( $field->{'Column'} eq "" ); $row .= $field->{'Suffix'} if defined $field->{'Suffix'}; + $row =~ s!([\\'])!\\$1!g; + $row = "'$row'"; } - $row =~ s!([\\'])!\\$1!g; - $row = "'$row'"; push( @format_string, $row ); }