From: lpsolit%gmail.com <> Date: Thu, 17 Mar 2005 22:47:05 +0000 (+0000) Subject: Bug 282384: Templatize the 'select classification' bit of editproducts - Patch by... X-Git-Tag: bugzilla-2.19.3~128 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4374ee31d841496880373f04e04c96d2f16132ab;p=thirdparty%2Fbugzilla.git Bug 282384: Templatize the 'select classification' bit of editproducts - Patch by GavinS r=LpSolit, a=justdave --- diff --git a/editproducts.cgi b/editproducts.cgi index 823ec92c2c..0d70fc191c 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 "\n"; - print " \n"; - print " \n"; - print " \n"; - print ""; - while ( MoreSQLData() ) { - my ($classification, $description, $count) = FetchSQLData(); - $description ||= "missing"; - print "\n"; - print " \n"; - print " \n"; - $count ||= "none"; - print " \n"; - } - print "
Edit products of ...DescriptionTotal
$classification$description$count
\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 0276437f3e..ecf23951f7 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 %] Add 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 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 %] ( + #%] + +[%# 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 +%] + +

+ +[%# No need for the standard edit products footer, as we have an 'add' + link in the table %] + +[% PROCESS global/footer.html.tmpl %]