[Rt-commit] rt branch, 4.6/reverse-transaction-order, created. rt-4.4.4-75-gabc139c50

Michel Rodriguez michel at bestpractical.com
Tue Feb 25 16:08:05 EST 2020


The branch, 4.6/reverse-transaction-order has been created
        at  abc139c509cbadcadf442b0652d71e0aa5dd9878 (commit)

- Log -----------------------------------------------------------------
commit 4087b3a62b7466abe7b236a89467650d3cdcebb7
Author: michel <michel at bestpractical.com>
Date:   Thu May 23 14:51:32 2019 +0200

    Fixed templates so that ShowHeaders is passed as an argument, instead
    of getting it sometimes from %ARGS

diff --git a/share/html/Elements/ShowHistoryHeader b/share/html/Elements/ShowHistoryHeader
index bf490b468..ba96fdfc5 100644
--- a/share/html/Elements/ShowHistoryHeader
+++ b/share/html/Elements/ShowHistoryHeader
@@ -58,6 +58,8 @@ my $histid      = "\L$record_type\E-" . $Object->id . "-history";
 </%INIT>
 <div class="history <% lc $record_type %>" id="<% $histid %>">
 <%perl>
+$ShowHeaders   //= 0;
+
 if ( $ShowDisplayModes or $ShowTitle or $ScrollShowHistory ) {
     my $title = $ShowTitle
                     ? loc('History')
diff --git a/share/html/Helpers/TicketHistory b/share/html/Helpers/TicketHistory
index 075598be1..56897f1e2 100644
--- a/share/html/Helpers/TicketHistory
+++ b/share/html/Helpers/TicketHistory
@@ -47,6 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <%ARGS>
 $id
+$ShowHeaders => 0
 </%ARGS>
 <%INIT>
 my $TicketObj = RT::Ticket->new($session{'CurrentUser'});
diff --git a/share/html/Ticket/Display.html b/share/html/Ticket/Display.html
index 2681a3831..d8832405a 100644
--- a/share/html/Ticket/Display.html
+++ b/share/html/Ticket/Display.html
@@ -114,6 +114,7 @@ my $titleright = qq{<a href="$url_html" data-show-label="$show_label" data-hide-
 <%ARGS>
 $TicketObj => undef
 $ShowHeaders => 0
+$ReverseTransactionOrder => 0
 $HideUnsetFields => RT->Config->Get('HideUnsetFieldsOnDisplay', $session{CurrentUser})
 $ForceShowHistory => 0
 </%ARGS>
diff --git a/share/html/Ticket/Elements/ScrollShowHistory b/share/html/Ticket/Elements/ScrollShowHistory
index d2aca08a8..757c172ef 100644
--- a/share/html/Ticket/Elements/ScrollShowHistory
+++ b/share/html/Ticket/Elements/ScrollShowHistory
@@ -47,6 +47,7 @@
 %# END BPS TAGGED BLOCK }}}
 <%ARGS>
 $Ticket
+$ShowHeaders => 0
 </%ARGS>
 
 <%INIT>
@@ -57,7 +58,7 @@ my $url = RT->Config->Get('WebPath') . "/Helpers/TicketHistoryPage?" .
         $m->comp('/Elements/QueryString', %params, id => $Ticket->id );
 
 my %extra_args = map { $_ => $ARGS{$_} // 1 } qw/ShowDisplayModes ShowTitle ScrollShowHistory/;
-$extra_args{ShowHeaders} = $ARGS{ShowHeaders};
+$extra_args{ShowHeaders} = $ShowHeaders;
 
 $m->callback( CallbackName => 'ExtraShowHistoryArguments', Ticket => $Ticket, ExtraArgs => \%extra_args );
 

commit abc139c509cbadcadf442b0652d71e0aa5dd9878
Author: michel <michel at bestpractical.com>
Date:   Thu May 23 16:06:34 2019 +0200

    Add a control to reverse the time order on the current ticket.
    
        Add the option in the template.
        Pass the new parameter through the various layers of templates.
        Add an option to SortedTransactions to change the original order.

diff --git a/etc/RT_SiteConfig.pm b/etc/RT_SiteConfig.pm
index 9944ebe97..b5458fd18 100644
--- a/etc/RT_SiteConfig.pm
+++ b/etc/RT_SiteConfig.pm
@@ -20,16 +20,59 @@ use utf8;
 #   perl -c /path/to/your/etc/RT_SiteConfig.pm
 #
 # You must restart your webserver after making changes to this file.
-#
 
-# You may also split settings into separate files under the etc/RT_SiteConfig.d/
-# directory.  All files ending in ".pm" will be parsed, in alphabetical order,
-# after this file is loaded.
+#Set( $rtname, '127.0.0.1');
+Set($rtname, 'localhost');
+Set($WebPort, 8080);
+Set(@ReferrerWhitelist, '127.0.0.1', '192.168.1.2',);
+Set($RestrictReferrer, 0);
 
-Set( $rtname, 'example.com');
+Set($LogToSTDERR, 'debug');
+Set($DevelMode, 1);
 
 # You must install Plugins on your own, this is only an example
 # of the correct syntax to use when activating them:
+#     Plugin( "RT::Extension::SLA" );
 #     Plugin( "RT::Authen::ExternalAuth" );
 
+#Plugin( 'RT::Extension::MandatoryOnTransition');
+#Set( %MandatoryOnTransition,
+#    newstuff => {
+#        'new -> resolved'      => ['CF.color', 'size'],
+#        'open -> resolved'      => ['CF.color', 'size'],
+#    },
+#);
+
+
+
+Set( %Crypt,
+    Incoming => 'GnuPG',
+    Outgoing => 'GnuPG',
+
+    RejectOnMissingPrivateKey => 1,
+    RejectOnBadData => 1,
+
+    AllowEncryptDataInDB => 0,
+
+    Dashboards => {
+        Encrypt => 0,
+        Sign => 0,
+    },
+);
+
+Set( %GnuPG,
+    Enable => 1,
+    GnuPG => '/usr/bin/gpg1', # debian
+    # GnuPG => '/usr/local/bin/gpg1', # macOS
+    Passphrase => 'Ormafura25!',
+    OutgoingMessagesFormat => "RFC", # Inline
+);
+
+Set( %GnuPGOptions,
+    homedir => q{/home/mrodrigu/.gnupg/pubring.gpg},
+);
+
+Set($MailCommand, "testfile");
+
+
 1;
diff --git a/lib/RT/Record.pm b/lib/RT/Record.pm
index 0cc188463..73d011860 100644
--- a/lib/RT/Record.pm
+++ b/lib/RT/Record.pm
@@ -1729,13 +1729,19 @@ sub Transactions {
 Returns the result of L</Transactions> ordered per the
 I<OldestTransactionsFirst> preference/option.
 
+The second argument reverses the order if true, to 
+provide the "Reverse Transaction Order" feature.
+
 =cut
 
 sub SortedTransactions {
     my $self  = shift;
+    my $reverse_order = shift || 0;
+
     my $txns  = $self->Transactions;
-    my $order = RT->Config->Get("OldestTransactionsFirst", $self->CurrentUser)
-        ? 'ASC' : 'DESC';
+    # parens required because the priority of 'xor' is lower than the one of '='
+    my $order_param = ( RT->Config->Get("OldestTransactionsFirst", $self->CurrentUser) xor $reverse_order );
+    my $order = $order_param ? 'ASC' : 'DESC';
     $txns->OrderByCols(
         { FIELD => 'Created',   ORDER => $order },
         { FIELD => 'id',        ORDER => $order },
diff --git a/share/html/Elements/ShowHistory b/share/html/Elements/ShowHistory
index 562264996..b157e3c8d 100644
--- a/share/html/Elements/ShowHistory
+++ b/share/html/Elements/ShowHistory
@@ -58,7 +58,8 @@
 </div>
 <%ARGS>
 $Object
-$Transactions      => $Object->SortedTransactions
+$ReverseTransactionOrder => 0
+$Transactions      => $Object->SortedTransactions( $ReverseTransactionOrder )
 $Attachments       => $Object->Attachments( WithHeaders => 1 )
 $AttachmentContent => $Object->TextAttachments
 
diff --git a/share/html/Elements/ShowHistoryHeader b/share/html/Elements/ShowHistoryHeader
index ba96fdfc5..5a44bebe0 100644
--- a/share/html/Elements/ShowHistoryHeader
+++ b/share/html/Elements/ShowHistoryHeader
@@ -48,6 +48,7 @@
 <%ARGS>
 $Object
 $ShowHeaders       => 0
+$ReverseTransactionOrder  => 0
 $ShowTitle         => 1
 $ShowDisplayModes  => 1
 $ScrollShowHistory => 0
@@ -59,7 +60,7 @@ my $histid      = "\L$record_type\E-" . $Object->id . "-history";
 <div class="history <% lc $record_type %>" id="<% $histid %>">
 <%perl>
 $ShowHeaders   //= 0;
-
+$ReverseTransactionOrder //= 0;
 if ( $ShowDisplayModes or $ShowTitle or $ScrollShowHistory ) {
     my $title = $ShowTitle
                     ? loc('History')
@@ -96,6 +97,17 @@ if ( $ShowDisplayModes or $ShowTitle or $ScrollShowHistory ) {
                            loc("Show full headers") .
                            qq{</a>};
         }
+
+        my @TransactionHeaders= ( loc( 'Oldest transaction first'), loc( 'Newest transaction first') );
+        my $Order = (RT->Config->Get("OldestTransactionsFirst", $Object->CurrentUser) xor $ReverseTransactionOrder);
+        my $TransactionHeader= $TransactionHeaders[$Order];
+
+        my $switched_order = 1 - $ReverseTransactionOrder;
+        $titleright .= '—' if $titleright;
+        $titleright .= qq{<a href="?ReverseTransactionOrder=$switched_order;ForceShowHistory=1;ShowHeaders=$ShowHeaders;id=} .
+                           $Object->id.qq{#$histid">} .
+                           $TransactionHeader .
+                           qq{</a>};
     }
 
 </%perl>
diff --git a/share/html/Elements/ShowHistoryPage b/share/html/Elements/ShowHistoryPage
index 7f519e6fe..25d648a77 100644
--- a/share/html/Elements/ShowHistoryPage
+++ b/share/html/Elements/ShowHistoryPage
@@ -47,7 +47,8 @@
 %# END BPS TAGGED BLOCK }}}
 <%ARGS>
 $Object
-$Transactions      => $Object->SortedTransactions
+$ReverseTransactionOrder => 0
+$Transactions      => $Object->SortedTransactions( $ReverseTransactionOrder )
 $Attachments       => $Object->Attachments( WithHeaders => 1 )
 $AttachmentContent => $Object->TextAttachments
 
diff --git a/share/html/Helpers/TicketHistory b/share/html/Helpers/TicketHistory
index 56897f1e2..84b4ce656 100644
--- a/share/html/Helpers/TicketHistory
+++ b/share/html/Helpers/TicketHistory
@@ -48,6 +48,7 @@
 <%ARGS>
 $id
 $ShowHeaders => 0
+$ReverseTransactionOrder => 0
 </%ARGS>
 <%INIT>
 my $TicketObj = RT::Ticket->new($session{'CurrentUser'});
@@ -60,7 +61,8 @@ $m->callback( CallbackName => 'ExtraShowHistoryArguments', Ticket => $TicketObj,
 </%INIT>
 <& /Elements/ShowHistory,
     Object => $TicketObj,
-    ShowHeaders => $ARGS{'ShowHeaders'},
+    ShowHeaders => $ShowHeaders,
+    ReverseTransactionOrder => $ReverseTransactionOrder,
     Attachments => $attachments,
     AttachmentContent => $attachment_content,
     %extra_args,
diff --git a/share/html/Helpers/TicketHistoryPage b/share/html/Helpers/TicketHistoryPage
index 41b0a70cb..6e4e48a36 100644
--- a/share/html/Helpers/TicketHistoryPage
+++ b/share/html/Helpers/TicketHistoryPage
@@ -91,6 +91,7 @@ if ($focusTransactionId) { # make sure we load enough if we need to focus a tran
 <& /Elements/ShowHistoryPage,
     Object => $TicketObj,
     ShowHeaders => $ARGS{'ShowHeaders'},
+    ReverseTransactionOrder => $ARGS{'ReverseTransactionOrder'},
     Transactions => $transactions,
     %extra_args,
     &>
diff --git a/share/html/Ticket/Display.html b/share/html/Ticket/Display.html
index d8832405a..25afdb351 100644
--- a/share/html/Ticket/Display.html
+++ b/share/html/Ticket/Display.html
@@ -82,23 +82,27 @@ my $titleright = qq{<a href="$url_html" data-show-label="$show_label" data-hide-
 % if ($ShowHistory eq "scroll") {
     <& /Ticket/Elements/ScrollShowHistory,
         Ticket => $TicketObj,
-        ShowHeaders => $ARGS{'ShowHeaders'},
+        ShowHeaders => $ShowHeaders,
+        ReverseTransactionOrder => $ReverseTransactionOrder,
     &>
 % } elsif ($ShowHistory eq "delay") {
     <& /Ticket/Elements/DelayShowHistory,
         Ticket => $TicketObj,
-        ShowHeaders => $ARGS{'ShowHeaders'},
+        ShowHeaders => $ShowHeaders,
+        ReverseTransactionOrder => $ReverseTransactionOrder,
     &>
 % } elsif (not $ForceShowHistory and $ShowHistory eq "click") {
     <& /Ticket/Elements/ClickToShowHistory,
         Ticket => $TicketObj,
-        ShowHeaders => $ARGS{'ShowHeaders'},
+        ShowHeaders => $ShowHeaders,
+        ReverseTransactionOrder => $ReverseTransactionOrder,
     &>
 % } else {
     <& /Elements/ShowHistory ,
           Object => $TicketObj,
           Transactions => $transactions,
-          ShowHeaders => $ARGS{'ShowHeaders'},
+          ReverseTransactionOrder => $ReverseTransactionOrder,
+          ShowHeaders => $ShowHeaders,
           Attachments => $attachments,
           AttachmentContent => $attachment_content
     &>
@@ -236,7 +240,7 @@ MaybeRedirectForResults(
     Arguments => { id => $TicketObj->id },
 );
 
-my $transactions = $TicketObj->SortedTransactions;
+my $transactions = $TicketObj->SortedTransactions( $ReverseTransactionOrder );
 my $attachments = $TicketObj->Attachments;
 my $attachment_content = $TicketObj->TextAttachments;
 
diff --git a/share/html/Ticket/Elements/ScrollShowHistory b/share/html/Ticket/Elements/ScrollShowHistory
index 757c172ef..24eac4674 100644
--- a/share/html/Ticket/Elements/ScrollShowHistory
+++ b/share/html/Ticket/Elements/ScrollShowHistory
@@ -48,6 +48,7 @@
 <%ARGS>
 $Ticket
 $ShowHeaders => 0
+$ReverseTransactionOrder => 0
 </%ARGS>
 
 <%INIT>
@@ -59,11 +60,12 @@ my $url = RT->Config->Get('WebPath') . "/Helpers/TicketHistoryPage?" .
 
 my %extra_args = map { $_ => $ARGS{$_} // 1 } qw/ShowDisplayModes ShowTitle ScrollShowHistory/;
 $extra_args{ShowHeaders} = $ShowHeaders;
+$extra_args{ReverseTransactionOrder} = $ReverseTransactionOrder;
 
 $m->callback( CallbackName => 'ExtraShowHistoryArguments', Ticket => $Ticket, ExtraArgs => \%extra_args );
 
-
-my $oldestTransactionsFirst = RT->Config->Get("OldestTransactionsFirst", $session{CurrentUser});
+# parens on the right side are required because 'xor' has a lower priority than '='
+my $oldestTransactionsFirst = ( RT->Config->Get("OldestTransactionsFirst", $session{CurrentUser}) xor $ReverseTransactionOrder);
 </%INIT>
 
 <& /Elements/ShowHistoryHeader,

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


More information about the rt-commit mailing list