diff options
-rwxr-xr-x | editproducts.cgi | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/editproducts.cgi b/editproducts.cgi index 0d70fc191..2267de922 100755 --- a/editproducts.cgi +++ b/editproducts.cgi @@ -280,25 +280,18 @@ my $classhtmlvarstart = ""; my $classhtmlvar = ""; my $dbh = Bugzilla->dbh; -if (Param('useclassification') && (defined $classification)) { - $classhtmlvar = "&classification=" . url_quote($classification); - $classhtmlvarstart = "?classification=" . url_quote($classification); -} - -if (Param('useclassification') && (defined $classification)) { - $localtrailer .= ", <A HREF=\"editproducts.cgi" . $classhtmlvarstart . "\">edit</A> in this classification"; -} - # # product = '' -> Show nice list of classifications (if # classifications enabled) # if (Param('useclassification')) { - unless ($classification) { - - my $dbh = Bugzilla->dbh; - + if ($classification) { + $classhtmlvar = "&classification=" . url_quote($classification); + $classhtmlvarstart = "?classification=" . url_quote($classification); + $localtrailer .= ", <A HREF=\"editproducts.cgi" . $classhtmlvarstart . "\">edit</A> in this classification"; + } + elsif (!$product) { my $query = "SELECT classifications.name, classifications.description, COUNT(classification_id) AS product_count @@ -323,10 +316,11 @@ if (Param('useclassification')) { # -# action='' -> Show nice list of products +# action = '' -> Show a nice list of products, unless a product +# is already specified (then edit it) # -unless ($action) { +if (!$action && !$product) { if (Param('useclassification')) { CheckClassificationNew($classification); @@ -861,17 +855,30 @@ if ($action eq 'delete') { # -# action='edit' -> present the edit products from +# action='edit' -> present the 'edit product' form +# If a product is given with no action associated with it, then edit it. # # (next action would be 'update') # -if ($action eq 'edit') { +if ($action eq 'edit' || (!$action && $product)) { PutHeader("Edit product"); CheckProduct($product); my $classification_id=1; if (Param('useclassification')) { - CheckClassificationProduct($classification,$product); + # If a product has been given with no classification associated + # with it, take this information from the DB + if ($classification) { + CheckClassificationProduct($classification, $product); + } else { + trick_taint($product); + $classification = + $dbh->selectrow_array("SELECT classifications.name + FROM products, classifications + WHERE products.name = ? + AND classifications.id = products.classification_id", + undef, $product); + } $classification_id = get_classification_id($classification); } |