diff options
author | lpsolit%gmail.com <> | 2005-03-17 23:47:05 +0100 |
---|---|---|
committer | lpsolit%gmail.com <> | 2005-03-17 23:47:05 +0100 |
commit | 4374ee31d841496880373f04e04c96d2f16132ab (patch) | |
tree | 3cf6b578c93b084d42e76e6e5b3a3021bdbaf71f | |
parent | e4710b7e0d4a5613488561fcbac0eafe59de2312 (diff) | |
download | bugzilla-4374ee31d841496880373f04e04c96d2f16132ab.tar.gz bugzilla-4374ee31d841496880373f04e04c96d2f16132ab.tar.xz |
Bug 282384: Templatize the 'select classification' bit of editproducts - Patch by GavinS <bugzilla@chimpychompy.org> r=LpSolit, a=justdave
-rwxr-xr-x | editproducts.cgi | 44 | ||||
-rw-r--r-- | template/en/default/admin/products/footer.html.tmpl | 8 | ||||
-rw-r--r-- | template/en/default/admin/products/list-classifications.html.tmpl | 72 |
3 files changed, 94 insertions, 30 deletions
diff --git a/editproducts.cgi b/editproducts.cgi index 823ec92c2..0d70fc191 100755 --- a/editproducts.cgi +++ b/editproducts.cgi @@ -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; } } diff --git a/template/en/default/admin/products/footer.html.tmpl b/template/en/default/admin/products/footer.html.tmpl index 0276437f3..ecf23951f 100644 --- a/template/en/default/admin/products/footer.html.tmpl +++ b/template/en/default/admin/products/footer.html.tmpl @@ -43,11 +43,9 @@ [% 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 index 000000000..7a30bcd66 --- /dev/null +++ b/template/en/default/admin/products/list-classifications.html.tmpl @@ -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&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 %] |