summaryrefslogtreecommitdiff
path: root/rt/share/html/Elements/RT__Ticket
diff options
context:
space:
mode:
authormark <mark>2011-04-08 00:27:00 +0000
committermark <mark>2011-04-08 00:27:00 +0000
commit09aa4ca78df448f73e440a25a024e44eaf00c827 (patch)
treec0b6a849bd9a7a75caef68cc98b902ed511dcf01 /rt/share/html/Elements/RT__Ticket
parent484dbc5f3c541abd4e81cdbd38c87f12d69552f3 (diff)
display customer agent, class, tag in ticket search, #8784
Diffstat (limited to 'rt/share/html/Elements/RT__Ticket')
-rw-r--r--rt/share/html/Elements/RT__Ticket/ColumnMap86
1 files changed, 73 insertions, 13 deletions
diff --git a/rt/share/html/Elements/RT__Ticket/ColumnMap b/rt/share/html/Elements/RT__Ticket/ColumnMap
index 7efc4b4..411b3e5 100644
--- a/rt/share/html/Elements/RT__Ticket/ColumnMap
+++ b/rt/share/html/Elements/RT__Ticket/ColumnMap
@@ -316,24 +316,84 @@ $COLUMN_MAP = {
Customer => {
title => 'Customer', #loc
- attribute => 'Customer', #title/attribute/name... what does it all mean?
+ attribute => 'Customer.Number', #title/attribute/name... what does it all mean?
value => sub {
- my $Ticket = shift;
- my @Customers = @{ $Ticket->Customers->ItemsArrayRef };
- my @CustResolvers = map $_->TargetURI->Resolver, @Customers;
- my @return = ();
- for ( 0 .. $#CustResolvers ) {
- my $c = @CustResolvers[$_];
- push @return, \'<A HREF="', $c->HREF, \'">', $c->AsString, \'</A>';
- push @return, \'<BR>' if scalar(@CustResolvers) > 1
- && $_ != $#CustResolvers;
- }
- @return;
+ my $Ticket = shift;
+ my @return = ();
+ foreach my $c (ticket_cust_resolvers($Ticket)) {
+ push @return, \'<A HREF="', $c->HREF, \'">',
+ $c->AsString,
+ \'</A>',
+ \'<BR>';
+ }
+ pop @return;
+ @return;
+ },
+ },
+ # For future reference:
+ # hash key = name of the column in the format string
+ # (see /Search/Elements/BuildFormatString)
+ # title = displayed name in the table header
+ # attribute = the field to ORDER BY when sorting on this column
+ Agent => {
+ title => 'Agent',
+ attribute => 'Customer.Agent',
+ value => sub {
+ my $Ticket = shift;
+ my @return = ();
+ foreach my $c (ticket_cust_resolvers($Ticket)) {
+ push @return, $c->AgentName, \'<BR>';
+ }
+ pop @return;
+ @return;
+ },
+ },
+ CustomerClass => {
+ title => 'Class',
+ attribute => 'Customer.Class',
+ value => sub {
+ my $Ticket = shift;
+ my @return = ();
+ foreach my $c (ticket_cust_resolvers($Ticket)) {
+ push @return, $c->CustomerClass, \'<BR>';
+ }
+ pop @return;
+ @return;
+ },
+ },
+ CustomerTags => {
+ title => '',
+ attribute => '',
+ value => sub {
+ my $Ticket = shift;
+ my @return = ();
+ foreach my $c (ticket_cust_resolvers($Ticket)) {
+ my @tags = sort { $a->{'name'} cmp $b->{'name'} }
+ $c->CustomerTags;
+ foreach my $t (@tags) {
+ push @return, \'<SPAN style="background-color:#',
+ $t->{'color'},
+ \';">&nbsp;',
+ $t->{'name'},
+ \'&nbsp;</SPAN>',
+ \'&nbsp;'
+ ;
+ }
+ pop @return;
+ push @return, \'<BR>';
+ }
+ pop @return;
+ @return;
},
},
-
};
+sub ticket_cust_resolvers {
+ my $Ticket = shift;
+ my @Customers = @{ $Ticket->Customers->ItemsArrayRef };
+ return map $_->TargetURI->Resolver, @Customers;
+}
+
# if no GPG support, then KeyOwnerName and KeyRequestors fall back to the regular
# versions
if (RT->Config->Get('GnuPG')->{'Enable'}) {