diff options
Diffstat (limited to 'rt/html/Elements/ShowCustomFields')
| -rw-r--r-- | rt/html/Elements/ShowCustomFields | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/rt/html/Elements/ShowCustomFields b/rt/html/Elements/ShowCustomFields index 986184120..199fe3606 100644 --- a/rt/html/Elements/ShowCustomFields +++ b/rt/html/Elements/ShowCustomFields @@ -44,36 +44,42 @@ %# %# END BPS TAGGED BLOCK }}} <table> -% my @entry_fields; -% while (my $CustomField = $CustomFields->Next()) { -% my $Values = $Object->CustomFieldValues($CustomField->Id); +% while ( my $CustomField = $CustomFields->Next ) { +% my $Values = $Object->CustomFieldValues( $CustomField->Id ); +% my $count = $Values->Count; <tr> - <td class="label"><%$CustomField->Name%>:</td> + <td class="label"><% $CustomField->Name %>:</td> <td class="value"> +% unless ( $count ) { +<i><&|/l&>(no value)</&></i> +% } elsif ( $count == 1 ) { +% $print_value->( $CustomField, $Values->First ); +% } else { <ul> -% while (my $Value = $Values->Next()) { -<li> -% my $comp = "ShowCustomField".$CustomField->Type; -% if ($m->comp_exists($comp)) { -<& $comp, Object => $Value &> -% } else { -<%$Value->Content%> -% } -</li> -% } -% unless ($Values->Count()) { -<li><i><&|/l&>(no value)</&></i></li> +% while ( my $Value = $Values->Next ) { +<li><% $print_value->( $CustomField, $Value ) |n %></li> % } </ul> +% } </td> </tr> % } </table> <%INIT> my $CustomFields = $Object->CustomFields; - $m->comp('/Elements/Callback', _CallbackName => 'MassageCustomFields', +$m->comp('/Elements/Callback', _CallbackName => 'MassageCustomFields', CustomFields => $CustomFields); +my $print_value = sub { + my ($cf, $value) = @_; + my $comp = "ShowCustomField". $cf->Type; + if ( $m->comp_exists( $comp ) ) { + $m->comp( $comp, Object => $value ); + } else { + $m->print( $value->Content ); + } +}; + </%INIT> <%ARGS> $Object => undef |
