]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 282384: Templatize the 'select classification' bit of editproducts - Patch by...
authorlpsolit%gmail.com <>
Thu, 17 Mar 2005 22:47:05 +0000 (22:47 +0000)
committerlpsolit%gmail.com <>
Thu, 17 Mar 2005 22:47:05 +0000 (22:47 +0000)
editproducts.cgi
template/en/default/admin/products/footer.html.tmpl
template/en/default/admin/products/list-classifications.html.tmpl [new file with mode: 0644]

index 823ec92c2c83c7a36c28b054a40c6fd9876bc6b7..0d70fc191c5934e81b66c41b1785e406a719b5f7 100755 (executable)
@@ -290,39 +290,33 @@ if (Param('useclassification') && (defined $classification)) {
 }
 
 #
-# product = '' -> Show nice list of products
+# product = '' -> Show nice list of classifications (if
+# classifications enabled)
 #
 
 if (Param('useclassification')) {
     unless ($classification) {
-        PutHeader("Select classification");
 
-        SendSQL("SELECT classifications.name, classifications.description,
-                        COUNT(classification_id) AS total
+        my $dbh = Bugzilla->dbh;
+
+        my $query = 
+            "SELECT classifications.name, classifications.description,
+                    COUNT(classification_id) AS product_count
              FROM classifications
              LEFT JOIN products
-               ON classifications.id = products.classification_id " .
-             $dbh->sql_group_by('classifications.id',
-                                'classifications.name,
-                                 classifications.description') . "
-             ORDER BY name");
-        print "<TABLE BORDER=1 CELLPADDING=4 CELLSPACING=0><TR BGCOLOR=\"#6666FF\">\n";
-        print "  <TH ALIGN=\"left\">Edit products of ...</TH>\n";
-        print "  <TH ALIGN=\"left\">Description</TH>\n";
-        print "  <TH ALIGN=\"left\">Total</TH>\n";
-        print "</TR>";
-        while ( MoreSQLData() ) {
-            my ($classification, $description, $count) = FetchSQLData();
-            $description ||= "<FONT COLOR=\"red\">missing</FONT>";
-            print "<TR>\n";
-            print "  <TD VALIGN=\"top\"><A HREF=\"editproducts.cgi?classification=",url_quote($classification),"\"><B>$classification</B></A></TD>\n";
-            print "  <TD VALIGN=\"top\">$description</TD>\n";
-            $count ||= "none";
-            print "  <TD VALIGN=\"top\">$count</TD>\n";
-        }
-        print "</TR></TABLE>\n";
+                  ON classifications.id = products.classification_id " .
+                  $dbh->sql_group_by('classifications.id',
+                                     'classifications.name,
+                                      classifications.description') . "
+             ORDER BY name";
+
+        $vars->{'classifications'} = $dbh->selectall_arrayref($query,
+                                                              {'Slice' => {}});
+
+        $template->process("admin/products/list-classifications.html.tmpl",
+                           $vars)
+            || ThrowTemplateError($template->error());
 
-        PutTrailer();
         exit;
     }
 }
index 0276437f3ea083a3a0564db14d34c36c5a09ac39..ecf23951f7a4b0035b08086da9c5f20b390bed98 100644 (file)
 
 [% UNLESS no_add_product_link %]
   <a title="Add a product"
-     href="editproducts.cgi?action=add">Add</a> a product
-
-
-  [%# Strictly speaking, we should not have to check for a
-      classification if they are enabled, but I'm just being paranoid %]
+     href="editproducts.cgi?action=add">Add</a> a product[% -%]
+[%# Strictly speaking, we should not have to check for a
+    classification if they are enabled, but I'm just being paranoid %]
   [% IF Param('useclassification') && classification %]
     (<a title="Add a product to classification '
                [%- classification FILTER html %]'"
diff --git a/template/en/default/admin/products/list-classifications.html.tmpl b/template/en/default/admin/products/list-classifications.html.tmpl
new file mode 100644 (file)
index 0000000..7a30bcd
--- /dev/null
@@ -0,0 +1,72 @@
+[%# 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.
+  #
+  # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org>
+  #%]
+
+[%# INTERFACE:
+  # classifications: array of hashes having the following properties:
+  #   - name: string; The name of the classification
+  #   - description: string; The classification description (html allowed)
+  #   - product_count: number; The number of products in this classification
+  #
+  #%]
+
+[% PROCESS global/variables.none.tmpl %]
+
+[% PROCESS global/header.html.tmpl
+  title = "Select Classification"
+%]
+
+[% edit_contentlink = BLOCK %]
+  editproducts.cgi?classification=%%name%%
+[% END %]
+[% add_contentlink = BLOCK %]
+  editproducts.cgi?action=add&amp;classification=%%name%%
+[% END %]
+
+[% columns = [
+     { 
+       name => "name"
+       heading => "Edit products of..."
+       contentlink => edit_contentlink
+     },
+     { 
+       name => "description"
+       heading => "Description"
+       allow_html_content => 1
+     },
+     { 
+       name => "product_count"
+       align => "right"
+       heading => "Product Count"
+     },
+     { 
+       heading => "Action..."
+       content => "Add product"
+       contentlink => add_contentlink
+     },
+   ]
+%]
+
+[% PROCESS admin/table.html.tmpl
+     columns = columns
+     data = classifications
+%]
+
+<p>
+
+[%# No need for the standard edit products footer, as we have an 'add'
+    link in the table %]
+
+[% PROCESS global/footer.html.tmpl %]