diff options
Diffstat (limited to 'rt/share/html/Search/Elements/ChartTable')
-rw-r--r-- | rt/share/html/Search/Elements/ChartTable | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/rt/share/html/Search/Elements/ChartTable b/rt/share/html/Search/Elements/ChartTable new file mode 100644 index 000000000..045653ae8 --- /dev/null +++ b/rt/share/html/Search/Elements/ChartTable @@ -0,0 +1,119 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC +%# <sales@bestpractical.com> +%# +%# (Except where explicitly superseded by other copyright notices) +%# +%# +%# LICENSE: +%# +%# This work is made available to you under the terms of Version 2 of +%# the GNU General Public License. A copy of that license should have +%# been provided with this software, but in any event can be snarfed +%# from www.gnu.org. +%# +%# This work is distributed in the hope that it will be useful, but +%# WITHOUT ANY WARRANTY; without even the implied warranty of +%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%# General Public License for more details. +%# +%# You should have received a copy of the GNU General Public License +%# along with this program; if not, write to the Free Software +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. +%# +%# +%# CONTRIBUTION SUBMISSION POLICY: +%# +%# (The following paragraph is not intended to limit the rights granted +%# to you to modify and distribute this software under the terms of +%# the GNU General Public License and is only of importance to you if +%# you choose to contribute your changes and enhancements to the +%# community by submitting them to Best Practical Solutions, LLC.) +%# +%# By intentionally submitting any modifications, corrections or +%# derivatives to this work, or any other work intended for use with +%# Request Tracker, to Best Practical Solutions, LLC, you confirm that +%# you are the copyright holder for those contributions and you grant +%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, +%# royalty-free, perpetual, license to use, copy, create derivative +%# works based on those contributions, and sublicense and distribute +%# those contributions and any derivatives thereof. +%# +%# END BPS TAGGED BLOCK }}} +<%ARGS> +%Table => () +$Query => undef +</%ARGS> +<%INIT> + +my $base_query = $m->comp('/Elements/QueryString', + Format => $ARGS{Format}, + Rows => $ARGS{Rows}, + OrderBy => $ARGS{OrderBy}, + Order => $ARGS{Order}, +); + +my $interp = $m->interp; +my $eh = sub { $interp->apply_escapes( @_, 'h' ) }; +my $eu = sub { $interp->apply_escapes( @_, 'u' ) }; + +$m->out('<table class="collection-as-table chart">'. "\n"); +foreach my $section (qw(thead tbody tfoot)) { + next unless $Table{ $section } && @{ $Table{ $section } }; + + $m->out("<$section>\n"); + foreach my $row ( @{ $Table{ $section } } ) { + $m->out(' <tr'); + $m->out(' class="'. ($row->{'even'}? 'evenline' : 'oddline') .'"') + if defined $row->{'even'}; + $m->out(">"); + + foreach my $cell ( @{ $row->{'cells'} } ) { + my $tag = $cell->{'type'} eq 'value'? 'td' : 'th'; + $m->out("<$tag"); + + my @class = ('collection-as-table'); + push @class, ($cell->{'type'}) unless $cell->{'type'} eq 'head'; + push @class, $cell->{'even'} ? 'evenline' : 'oddline' + if defined $cell->{'even'}; + $m->out(' class="'. $eh->( join ' ', @class ) .'"'); + + foreach my $dir ( grep $cell->{$_}, qw(rowspan colspan) ) { + my $value = int $cell->{ $dir }; + $m->out(qq{ $dir="$value"}); + } + $m->out(' style="background-color: #'. $m->interp->apply_escapes($cell->{color}) .'"') + if $cell->{color}; + + $m->out('>'); + if ( defined $cell->{'value'} ) { + if ( my $q = $cell->{'query'} ) { + $m->out( + '<a href="'. $eh->(RT->Config->Get('WebPath')) .'/Search/Results.html' + .'?Query='. $eu->(join ' AND ', map "($_)", grep defined && length, $Query, $q) + . $eh->('&') . $base_query + . '">' + ); + $m->out( $eh->( $cell->{'value'} ) ); + $m->out('</a>'); + } + else { + $m->out( $eh->( $cell->{'value'} ) ); + } + } + else { + $m->out(' '); + } + $m->out("</$tag>"); + } + $m->out("</tr>\n"); + } + $m->out("</$section>\n\n"); +} +$m->out("</table>"); +</%INIT> |