]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 23473: Implement the ability to reverse the sort order in buglist.cgi ("Ascending...
authorlpsolit%gmail.com <>
Sat, 3 Nov 2007 22:48:37 +0000 (22:48 +0000)
committerlpsolit%gmail.com <>
Sat, 3 Nov 2007 22:48:37 +0000 (22:48 +0000)
Bugzilla/Install/Requirements.pm
buglist.cgi
template/en/default/list/table.html.tmpl

index 8fd8fe2c6664803cb57657b293f3ea76eabb90bc..05f74e81f5ddd69941ddda60481b695a692332ca 100644 (file)
@@ -78,7 +78,7 @@ sub REQUIRED_MODULES {
     {
         package => 'Template-Toolkit',
         module  => 'Template',
-        version => '2.12'
+        version => '2.15'
     },
     {
         package => 'Email-Send',
index 0f98a381118fd8870dce3d6e4435281e26ed32f5..fa75778b9e0676cb98efa467332a99a400aa1da3 100755 (executable)
@@ -873,6 +873,7 @@ if ($order) {
             # A custom list of columns.  Make sure each column is valid.
             foreach my $fragment (split(/,/, $order)) {
                 $fragment = trim($fragment);
+                next unless $fragment;
                 # Accept an order fragment matching a column name, with
                 # asc|desc optionally following (to specify the direction)
                 if (grep($fragment =~ /^\Q$_\E(\s+(asc|desc))?$/, @columnnames, keys(%$columns))) {
@@ -893,11 +894,12 @@ if ($order) {
             $order = join(",", @order);
             # Now that we have checked that all columns in the order are valid,
             # detaint the order string.
-            trick_taint($order);
+            trick_taint($order) if $order;
         };
     }
 }
-else {
+
+if (!$order) {
     # DEFAULT
     $order = "bugs.bug_status, bugs.priority, map_assigned_to.login_name, bugs.bug_id";
 }
index 8941eb515af8933aa2228413f08b849a132d964b..c2904ceb94ff14387fc11a99b4ccdf910d60fc92 100644 (file)
         [% IF sorted_by_relevance %]
           ID
         [% ELSE %]
+          [% desc = '' %]
+          [% IF (om = order.match("^bugs\.bug_id( desc)?")) %]
+            [% desc = ' desc' IF NOT om.0 %]
+          [% END %]
           <a href="buglist.cgi?
-                    [% urlquerypart FILTER html %]&amp;order=bugs.bug_id
+                    [% urlquerypart FILTER html %]&amp;order=bugs.bug_id[% desc FILTER url_quote %]
                     [%-#%]&amp;query_based_on=
                     [% defaultsavename OR searchname FILTER url_quote %]">ID</a>
         [% END %]
         [%# Other columns may sort on their name directly. %]
         [% column.sortalias = column.name %]
       [% END %]
+      [% desc = '' %]
+      [% IF (om = order.match("$column.sortalias( desc)?")) %]
+        [% desc = ' desc' IF NOT om.0 %]
+      [% END %]
+      [% order = order.remove("$column.sortalias( desc)?,?") %]
       <a href="buglist.cgi?[% urlquerypart FILTER html %]&amp;order=
-        [% column.sortalias FILTER url_quote %]
+        [% column.sortalias FILTER url_quote %][% desc FILTER url_quote %]
         [% ",$order" FILTER url_quote IF order %]
         [%-#%]&amp;query_based_on=
         [% defaultsavename OR searchname FILTER url_quote %]">