]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 159627 quips should be editable and deleteable using the web interface
authorbugreport%peshkin.net <>
Mon, 9 Dec 2002 07:57:17 +0000 (07:57 +0000)
committerbugreport%peshkin.net <>
Mon, 9 Dec 2002 07:57:17 +0000 (07:57 +0000)
patch by burnus
r=timeless,a=justdave

quips.cgi
template/en/default/global/code-error.html.tmpl
template/en/default/global/user-error.html.tmpl
template/en/default/list/quips.html.tmpl

index be8d9f3ec8e3ad8c6622aa3c87a39e07d768bfe1..f1783cd0aff189deee0753d1eac942b6ab81ab13 100755 (executable)
--- a/quips.cgi
+++ b/quips.cgi
@@ -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());
index 4b37ee4f11a43b53d520f13a06366439522194ab..a29cb1e1cd2d3b4dbabb90a940972d48fdaac6ca 100644 (file)
     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.
 
index af72873c4efa1cd521535f28e45bf4b1deaa4ba1..0d43b62a5eb89fdbcd559e1460791f1766441244 100644 (file)
   [% 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.
     [% 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
index f83f081286438947ddb8dfbfe42215c1ecd5db42..ccb5208b7818e3510bcd8b77faecf66926fb496b 100644 (file)
   </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 
       <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&amp;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 %]