[Rt-commit] rt branch, 4.4/hide-empty-value-pref, created. rt-4.2.12-373-g8238700

? sunnavy sunnavy at bestpractical.com
Fri Oct 30 14:25:46 EDT 2015


The branch, 4.4/hide-empty-value-pref has been created
        at  82387001e740195a3f812b8c0267260911ec0643 (commit)

- Log -----------------------------------------------------------------
commit 82387001e740195a3f812b8c0267260911ec0643
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Sat Oct 31 02:06:41 2015 +0800

    new option HideUnsetFieldsOnDisplay
    
    let's give this choice to users.
    
    Fixes: I#31328

diff --git a/etc/RT_Config.pm.in b/etc/RT_Config.pm.in
index 47315ab..d1177d2 100644
--- a/etc/RT_Config.pm.in
+++ b/etc/RT_Config.pm.in
@@ -1612,8 +1612,16 @@ transitioned to another inactive status.
 
 Set($HideResolveActionsWithDependencies, 0);
 
-=back
+=item C<$HideUnsetFieldsOnDisplay>
+
+This determines if we should hide unset fields on ticket display page.
+Set this to 1 to hide unset fields.
+
+=cut
+
+Set($HideUnsetFieldsOnDisplay, 0);
 
+=back
 
 
 =head2 Articles
diff --git a/lib/RT/Config.pm b/lib/RT/Config.pm
index bcf4189..2a38572 100644
--- a/lib/RT/Config.pm
+++ b/lib/RT/Config.pm
@@ -471,6 +471,15 @@ our %META;
             Description => 'Enable quote folding?' # loc
         }
     },
+    HideUnsetFieldsOnDisplay => {
+        Section => 'Ticket display',
+        Overridable => 1,
+        SortOrder => 11,
+        Widget => '/Widgets/Form/Boolean',
+        WidgetArguments => {
+            Description => 'Hide unset fields?' # loc
+        }
+    },
 
     # User overridable locale options
     DateTimeFormat => {
diff --git a/share/html/Elements/ShowLinks b/share/html/Elements/ShowLinks
index 5287813..8f881b0 100644
--- a/share/html/Elements/ShowLinks
+++ b/share/html/Elements/ShowLinks
@@ -47,7 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <table>
 % for my $type (@display) {
-% if ( $clone{$type} || $Object->$type->Count ) {
+% if ( !RT->Config->Get('HideUnsetFieldsOnDisplay', $session{CurrentUser}) || $clone{$type} || $Object->$type->Count ) {
   <tr>
     <td class="labeltop">
       <& ShowRelationLabel, Object => $Object, Label => $labels{$type}.':', Relation => $type &>
diff --git a/share/html/Ticket/Elements/ShowDates b/share/html/Ticket/Elements/ShowDates
index 03e3225..925af6b 100644
--- a/share/html/Ticket/Elements/ShowDates
+++ b/share/html/Ticket/Elements/ShowDates
@@ -51,21 +51,21 @@
     <td class="value"><% $Ticket->CreatedObj->AsString %></td>
   </tr>
 % $m->callback( %ARGS, CallbackName => 'AfterCreated', TicketObj => $Ticket );
-% if ( $Ticket->StartsObj->Unix ) {
+% if ( !$hide_unset_fields || $Ticket->StartsObj->Unix ) {
   <tr class="date starts">
     <td class="label"><&|/l&>Starts</&>:</td>\
     <td class="value"><% $Ticket->StartsObj->AsString %></td>
   </tr>
 % $m->callback( %ARGS, CallbackName => 'AfterStarts', TicketObj => $Ticket );
 % }
-% if ( $Ticket->StartedObj->Unix ) {
+% if ( !$hide_unset_fields || $Ticket->StartedObj->Unix ) {
   <tr class="date started">
     <td class="label"><&|/l&>Started</&>:</td>\
     <td class="value"><% $Ticket->StartedObj->AsString %></td>
   </tr>
 % $m->callback( %ARGS, CallbackName => 'AfterStarted', TicketObj => $Ticket );
 % }
-% if ( $Ticket->ToldObj->Unix || $Ticket->CurrentUserHasRight('ModifyTicket') ) {
+% if ( !$hide_unset_fields || $Ticket->ToldObj->Unix || $Ticket->CurrentUserHasRight('ModifyTicket') ) {
   <tr class="date told">
     <td class="label">
 % if ( $Ticket->CurrentUserHasRight('ModifyTicket' ) ) {
@@ -78,11 +78,11 @@
 % $m->callback( %ARGS, CallbackName => 'AfterTold', TicketObj => $Ticket );
 % }
 
-% if ( $Ticket->DueObj->Unix ) {
+% if ( !$hide_unset_fields || $Ticket->DueObj->Unix ) {
   <tr class="date due">
     <td class="label"><&|/l&>Due</&>:</td>\
 % my $due = $Ticket->DueObj;
-% if ( $due && $due->IsSet && $due->Diff < 0 && $Ticket->QueueObj->IsActiveStatus($Ticket->Status) ) {
+% if ( !$hide_unset_fields || $due && $due->IsSet && $due->Diff < 0 && $Ticket->QueueObj->IsActiveStatus($Ticket->Status) ) {
     <td class="value"><span class="overdue"><% $due->AsString  %></span></td>
 % } else {
     <td class="value"><% $due->AsString  %></td>
@@ -91,7 +91,7 @@
 % $m->callback( %ARGS, CallbackName => 'AfterDue', TicketObj => $Ticket );
 % }
 
-% if ( $Ticket->ResolvedObj->Unix ) {
+% if ( !$hide_unset_fields || $Ticket->ResolvedObj->Unix ) {
   <tr class="date resolved">
     <td class="label"><&|/l&>Closed</&>:</td>\
     <td class="value"><% $Ticket->ResolvedObj->AsString  %></td>
@@ -117,6 +117,8 @@ $Ticket => undef
 $UpdatedLink => 1
 </%ARGS>
 <%INIT>
+my $hide_unset_fields = RT->Config->Get('HideUnsetFieldsOnDisplay', $session{CurrentUser});
+
 if ($UpdatedLink and $Ticket) {
     my $txns = $Ticket->Transactions;
     $txns->OrderByCols(
diff --git a/share/html/Ticket/Elements/ShowPeople b/share/html/Ticket/Elements/ShowPeople
index 52ea2c5..eea509d 100644
--- a/share/html/Ticket/Elements/ShowPeople
+++ b/share/html/Ticket/Elements/ShowPeople
@@ -58,13 +58,13 @@
     <td class="labeltop"><&|/l&>Requestors</&>:</td>
     <td class="value"><& ShowGroupMembers, Group => $Ticket->Requestors, Ticket => $Ticket &></td>
   </tr>
-% if ( $Ticket->Cc->MembersObj->Count ) {
+% if ( !$hide_unset_fields || $Ticket->Cc->MembersObj->Count ) {
   <tr>
     <td class="labeltop"><&|/l&>Cc</&>:</td>
     <td class="value"><& ShowGroupMembers, Group => $Ticket->Cc, Ticket => $Ticket &></td>
   </tr>
 % }
-% if ( $Ticket->AdminCc->MembersObj->Count ) {
+% if ( !$hide_unset_fields || $Ticket->AdminCc->MembersObj->Count ) {
   <tr>
     <td class="labeltop"><&|/l&>AdminCc</&>:</td>
     <td class="value"><& ShowGroupMembers, Group => $Ticket->AdminCc, Ticket => $Ticket &></td>
@@ -73,6 +73,7 @@
   <& /Ticket/Elements/ShowCustomFields, Ticket => $Ticket, Grouping => 'People', Table => 0 &>
 </table>
 <%INIT>
+my $hide_unset_fields = RT->Config->Get('HideUnsetFieldsOnDisplay', $session{CurrentUser});
 </%INIT>
 <%ARGS>
 $Ticket => undef
diff --git a/t/web/ticket_display_unset_fields.t b/t/web/ticket_display_unset_fields.t
index 655c9d5..448056e 100644
--- a/t/web/ticket_display_unset_fields.t
+++ b/t/web/ticket_display_unset_fields.t
@@ -1,7 +1,7 @@
 use strict;
 use warnings;
 
-use RT::Test tests => undef;
+use RT::Test tests => undef, config => 'Set( $HideUnsetFieldsOnDisplay, 1 );';
 
 my @link_labels = (
     'Depends on',

-----------------------------------------------------------------------


More information about the rt-commit mailing list