diff options
author | mark <mark> | 2011-04-08 00:27:00 +0000 |
---|---|---|
committer | mark <mark> | 2011-04-08 00:27:00 +0000 |
commit | 09aa4ca78df448f73e440a25a024e44eaf00c827 (patch) | |
tree | c0b6a849bd9a7a75caef68cc98b902ed511dcf01 /rt/share/html | |
parent | 484dbc5f3c541abd4e81cdbd38c87f12d69552f3 (diff) |
display customer agent, class, tag in ticket search, #8784
Diffstat (limited to 'rt/share/html')
-rw-r--r-- | rt/share/html/Elements/RT__Ticket/ColumnMap | 86 | ||||
-rw-r--r-- | rt/share/html/Search/Elements/BuildFormatString | 2 |
2 files changed, 74 insertions, 14 deletions
diff --git a/rt/share/html/Elements/RT__Ticket/ColumnMap b/rt/share/html/Elements/RT__Ticket/ColumnMap index 7efc4b43e..411b3e56b 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'}, + \';"> ', + $t->{'name'}, + \' </SPAN>', + \' ' + ; + } + 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'}) { diff --git a/rt/share/html/Search/Elements/BuildFormatString b/rt/share/html/Search/Elements/BuildFormatString index 654f1db3c..dc07c683b 100644 --- a/rt/share/html/Search/Elements/BuildFormatString +++ b/rt/share/html/Search/Elements/BuildFormatString @@ -72,7 +72,7 @@ $CurrentDisplayColumns => undef my @fields = qw( id QueueName Subject - Customer + Customer Agent CustomerClass CustomerTags Status ExtendedStatus UpdateStatus Type |