X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FElements%2FShowCustomFields;h=0423e1b24f50d1437c3e246ba0001172c9933d43;hb=de9d037528895f7151a9aead6724ce2df95f9586;hp=1bb61435ffb4cff2b104fe6d61d31914ec8f38dc;hpb=fc6209f398899f0211cfcedeb81a3cd65e04a941;p=freeside.git diff --git a/rt/share/html/Elements/ShowCustomFields b/rt/share/html/Elements/ShowCustomFields index 1bb61435f..0423e1b24 100644 --- a/rt/share/html/Elements/ShowCustomFields +++ b/rt/share/html/Elements/ShowCustomFields @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -45,49 +45,72 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -% $m->callback( CallbackName => 'BeforeCustomFields' ); +% $m->callback( CallbackName => 'BeforeCustomFields', Object => $Object, +% Grouping => $Grouping, ARGSRef => \%ARGS, CustomFields => $CustomFields, Table => $Table ); % if ($Table) { % } -% while ( my $CustomField = $CustomFields->Next ) { -% my $Values = $Object->CustomFieldValues( $CustomField->Id ); -% my $count = $Values->Count; +% foreach my $set ($CustomFields, $HiddenCustomFields) { +% $set->GotoFirstItem; +% while ( my $CustomField = $set->Next ) { +% my $Values = $Object->CustomFieldValues( $CustomField->Id ); +% my $count = $Values->Count; +% next if $HideEmpty and not $count; +% next if $count == 0 and $CustomField->Disabled; +% $m->callback( CallbackName => 'AfterCustomFieldValue', CustomField => $CustomField, +% Object => $Object, Grouping => $Grouping, Table => $Table ); +% } % } % if ($Table) {
<% $CustomField->Name %>: -% unless ( $count ) { +% if ( $count == 0 ) { <&|/l&>(no value) -% } elsif ( $count == 1 ) { -% $print_value->( $CustomField, $Values->First ); -% } else { +% } elsif ( $count == 1 ) { +% $print_value->( $CustomField, $Values->First ); +% } else {
    -% while ( my $Value = $Values->Next ) { +% while ( my $Value = $Values->Next ) {
  • -% $print_value->( $CustomField, $Value ); +% $print_value->( $CustomField, $Value );
  • -% } +% }
-% } +% }
% } -% $m->callback( CallbackName => 'AfterCustomFields', Object => $Object ); +% $m->callback( CallbackName => 'AfterCustomFields', Object => $Object, +% Grouping => $Grouping, ARGSRef => \%ARGS, Table => $Table ); <%INIT> $m->callback( + %ARGS, CallbackName => 'MassageCustomFields', - Object => $Object, + Object => $Object, CustomFields => $CustomFields, + Table => $Table, ); +# kludge to allow "Support time" to be displayed even though it's been +# removed +my $HiddenCustomFields = RT::CustomFields->new($session{'CurrentUser'}); +$HiddenCustomFields->LimitToChildType(ref $Object); +$HiddenCustomFields->Limit( FIELD => 'Type', VALUE => 'TimeValue' ); +$HiddenCustomFields->LimitToDeleted; + +$CustomFields->LimitToGrouping( $Object => $Grouping ) if defined $Grouping; + +# don't print anything if there is no custom fields +return unless $CustomFields->Count > 0 or $HiddenCustomFields->Count > 0; + my $print_value = sub { my ($cf, $value) = @_; my $linked = $value->LinkValueTo; if ( defined $linked && length $linked ) { my $linked = $m->interp->apply_escapes( $linked, 'h' ); - $m->out(''); + $m->out(''); } my $comp = "ShowCustomField". $cf->Type; $m->callback( @@ -95,6 +118,7 @@ my $print_value = sub { Name => \$comp, CustomField => $cf, Object => $Object, + Table => $Table, ); if ( $m->comp_exists( $comp ) ) { $m->comp( $comp, Object => $value ); @@ -108,13 +132,13 @@ my $print_value = sub { if ( $cf->IncludeContentForValue ) { my $vid = $value->id; $m->out( '
' ); - $m->print( loc("See also:") ); - $m->out( '' ); - $m->print( $value->IncludeContentForValue ); + $m->out( loc("See also:") ); + $m->out( '' ); + $m->out( $m->interp->apply_escapes($value->IncludeContentForValue, 'h') ); $m->out( qq{
\n} ); - $m->out( qq{\n} ); + $m->out( qq{\n} ); } }; @@ -122,5 +146,7 @@ my $print_value = sub { <%ARGS> $Object => undef $CustomFields => $Object->CustomFields +$Grouping => undef $Table => 1 +$HideEmpty => 0