%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2019 Best Practical Solutions, LLC
%# <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
<%ARGS>
$Format => RT->Config->Get('DefaultSearchResultFormat')
-%cfqueues => ()
+%queues => ()
$Face => undef
$Size => undef
# it -- and it grows per request.
# All the things we can display in the format string by default
-my @fields = qw(
+# referenced by their ColumnMap keys
+my @fields = (
+ qw(
id QueueName Subject
+ ),
+
+ $m->comp('/Elements/CustomerFields', 'Names'), #freeside
+ $m->comp('/Elements/ServiceFields', 'Names'), #freeside
+
+ qw(
Status ExtendedStatus UpdateStatus
Type
LastUpdated LastUpdatedRelative
Told ToldRelative
Due DueRelative
+ WillResolve WillResolveRelative
Resolved ResolvedRelative
RefersTo ReferredToBy
Bookmark
NEWLINE
+ NBSP
+ )
); # 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 %cfqueues) {
- # Gotta load up the $queue object, since queues get stored by name now. my $id
+foreach my $id (keys %queues) {
+ # Gotta load up the $queue object, since queues get stored by name now.
my $queue = RT::Queue->new($session{'CurrentUser'});
$queue->Load($id);
- unless ($queue->id) {
- # XXX TODO: This ancient code dates from a former developer
- # we have no idea what it means or why cfqueues are so encoded.
- $id =~ s/^.'*(.*).'*$/$1/;
- $queue->Load($id);
- }
+ next unless $queue->Id;
$CustomFields->LimitToQueue($queue->Id);
+ $CustomFields->SetContextObject( $queue ) if keys %queues == 1;
}
$CustomFields->LimitToGlobal;
my ( @seen);
$Format ||= RT->Config->Get('DefaultSearchResultFormat');
-my @format = split( /,\s*/, $Format );
+my @format = $m->comp('/Elements/CollectionAsTable/ParseFormat', Format => $Format);
foreach my $field (@format) {
- my %column = ();
- $field =~ s/'(.*)'/$1/;
- my ( $prefix, $suffix );
- if ( $field =~ m/(.*)__(.*)__(.*)/ ) {
- $prefix = $1;
- $suffix = $3;
- $field = $2;
- }
- $field = "<blank>" if !$field;
- $column{Prefix} = $prefix;
- $column{Suffix} = $suffix;
- $field =~ s/\s*(.*)\s*/$1/;
- $column{Column} = $field;
- push @seen, \%column;
+ # "title" is for columns like NEWLINE, which doesn't have "attribute"
+ $field->{Column} = $field->{attribute} || $field->{title} || '<blank>';
+ push @seen, $field;
}
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;
$column{Suffix} .= "</i>";
}
if ($Size) {
- $column{Prefix} .= "<" . $m->interp->apply_escapes( $Size, 'h' ) . ">";
- $column{Suffix} .= "</" . $m->interp->apply_escapes( $Size, 'h' ) . ">";
+ if ( $Size eq 'Large' ) {
+ $column{Prefix} .= '<span style="font-size:larger">';
+ $column{Suffix} .= '</span>';
+ }
+ else {
+ $column{Prefix} .= "<" . $m->interp->apply_escapes( $Size, 'h' ) . ">";
+ $column{Suffix} .= "</" . $m->interp->apply_escapes( $Size, 'h' ) . ">";
+ }
}
if ( $Link eq "Display" ) {
$column{Prefix} .= q{<a HREF="__WebPath__/Ticket/Display.html?id=__id__">};
}
}
elsif ( $ColUp ) {
- my $index = $CurrentDisplayColumns;
+ my ($index) = ($CurrentDisplayColumns // '') =~ /^(\d+)/;
if ( defined $index && ( $index - 1 ) >= 0 ) {
my $column = $seen[$index];
$seen[$index] = $seen[ $index - 1 ];
}
}
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 ];
my @format_string;
foreach my $field (@seen) {
next unless $field;
- my $row = "'";
- $row .= $field->{'Prefix'} if defined $field->{'Prefix'};
- $row .= "__" . ($field->{'Column'} =~ m/\(/ ? $field->{'Column'} # func, don't escape
- : $m->interp->apply_escapes( $field->{'Column'}, 'h' )) . "__"
- unless ( $field->{'Column'} eq "<blank>" );
- $row .= $field->{'Suffix'} if defined $field->{'Suffix'};
- $row .= "'";
+ my $row = "";
+ if ( $field->{'original_string'} ) {
+ $row = $field->{'original_string'};
+ }
+ else {
+ $row .= $field->{'Prefix'} if defined $field->{'Prefix'};
+ $row .= "__$field->{'Column'}__"
+ unless ( $field->{'Column'} eq "<blank>" );
+ $row .= $field->{'Suffix'} if defined $field->{'Suffix'};
+ $row =~ s!([\\'])!\\$1!g;
+ $row = "'$row'";
+ }
push( @format_string, $row );
}