From 5f61a3d84eef44c09244996a5787bfc24621f60c Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Sun, 9 Nov 2003 05:49:18 +0000 Subject: Bug 179339 - Simplify and improve the stored query mechanism. Patch by gerv; r,a=myk. --- buglist.cgi | 31 ++--- template/en/default/account/prefs/prefs.html.tmpl | 2 - .../en/default/global/site-navigation.html.tmpl | 12 +- template/en/default/global/useful-links.html.tmpl | 18 +-- template/en/default/list/list.html.tmpl | 86 +++++++++----- template/en/default/search/knob.html.tmpl | 131 +++------------------ userprefs.cgi | 68 ----------- 7 files changed, 97 insertions(+), 251 deletions(-) diff --git a/buglist.cgi b/buglist.cgi index 1c5161481..2183d5a79 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -274,7 +274,7 @@ if ($::FORM{'cmdtype'} eq "dorem" && $::FORM{'remaction'} =~ /^run/) { if ($::FORM{'cmdtype'} eq "dorem") { if ($::FORM{'remaction'} eq "run") { $::buffer = LookupNamedQuery($::FORM{"namedcmd"}); - $vars->{'title'} = "Bug List: $::FORM{'namedcmd'}"; + $vars->{'searchname'} = $::FORM{'namedcmd'}; $params = new Bugzilla::CGI($::buffer); $order = $params->param('order') || $order; } @@ -284,17 +284,6 @@ if ($::FORM{'cmdtype'} eq "dorem") { $params = new Bugzilla::CGI($::buffer); $order = $params->param('order') || $order; } - elsif ($::FORM{'remaction'} eq "load") { - my $url = "query.cgi?" . LookupNamedQuery($::FORM{"namedcmd"}); - print $cgi->redirect(-location=>$url); - # Generate and return the UI (HTML page) from the appropriate template. - $vars->{'message'} = "buglist_load_named_query"; - $vars->{'namedcmd'} = $::FORM{'namedcmd'}; - $vars->{'url'} = $url; - $template->process("global/message.html.tmpl", $vars) - || ThrowTemplateError($template->error()); - exit; - } elsif ($::FORM{'remaction'} eq "forget") { confirm_login(); my $userid = DBNameToIdAndCheck($::COOKIE{"Bugzilla_login"}); @@ -314,18 +303,18 @@ if ($::FORM{'cmdtype'} eq "dorem") { exit; } } -elsif ($::FORM{'cmdtype'} eq "doit" && $::FORM{'remember'}) { - if ($::FORM{'remember'} == 1 && $::FORM{'remtype'} eq "asdefault") { +elsif ($::FORM{'cmdtype'} eq "doit") { + if ($::FORM{'remtype'} eq "asdefault") { confirm_login(); my $userid = DBNameToIdAndCheck($::COOKIE{"Bugzilla_login"}); my $qname = SqlQuote($::defaultqueryname); my $qbuffer = SqlQuote($::buffer); SendSQL("REPLACE INTO namedqueries (userid, name, query) VALUES ($userid, $qname, $qbuffer)"); - # Generate and return the UI (HTML page) from the appropriate template. + $vars->{'message'} = "buglist_new_default_query"; } - elsif ($::FORM{'remember'} == 1 && $::FORM{'remtype'} eq "asnamed") { + elsif ($::FORM{'remtype'} eq "asnamed") { confirm_login(); my $userid = DBNameToIdAndCheck($::COOKIE{"Bugzilla_login"}); @@ -334,10 +323,9 @@ elsif ($::FORM{'cmdtype'} eq "doit" && $::FORM{'remember'}) { $name !~ /[<>&]/ || ThrowUserError("illegal_query_name"); my $qname = SqlQuote($name); - $::buffer =~ s/[\&\?]cmdtype=[a-z]+//; - my $qbuffer = SqlQuote($::buffer); + my $qbuffer = SqlQuote($::FORM{'newquery'}); - my $tofooter = $::FORM{'tofooter'} ? 1 : 0; + my $tofooter = 1; $vars->{'message'} = "buglist_new_named_query"; @@ -363,6 +351,11 @@ elsif ($::FORM{'cmdtype'} eq "doit" && $::FORM{'remember'}) { Bugzilla->user->flush_queries_cache(); $vars->{'queryname'} = $name; + + print "Content-Type: text/html\n\n"; + $template->process("global/message.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + exit; } } diff --git a/template/en/default/account/prefs/prefs.html.tmpl b/template/en/default/account/prefs/prefs.html.tmpl index 5892cb40e..54cc14f66 100644 --- a/template/en/default/account/prefs/prefs.html.tmpl +++ b/template/en/default/account/prefs/prefs.html.tmpl @@ -53,8 +53,6 @@ saveable => "1" }, { name => "email", description => "Email settings", saveable => "1" }, - { name => "footer", description => "Page footer", - saveable => "1" }, { name => "permissions", description => "Permissions", saveable => "0" } ] %] diff --git a/template/en/default/global/site-navigation.html.tmpl b/template/en/default/global/site-navigation.html.tmpl index be64c2a86..36c73f292 100644 --- a/template/en/default/global/site-navigation.html.tmpl +++ b/template/en/default/global/site-navigation.html.tmpl @@ -72,19 +72,17 @@ [% END %] - [%# *** Preset Queries *** %] + [%# *** Saved Searches *** %] [% IF user.showmybugslink %] [% user_login = user.login FILTER url_quote %] - [% END %] [% FOREACH q = user.queries %] - [% IF q.linkinfooter %] - - [% END %] + [% END %] [%# *** Bugzilla Administration Tools *** %] diff --git a/template/en/default/global/useful-links.html.tmpl b/template/en/default/global/useful-links.html.tmpl index 135dad987..cf84abbb2 100644 --- a/template/en/default/global/useful-links.html.tmpl +++ b/template/en/default/global/useful-links.html.tmpl @@ -33,7 +33,7 @@ New | - Query | + Search | [% terms.bug %] # | @@ -78,22 +78,12 @@ - [%# Preset queries %] + [%# Saved searches %] - [% preset_queries = user.showmybugslink %] - [% IF NOT preset_queries %] - [% FOREACH q = user.queries %] - [% IF q.linkinfooter %] - [% preset_queries = 1 %] - [% LAST %] - [% END %] - [% END %] - [% END %] - - [% IF preset_queries %] + [% IF user.showmybugslink OR user.queries.size %] - Preset Queries: + Saved Searches: [% END %] diff --git a/template/en/default/list/list.html.tmpl b/template/en/default/list/list.html.tmpl index a61bdef98..4d5a48c79 100644 --- a/template/en/default/list/list.html.tmpl +++ b/template/en/default/list/list.html.tmpl @@ -25,7 +25,11 @@ [% PROCESS global/variables.none.tmpl %] -[% DEFAULT title = "$terms.Bug List" %] +[% title = "$terms.Bug List" %] +[% IF searchname %] + [% title = title _ ": " _ searchname FILTER html %] +[% END %] + [% style_urls = [ "css/buglist.css" ] %] [% qorder = order FILTER url_quote IF order %] [% message = "buglist_sorted_by_relevance" IF sorted_by_relevance %] @@ -132,33 +136,59 @@ [%############################################################################%] [% IF bugs.size > 0 %] -
- - -    - CSV    - Change Columns    - - [% IF bugs.size > 1 && caneditbugs && !dotweak %] - Change Several  - [% terms.Bugs %] at Once -    - [% END %] - - [% IF bugowners %] - Send - Mail to [% terms.Bug %] Owners -    - [% END %] - - Edit this Query    - -
- +

+ + + + + + [% IF searchname %] + + [% ELSE %] + + + [% END %] + +
+
+ + +
+
  + CSV | + Change Columns | + + [% IF bugs.size > 1 && caneditbugs && !dotweak %] + Change Several [% terms.Bugs %] at Once + | + [% END %] + + [% IF bugowners %] + Send Mail to [% terms.Bug %] Owners | + [% END %] + + Edit Search + + | + Forget Search ' + [% searchname FILTER html %]' +   +
+ as + + + + +
+
+

[% END %] diff --git a/template/en/default/search/knob.html.tmpl b/template/en/default/search/knob.html.tmpl index 8386eff04..cf40d0711 100644 --- a/template/en/default/search/knob.html.tmpl +++ b/template/en/default/search/knob.html.tmpl @@ -31,112 +31,7 @@ "Assignee" => "Assignee", "Last Changed" => "Last Changed" } %] -
-[% IF NOT user %] - -[% ELSE %] - - - - [% IF namedqueries.size > 0 %] - - - - - [% END %] - - - - - - - - -
- - -  
- [% IF namedqueries.size > 0 %] -        - [% END %] - - [% IF namedqueries.size > 0 %] - - [% ELSE %] - - - [% END %] - - - -
-        - -
- -
-
- [% IF namedqueries.size > 0 %] - - - - - [% END %] -
- - -[% END %] +

Sort results by: @@ -147,14 +42,24 @@ [% ordersdesc.$order FILTER html %] [% END %] +

+

- - [% IF userdefaultquery %] -

- - Set my default query back to the system default. -

- [% END %]

+

+     + + +

+ +[% IF userdefaultquery %] +

+ + Set my default query back to the system default. +

+[% END %] diff --git a/userprefs.cgi b/userprefs.cgi index 857665f7c..017c7c94d 100755 --- a/userprefs.cgi +++ b/userprefs.cgi @@ -30,13 +30,6 @@ require "CGI.pl"; use RelationSet; -# Shut up misguided -w warnings about "used only once". "use vars" just -# doesn't work for me. -sub sillyness { - my $zz; - $zz = $::defaultqueryname; -} - # Use global template variables. use vars qw($template $vars $userid); @@ -269,61 +262,6 @@ sub SaveEmail { } -sub DoFooter { - SendSQL("SELECT mybugslink FROM profiles " . - "WHERE userid = $userid"); - $vars->{'mybugslink'} = FetchSQLData(); - - SendSQL("SELECT name, linkinfooter FROM namedqueries " . - "WHERE userid = $userid"); - - my @queries; - while (MoreSQLData()) { - my ($name, $footer) = (FetchSQLData()); - next if ($name eq $::defaultqueryname); - - push (@queries, { name => $name, footer => $footer }); - } - - $vars->{'queries'} = \@queries; -} - -sub SaveFooter { - my %old; - SendSQL("SELECT name, linkinfooter FROM namedqueries " . - "WHERE userid = $userid"); - while (MoreSQLData()) { - my ($name, $footer) = (FetchSQLData()); - $old{$name} = $footer; - } - - for (my $c = 0; $c < $::FORM{'numqueries'}; $c++) { - my $name = $::FORM{"name-$c"}; - if (exists $old{$name}) { - my $new = $::FORM{"query-$c"}; - if ($new ne $old{$name}) { - detaint_natural($new); - SendSQL("UPDATE namedqueries SET linkinfooter = $new " . - "WHERE userid = $userid " . - "AND name = " . SqlQuote($name)); - } - } else { - ThrowUserError("missing_query", {queryname => $name}); - } - } - SendSQL("UPDATE profiles SET mybugslink = " . - SqlQuote($::FORM{'mybugslink'}) . " WHERE userid = $userid"); - - # Make sure that cached queries in the user object are invalidated - # so that the footer is correct - my $user = Bugzilla->user; - $user->flush_queries_cache(); - - # Also need to update showmybugslink - $user->{showmybugslink} = $::FORM{'mybugslink'} ? 1 : 0; -} - - sub DoPermissions { my (@has_bits, @set_bits); @@ -385,11 +323,6 @@ SWITCH: for ($current_tab_name) { DoEmail(); last SWITCH; }; - /^footer$/ && do { - SaveFooter() if $::FORM{'dosave'}; - DoFooter(); - last SWITCH; - }; /^permissions$/ && do { DoPermissions(); last SWITCH; @@ -402,4 +335,3 @@ SWITCH: for ($current_tab_name) { print $cgi->header(); $template->process("account/prefs/prefs.html.tmpl", $vars) || ThrowTemplateError($template->error()); - -- cgit v1.2.3-24-g4f1b