1 %# BEGIN BPS TAGGED BLOCK {{{
5 %# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
6 %# <sales@bestpractical.com>
8 %# (Except where explicitly superseded by other copyright notices)
13 %# This work is made available to you under the terms of Version 2 of
14 %# the GNU General Public License. A copy of that license should have
15 %# been provided with this software, but in any event can be snarfed
18 %# This work is distributed in the hope that it will be useful, but
19 %# WITHOUT ANY WARRANTY; without even the implied warranty of
20 %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 %# General Public License for more details.
23 %# You should have received a copy of the GNU General Public License
24 %# along with this program; if not, write to the Free Software
25 %# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26 %# 02110-1301 or visit their web page on the internet at
27 %# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
30 %# CONTRIBUTION SUBMISSION POLICY:
32 %# (The following paragraph is not intended to limit the rights granted
33 %# to you to modify and distribute this software under the terms of
34 %# the GNU General Public License and is only of importance to you if
35 %# you choose to contribute your changes and enhancements to the
36 %# community by submitting them to Best Practical Solutions, LLC.)
38 %# By intentionally submitting any modifications, corrections or
39 %# derivatives to this work, or any other work intended for use with
40 %# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41 %# you are the copyright holder for those contributions and you grant
42 %# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
43 %# royalty-free, perpetual, license to use, copy, create derivative
44 %# works based on those contributions, and sublicense and distribute
45 %# those contributions and any derivatives thereof.
47 %# END BPS TAGGED BLOCK }}}
54 my $base_query = $m->comp('/Elements/QueryString',
55 Format => $ARGS{Format},
57 OrderBy => $ARGS{OrderBy},
58 Order => $ARGS{Order},
61 my $interp = $m->interp;
62 my $eh = sub { $interp->apply_escapes( @_, 'h' ) };
63 my $eu = sub { $interp->apply_escapes( @_, 'u' ) };
65 $m->out('<table class="collection-as-table chart">'. "\n");
66 foreach my $section (qw(thead tbody tfoot)) {
67 next unless $Table{ $section } && @{ $Table{ $section } };
69 $m->out("<$section>\n");
70 foreach my $row ( @{ $Table{ $section } } ) {
72 $m->out(' class="'. ($row->{'even'}? 'evenline' : 'oddline') .'"')
73 if defined $row->{'even'};
76 foreach my $cell ( @{ $row->{'cells'} } ) {
77 my $tag = $cell->{'type'} eq 'value'? 'td' : 'th';
80 my @class = ('collection-as-table');
81 push @class, ($cell->{'type'}) unless $cell->{'type'} eq 'head';
82 push @class, $cell->{'even'} ? 'evenline' : 'oddline'
83 if defined $cell->{'even'};
84 $m->out(' class="'. $eh->( join ' ', @class ) .'"');
86 foreach my $dir ( grep $cell->{$_}, qw(rowspan colspan) ) {
87 my $value = int $cell->{ $dir };
88 $m->out(qq{ $dir="$value"});
90 $m->out(' style="background-color: #'. $m->interp->apply_escapes($cell->{color}) .'"')
94 if ( defined $cell->{'value'} ) {
95 if ( my $q = $cell->{'query'} ) {
97 '<a href="'. $eh->(RT->Config->Get('WebPath')) .'/Search/Results.html'
98 .'?Query='. $eu->(join ' AND ', map "($_)", grep defined && length, $Query, $q)
99 . $eh->('&') . $base_query
102 $m->out( $eh->( $cell->{'value'} ) );
106 $m->out( $eh->( $cell->{'value'} ) );
116 $m->out("</$section>\n\n");