diff options
author | bugreport%peshkin.net <> | 2002-12-09 08:57:17 +0100 |
---|---|---|
committer | bugreport%peshkin.net <> | 2002-12-09 08:57:17 +0100 |
commit | 2e6c635d3fb541baa8ed376c2c09a99bc6844dcb (patch) | |
tree | c4e9108e81157f9a95395c745521d662a49a60bc | |
parent | e008fbf65bc6c7fd9df37710d08167c2677a9aa1 (diff) | |
download | bugzilla-2e6c635d3fb541baa8ed376c2c09a99bc6844dcb.tar.gz bugzilla-2e6c635d3fb541baa8ed376c2c09a99bc6844dcb.tar.xz |
Bug 159627 quips should be editable and deleteable using the web interface
patch by burnus
r=timeless,a=justdave
-rwxr-xr-x | quips.cgi | 41 | ||||
-rw-r--r-- | template/en/default/global/code-error.html.tmpl | 3 | ||||
-rw-r--r-- | template/en/default/global/user-error.html.tmpl | 6 | ||||
-rw-r--r-- | template/en/default/list/quips.html.tmpl | 35 |
4 files changed, 84 insertions, 1 deletions
@@ -58,6 +58,34 @@ if ($action eq "show") { $vars->{'show_quips'} = 1; } +if ($action eq "edit") { + if (!UserInGroup('admin')) { + ThrowUserError("quips_edit_denied"); + } + # Read in the entire quip list + SendSQL("SELECT quipid,userid,quip FROM quips"); + + my $quips; + my @quipids; + while (MoreSQLData()) { + my ($quipid, $userid, $quip) = FetchSQLData(); + $quips->{$quipid} = {'userid' => $userid, 'quip' => $quip}; + push(@quipids, $quipid); + } + + my $users; + foreach my $quipid (@quipids) { + if (not defined $users->{$userid}) { + SendSQL("SELECT login_name FROM profiles WHERE userid = $userid"); + $users->{$userid} = FetchSQLData(); + } + } + $vars->{'quipids'} = \@quipids; + $vars->{'quips'} = $quips; + $vars->{'users'} = $users; + $vars->{'edit_quips'} = 1; +} + if ($action eq "add") { (Param('enablequips') eq "on") || ThrowUserError("no_new_quips"); @@ -71,6 +99,19 @@ if ($action eq "add") { $vars->{'added_quip'} = $comment; } +if ($action eq "delete") { + if (!UserInGroup('admin')) { + ThrowUserError("quips_edit_denied"); + } + my $quipid = $::FORM{"quipid"}; + ThrowCodeError("need_quipid") unless $quipid =~ /(\d+)/; + $quipid = $1; + + SendSQL("SELECT quip FROM quips WHERE quipid = $quipid"); + $vars->{'deleted_quip'} = FetchSQLData(); + SendSQL("DELETE FROM quips WHERE quipid = $quipid"); +} + print "Content-type: text/html\n\n"; $template->process("list/quips.html.tmpl", $vars) || ThrowTemplateError($template->error()); diff --git a/template/en/default/global/code-error.html.tmpl b/template/en/default/global/code-error.html.tmpl index 4b37ee4f1..a29cb1e1c 100644 --- a/template/en/default/global/code-error.html.tmpl +++ b/template/en/default/global/code-error.html.tmpl @@ -177,6 +177,9 @@ No Y axis was defined when creating report. The X axis is optional, but the Y axis is compulsory. + [% ELSIF error == "need_quipid" %] + A valid quipid is needed. + [% ELSIF error == "request_queue_group_invalid" %] The group field <em>[% group FILTER html %]</em> is invalid. diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl index af72873c4..0d43b62a5 100644 --- a/template/en/default/global/user-error.html.tmpl +++ b/template/en/default/global/user-error.html.tmpl @@ -371,7 +371,7 @@ [% ELSIF error == "need_quip" %] [% title = "Quip Required" %] Please enter a quip in the text field. - + [% ELSIF error == "new_password_missing" %] [% title = "New Password Missing" %] You must enter a new password. @@ -480,6 +480,10 @@ [% title = "Quips Disabled" %] Quips are disabled. + [% ELSIF error == "quips_edit_denied" %] + [% title = "Permission Denied" %] + You do not have permission to edit quips. + [% ELSIF error == "reassign_to_empty" %] [% title = "Illegal Reassignment" %] You cannot reassign to a bug to nobody. Unless you diff --git a/template/en/default/list/quips.html.tmpl b/template/en/default/list/quips.html.tmpl index f83f08128..ccb5208b7 100644 --- a/template/en/default/list/quips.html.tmpl +++ b/template/en/default/list/quips.html.tmpl @@ -39,6 +39,14 @@ </p> [% END %] +[% IF deleted_quip %] + <p> + <font color="red"> + The quip '<tt>[% deleted_quip FILTER html %]</tt>' has been deleted. + </font> + </p> +[% END %] + <p> Bugzilla will pick a random quip for the headline on each bug list, and you can extend the quip list. Type in something clever or funny or boring @@ -62,11 +70,38 @@ <li>[% quip FILTER html %]</li> [% END %] </ul> +[% ELSIF edit_quips %] + <h2>Edit existing quips:</h2> + <table border="1"> + <thead><tr> + <th>Action</th> + <th>User</th> + <th>Quip</th> + </tr></thead><tbody> + [% FOREACH quipid = quipids %] + <tr> + <td> + <a href="quips.cgi?action=delete&quipid=[% quipid FILTER uri%]"> + Delete + </a> + </td> + <td> + [% userid = quips.$quipid.userid %] + [% users.$userid FILTER html %] + [% "Unknown" IF NOT users.$userid %] + </td> + <td>[% quips.$quipid.quip FILTER html %]</td> + </tr> + [% END %] + </tbody></table> [% ELSE %] <p> Those who like their wisdom in large doses can <a href="quips.cgi?action=show">view the whole quip list</a>. </p> + [% IF UserInGroup('admin') %] + <p><a href="quips.cgi?action=edit">Edit</a> the quip list.</p> + [% END %] [% END %] [% PROCESS global/footer.html.tmpl %] |