[Rt-commit] rt branch, 5.0/extra-query-params-in-search-menu, created. rt-5.0.0-208-g0158767c38

? sunnavy sunnavy at bestpractical.com
Fri Jan 8 13:31:13 EST 2021


The branch, 5.0/extra-query-params-in-search-menu has been created
        at  0158767c38f30d94c821fb0f27d4d2b871d84974 (commit)

- Log -----------------------------------------------------------------
commit 0158767c38f30d94c821fb0f27d4d2b871d84974
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Sat Jan 9 00:01:57 2021 +0800

    Respect extra query params to build page menus for all search pages
    
    Previously these extra params were respected only on search builder
    page, by passing self generated QueryArgs to "/Elements/Tabs".
    
    This commit fixes the issue that if user navigated from "Edit Search" to
    "Advanced" and then back to "Edit Search", extra params would be gone.

diff --git a/lib/RT/Interface/Web/MenuBuilder.pm b/lib/RT/Interface/Web/MenuBuilder.pm
index c93e0d92c0..9b44d2a3ad 100644
--- a/lib/RT/Interface/Web/MenuBuilder.pm
+++ b/lib/RT/Interface/Web/MenuBuilder.pm
@@ -614,7 +614,7 @@ sub BuildMainNav {
                 map {
                     my $p = $_;
                     $p => $HTML::Mason::Commands::DECODED_ARGS->{$p} || $current_search->{$p}
-                } qw(Query Format OrderBy Order Page Class ObjectType ResultPage)
+                } qw(Query Format OrderBy Order Page Class ObjectType ResultPage ExtraQueryParams),
             ),
             RowsPerPage => (
                 defined $HTML::Mason::Commands::DECODED_ARGS->{'RowsPerPage'}
@@ -622,6 +622,14 @@ sub BuildMainNav {
                 : $current_search->{'RowsPerPage'}
             ),
         );
+
+        if ( my $extra_params = $fallback_query_args{ExtraQueryParams} ) {
+            for my $param ( ref $extra_params eq 'ARRAY' ? @$extra_params : $extra_params ) {
+                $fallback_query_args{$param}
+                    = $HTML::Mason::Commands::DECODED_ARGS->{$param} || $current_search->{$param};
+            }
+        }
+
         $fallback_query_args{Class} ||= $class;
         $fallback_query_args{ObjectType} ||= 'RT::Ticket' if $class eq 'RT::Transactions';
 

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


More information about the rt-commit mailing list