From 69c4be2d4794b0a8c66baeab5375c5cf3b8ffd9c Mon Sep 17 00:00:00 2001 From: "terry%mozilla.org" <> Date: Sun, 23 Jan 2000 03:08:55 +0000 Subject: Remember the previous sort order in a cookie, and make that the default sort order for new queries. Add a new "show list" link to the navigation header to return you to the list of selected bugs. --- CGI.pl | 1 + buglist.cgi | 27 ++++++++++++++++++++++++++- query.cgi | 16 ++++++++++++---- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/CGI.pl b/CGI.pl index ecd56860a..4ad0064f3 100644 --- a/CGI.pl +++ b/CGI.pl @@ -268,6 +268,7 @@ sub navigation_header { } else { print "Next\n"; } + print qq{  Show list\n}; } print "     Query page\n"; print "     Enter new bug\n" diff --git a/buglist.cgi b/buglist.cgi index 6f791a6df..488944fb4 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -29,7 +29,6 @@ use Date::Parse; use vars %::MFORM, @::components, - @::db, @::default_column_list, @::keywordsbyname, @::legal_keywords, @@ -45,6 +44,7 @@ use vars %::MFORM, ConnectToDatabase(); +# print "Content-type: text/plain\n\n"; # Handy for debugging. if (!defined $::FORM{'cmdtype'}) { # This can happen if there's an old bookmark to a query... @@ -250,6 +250,23 @@ and bugs.version = projector.value and bugs.groupset & $::usergroupset = bugs.groupset "; +if ($::FORM{'regetlastlist'}) { + if (!$::COOKIE{'BUGLIST'}) { + print qq{ +Sorry, I seem to have lost the cookie that recorded the results of your last +query. You will have to start over at the query page. +}; + PutTrailer(); + exit; + } + my @list = split(/:/, $::COOKIE{'BUGLIST'}); + $::MFORM{'bug_id'} = \@list; + $::FORM{'bug_id'} = join('', $::MFORM{'bug_id'}); + if (!$::FORM{'order'}) { + $::FORM{'order'} = 'reuse last sort'; + } +} + if ((defined $::FORM{'emailcc1'} && $::FORM{'emailcc1'}) || (defined $::FORM{'emailcc2'} && $::FORM{'emailcc2'})) { @@ -532,7 +549,11 @@ foreach my $f ("short_desc", "long_desc", "bug_file_loc", $query .= "group by bugs.bug_id\n"; + if (defined $::FORM{'order'} && $::FORM{'order'} ne "") { + if ($::COOKIE{'LASTORDER'} && $::FORM{'order'} =~ /^reuse/i) { + $::FORM{'order'} = url_decode($::COOKIE{'LASTORDER'}); + } $query .= "order by "; $::FORM{'order'} =~ s/votesum/bugs.votes/; # Silly backwards compatability # hack. @@ -732,6 +753,10 @@ if ($serverpush) { # Note! HTML header not yet closed } my $toolong = 0; +if ($::FORM{'order'}) { + my $q = url_quote($::FORM{'order'}); + print "Set-Cookie: LASTORDER=$q ; path=/; expires=Sun, 30-Jun-2029 00:00:00 GMT\n"; +} if (length($buglist) < 4000) { print "Set-Cookie: BUGLIST=$buglist\n\n"; } else { diff --git a/query.cgi b/query.cgi index f8728e9c9..b032a2860 100755 --- a/query.cgi +++ b/query.cgi @@ -593,10 +593,18 @@ print " Sort By: +"; + +my $deforder = "'Importance'"; +my @orders = ('Bug Number', $deforder, 'Assignee'); + +if ($::COOKIE{'LASTORDER'}) { + $deforder = "Reuse same sort as last time"; + unshift(@orders, $deforder); +} + +print make_options(\@orders, $deforder); +print " -- cgit v1.2.3-24-g4f1b