From 50181f709d79780ec54c6ed2b90af08327bbdf5b Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Mon, 11 Jul 2005 05:37:05 +0000 Subject: Bug 63536: User preference for whether or not to go to the next bug after processing - Patch by byron jones (glob) r=LpSolit a=justdave --- checksetup.pl | 7 +++ process_bug.cgi | 67 ++++++++++++---------- template/en/default/bug/process/next.html.tmpl | 67 ---------------------- template/en/default/bug/show.html.tmpl | 37 +++++++----- template/en/default/filterexceptions.pl | 8 +-- template/en/default/global/code-error.html.tmpl | 3 + template/en/default/global/setting-descs.none.tmpl | 4 ++ 7 files changed, 80 insertions(+), 113 deletions(-) delete mode 100644 template/en/default/bug/process/next.html.tmpl diff --git a/checksetup.pl b/checksetup.pl index b5158ccb3..09c079956 100755 --- a/checksetup.pl +++ b/checksetup.pl @@ -4046,6 +4046,13 @@ add_setting ("comment_sort_order", {"oldest_to_newest" => 1, "newest_to_oldest_desc_first" => 3}, "oldest_to_newest" ); +# 2005-05-12 bugzilla@glob.com.au -- Bug 63536 +add_setting ("post_bug_submit_action", {"next_bug" => 1, + "same_bug" => 2, + "nothing" => 3, + }, + "next_bug" ); + ########################################################################### # Create Administrator --ADMIN-- ########################################################################### diff --git a/process_bug.cgi b/process_bug.cgi index 4b6410b2c..58e52f83c 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -193,20 +193,10 @@ if (defined $cgi->param('id')) { } # Set up the vars for nagiavtional elements -my $next_bug; +my @bug_list; if ($cgi->cookie("BUGLIST") && defined $cgi->param('id')) { - my @bug_list = split(/:/, $cgi->cookie("BUGLIST")); + @bug_list = split(/:/, $cgi->cookie("BUGLIST")); $vars->{'bug_list'} = \@bug_list; - my $cur = lsearch(\@bug_list, $cgi->param("id")); - if ($cur >= 0 && $cur < $#bug_list) { - $next_bug = $bug_list[$cur + 1]; - - # Note that we only bother with the bug_id here, and get - # the full bug object at the end, before showing the edit - # page. If you change this, remember that we have not - # done the security checks on the next bug yet - $vars->{'bug'} = { bug_id => $next_bug }; - } } GetVersionTable(); @@ -1829,28 +1819,47 @@ foreach my $id (@idlist) { } } -# now show the next bug -if ($next_bug) { - if (detaint_natural($next_bug) && Bugzilla->user->can_see_bug($next_bug)) { - my $bug = new Bugzilla::Bug($next_bug, $whoid); - ThrowCodeError("bug_error", { bug => $bug }) if $bug->error; +# Determine if Patch Viewer is installed, for Diff link +# (NB: Duplicate code with show_bug.cgi.) +eval { + require PatchReader; + $vars->{'patchviewerinstalled'} = 1; +}; - # next.html.tmpl includes edit.html.tmpl, and therefore we - # need $bug defined in $vars. - $vars->{'bug'} = $bug; +$action = Bugzilla->user->settings->{'post_bug_submit_action'}->{'value'}; - # And we need to determine if Patch Viewer is installed, for - # Diff link (NB: Duplicate code with show_bug.cgi.) - eval { - require PatchReader; - $vars->{'patchviewerinstalled'} = 1; - }; +if ($action eq 'next_bug') { + my $next_bug; + my $cur = lsearch(\@bug_list, $cgi->param("id")); + if ($cur >= 0 && $cur < $#bug_list) { + $next_bug = $bug_list[$cur + 1]; + } + if ($next_bug) { + if (detaint_natural($next_bug) && Bugzilla->user->can_see_bug($next_bug)) { + my $bug = new Bugzilla::Bug($next_bug, $whoid); + ThrowCodeError("bug_error", { bug => $bug }) if $bug->error; - $template->process("bug/process/next.html.tmpl", $vars) - || ThrowTemplateError($template->error()); + $vars->{'bugs'} = [$bug]; + $vars->{'nextbug'} = $bug->bug_id; - exit; + $template->process("bug/show.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + + exit; + } } +} elsif ($action eq 'same_bug') { + my $bug = new Bugzilla::Bug($cgi->param('id'), $whoid); + ThrowCodeError("bug_error", { bug => $bug }) if $bug->error; + + $vars->{'bugs'} = [$bug]; + + $template->process("bug/show.html.tmpl", $vars) + || ThrowTemplateError($template->error()); + + exit; +} elsif ($action ne 'nothing') { + ThrowCodeError("invalid_post_bug_submit_action"); } # End the response page. diff --git a/template/en/default/bug/process/next.html.tmpl b/template/en/default/bug/process/next.html.tmpl deleted file mode 100644 index 1cd9328a1..000000000 --- a/template/en/default/bug/process/next.html.tmpl +++ /dev/null @@ -1,67 +0,0 @@ -[%# 1.0@bugzilla.org %] -[%# The contents of this file are subject to the Mozilla Public - # License Version 1.1 (the "License"); you may not use this file - # except in compliance with the License. You may obtain a copy of - # the License at http://www.mozilla.org/MPL/ - # - # Software distributed under the License is distributed on an "AS - # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - # implied. See the License for the specific language governing - # rights and limitations under the License. - # - # The Original Code is the Bugzilla Bug Tracking System. - # - # The Initial Developer of the Original Code is Netscape Communications - # Corporation. Portions created by Netscape are - # Copyright (C) 1998 Netscape Communications Corporation. All - # Rights Reserved. - # - # Contributor(s): Myk Melez - #%] - -[%# INTERFACE: - # bug : Bug object; the next bug to show - #%] - -[% PROCESS global/variables.none.tmpl %] - -
- -

- The next [% terms.bug %] in your list is [% terms.bug %] - [% bug.bug_id %]: -

- -
- - - - - - - -
- - [%+ terms.Bugzilla %] [%+ terms.Bug %] [%+ bug.bug_id %] - - -   - - [% bug.short_desc FILTER html %] - - Last modified: [% bug.delta_ts FILTER time %] -
- -[% PROCESS bug/navigate.html.tmpl %] - -
- -[% PROCESS "bug/edit.html.tmpl" %] - -
- -[% PROCESS bug/navigate.html.tmpl %] - -
- -[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/show.html.tmpl b/template/en/default/bug/show.html.tmpl index 8db59a980..8cb14ee4d 100644 --- a/template/en/default/bug/show.html.tmpl +++ b/template/en/default/bug/show.html.tmpl @@ -26,19 +26,30 @@ [%# This script/template only handles one bug #%] [% bug = bugs.0 %] -[% filtered_desc = bug.short_desc FILTER html %] -[% filtered_timestamp = bug.delta_ts FILTER time %] -[% PROCESS global/header.html.tmpl - title = "$terms.Bug $bug.bug_id - $bug.short_desc" - h1 = "$terms.Bugzilla $terms.Bug $bug.bug_id" - h2 = filtered_desc - h3 = "Last modified: $filtered_timestamp" - bodyclasses = ['bz_bug', - "bz_status_$bug.bug_status", - "bz_component_$bug.component", - "bz_bug_$bug.bug_id" - ] -%] +[% IF !header_done %] + [% filtered_desc = bug.short_desc FILTER html %] + [% filtered_timestamp = bug.delta_ts FILTER time %] + [% PROCESS global/header.html.tmpl + title = "$terms.Bug $bug.bug_id - $bug.short_desc" + h1 = "$terms.Bugzilla $terms.Bug $bug.bug_id" + h2 = filtered_desc + h3 = "Last modified: $filtered_timestamp" + bodyclasses = ['bz_bug', + "bz_status_$bug.bug_status", + "bz_component_$bug.component", + "bz_bug_$bug.bug_id" + ] + %] +[% END %] + +[% IF nextbug %] +
+

+ The next [% terms.bug %] in your list is [% terms.bug %] + [% bug.bug_id %]: +

+
+[% END %] [% PROCESS bug/navigate.html.tmpl %] diff --git a/template/en/default/filterexceptions.pl b/template/en/default/filterexceptions.pl index bfa469481..eb6d32aef 100644 --- a/template/en/default/filterexceptions.pl +++ b/template/en/default/filterexceptions.pl @@ -364,6 +364,10 @@ 'bug.deadline', ], +'bug/show.html.tmpl' => [ + 'bug.bug_id', +], + 'bug/show.xml.tmpl' => [ 'VERSION', 'a.attachid', @@ -407,10 +411,6 @@ 'bug_id', ], -'bug/process/next.html.tmpl' => [ - 'bug.bug_id', -], - 'bug/process/results.html.tmpl' => [ 'title.$type', 'id', diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl index 36a752949..1b7af3fea 100644 --- a/template/en/default/global/code-error.html.tmpl +++ b/template/en/default/global/code-error.html.tmpl @@ -297,6 +297,9 @@ There is an internal error in the SQL query generation code, creating queries with implicit JOIN. + [% ELSIF error == "invalid_post_bug_submit_action" %] + Invalid setting for post_bug_submit_action + [% ELSE %] [% title = "Internal error" %] An internal error has occured, but [% terms.Bugzilla %] doesn't know diff --git a/template/en/default/global/setting-descs.none.tmpl b/template/en/default/global/setting-descs.none.tmpl index 1a31754a8..85edc1949 100644 --- a/template/en/default/global/setting-descs.none.tmpl +++ b/template/en/default/global/setting-descs.none.tmpl @@ -27,5 +27,9 @@ "off" => "Off", "oldest_to_newest" => "Oldest to Newest", "on" => "On" + "post_bug_submit_action" => "After changing $terms.abug", + "next_bug" => "Show next $terms.bug in my list", + "same_bug" => "Show the updated $terms.bug", + "nothing" => "Do Nothing", } %] -- cgit v1.2.3-24-g4f1b