X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FElements%2FCollectionAsTable%2FHeader;h=4a2576858ce41cdedf4c9dbd37ae90b59d6a903f;hb=de9d037528895f7151a9aead6724ce2df95f9586;hp=550ce9f3f2e3b6f11c0b29b6d5890cbda8659262;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd;p=freeside.git diff --git a/rt/share/html/Elements/CollectionAsTable/Header b/rt/share/html/Elements/CollectionAsTable/Header index 550ce9f3f..4a2576858 100644 --- a/rt/share/html/Elements/CollectionAsTable/Header +++ b/rt/share/html/Elements/CollectionAsTable/Header @@ -1,40 +1,40 @@ %# BEGIN BPS TAGGED BLOCK {{{ -%# +%# %# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -%# -%# +%# +%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC +%# +%# %# (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 @@ -43,7 +43,7 @@ %# 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> $Class => 'RT__Ticket' @@ -71,6 +71,8 @@ $generic_query_args->{'Format'} = $FormatString if grep $_ eq 'Format', @PassArg my $item = 0; foreach my $col ( @Format ) { + my $attr = $col->{'attribute'} || $col->{'last_attribute'}; + my $title = $col->{'title'} || ''; if ( $title eq 'NEWLINE' ) { while ( $item < $maxitems ) { @@ -93,20 +95,35 @@ foreach my $col ( @Format ) { $m->out('out(' colspan="' . $m->interp->apply_escapes($span => 'h') . '"') if $span; + + my $align = $col->{'align'} || do { + my $tmp_columnmap = $m->comp( '/Elements/ColumnMap', + Class => $Class, + Name => $attr, + Attr => 'align', + ); + ProcessColumnMapValue( $tmp_columnmap, Arguments => [ $attr ] ); + }; + $m->out(qq{ style="text-align: $align"}) if $align; $m->out('>'); + my $loc_title; # if title is not defined then use defined attribute or last # one we saw in the format unless ( defined $col->{'title'} ) { - my $attr = $col->{'attribute'} || $col->{'last_attribute'}; my $tmp = $m->comp( '/Elements/ColumnMap', Class => $Class, Name => $attr, Attr => 'title', ); $title = ProcessColumnMapValue( $tmp, Arguments => [ $attr ] ); + + # in case title is not defined in ColumnMap + # the following regex changes $attr like from "ReferredToBy" to "Referred To By" + $title = join ' ', split /(?<=[a-z])(?=[A-Z])/, $attr unless defined $title; + $loc_title = $attr =~ /^(?:CustomField|CF)\./ ? $title : loc($title); } else { - $title = $m->comp('/Elements/ScrubHTML', Content => $title); + $loc_title = loc($m->comp('/Elements/ScrubHTML', Content => $title)); } if ( $AllowSorting and $col->{'attribute'} @@ -122,19 +139,19 @@ foreach my $col ( @Format ) { my $new_order = 'ASC'; $new_order = $Order[0] eq 'ASC'? 'DESC': 'ASC' - if $OrderBy[0] && $OrderBy[0] eq $attr; + if $OrderBy[0] && ($OrderBy[0] eq $attr or "$attr|$OrderBy[0]" =~ /^(Created|id)\|(Created|id)$/); $m->out( - 'interp->apply_escapes($BaseURL . $m->comp( '/Elements/QueryString', %$generic_query_args, OrderBy => $attr, Order => $new_order - ) - . '">'. loc($title) .'' + ), 'h') + . '">'. $loc_title .'' ); } else { - $m->out( loc($title) ); + $m->out( $loc_title ); } $m->out(''); }