[Rt-commit] rt branch 5.0/add-callback-cf-transaction-diff created. rt-5.0.2-275-g84116f5311

BPS Git Server git at git.bestpractical.com
Thu Jun 16 18:21:35 UTC 2022


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "rt".

The branch, 5.0/add-callback-cf-transaction-diff has been created
        at  84116f5311949ef52c6e969230fd09dc21bde617 (commit)

- Log -----------------------------------------------------------------
commit 84116f5311949ef52c6e969230fd09dc21bde617
Author: Brian Conry <bconry at bestpractical.com>
Date:   Thu Jun 16 13:00:53 2022 -0500

    Add callback for modifying which CFs are diffed
    
    In the ticket transaction display by default custom fields with a type
    that matches /text/ are show collapsed with a widget to expand and see a
    diff of the old and new contents.
    
    This change adds a callback, /Elements/ShowTransaction/ModifyShowCFDiff,
    that allows direct control over when custom fields are shown with a
    collapsed diff and when they are shown normally.

diff --git a/share/html/Elements/ShowTransaction b/share/html/Elements/ShowTransaction
index 67ccc5882a..b18ef43bbc 100644
--- a/share/html/Elements/ShowTransaction
+++ b/share/html/Elements/ShowTransaction
@@ -88,7 +88,7 @@ $m->comp(
 %     my $cf = RT::CustomField->new( $session{CurrentUser} );
 %     $cf->SetContextObject( $Transaction->Object );
 %     $cf->Load( $Transaction->Field );
-%     if ($cf->Id && $cf->Type =~ /text/i) {
+%     if ($show_cf_diff) {
 %        $old = $Transaction->OldValue // loc('(no value)');
 %        $old = $m->comp('/Elements/ScrubHTML', Content => $old);
 %        $old =~ s|\n|<br />|g;
@@ -192,6 +192,7 @@ if ( $ShowBody && !$Attachments ) {
         foreach @{ $attachments->ItemsArrayRef };
 }
 
+my $show_cf_diff = 0;
 my @actions = ();
 my $txn_type = $Transaction->Type;
 if ( $txn_type =~ /EmailRecord$/ ) {
@@ -211,7 +212,21 @@ elsif ($txn_type eq 'CustomField' && $Transaction->Field) {
     my $cf = RT::CustomField->new( $session{CurrentUser} );
     $cf->SetContextObject( $Transaction->Object );
     $cf->Load( $Transaction->Field );
+
     if ($cf->Id && $cf->Type =~ /text/i) {
+        $show_cf_diff = 1;
+    }
+
+    $m->callback(
+        CallbackName => 'ModifyShowCFDiff',
+        Transaction  => $Transaction,
+        Object       => $Object,
+        CF           => $cf,
+        ShowDiff     => \$show_cf_diff,
+        ARGSRef      => \%ARGS,
+    );
+
+    if ($show_cf_diff) {
         push @actions, { class => 'toggle-txn-details', title => loc('Show Details'), path => '#' };
     }
 }

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


hooks/post-receive
-- 
rt


More information about the rt-commit mailing list