diff options
author | lpsolit%gmail.com <> | 2008-07-31 02:47:25 +0000 |
---|---|---|
committer | lpsolit%gmail.com <> | 2008-07-31 02:47:25 +0000 |
commit | 7f0ba708827dec5bb77222405009f1771e43655a (patch) | |
tree | 4b40eddbdcd172d211514d25dc9b2adcf78e9caf /template/en | |
parent | 4fc0f4b92290a7fbf9b4340e9dd37c2626f524ea (diff) | |
download | bugs-7f0ba708827dec5bb77222405009f1771e43655a.tar bugs-7f0ba708827dec5bb77222405009f1771e43655a.tar.gz bugs-7f0ba708827dec5bb77222405009f1771e43655a.tar.bz2 bugs-7f0ba708827dec5bb77222405009f1771e43655a.tar.xz bugs-7f0ba708827dec5bb77222405009f1771e43655a.zip |
Bug 313122: Implement Product->create, $product->update and $product->remove_from_db, and make editproducts.cgi use them - Patch by Frédéric Buclin <LpSolit@gmail.com> r=mkanat a=LpSolit
Diffstat (limited to 'template/en')
9 files changed, 78 insertions, 151 deletions
diff --git a/template/en/default/admin/products/confirm-delete.html.tmpl b/template/en/default/admin/products/confirm-delete.html.tmpl index 7667d70e5..43ebf8a81 100644 --- a/template/en/default/admin/products/confirm-delete.html.tmpl +++ b/template/en/default/admin/products/confirm-delete.html.tmpl @@ -31,14 +31,6 @@ style_urls = ['skins/standard/admin.css'] %] -[% IF classification %] - [% classification_url_part = BLOCK %]&classification= - [%- classification.name FILTER url_quote %] - [%- END %] -[% ELSE %] - [% classification_url_part = "" %] -[% END %] - <table border="1" cellpadding="4" cellspacing="0"> <tr bgcolor="#6666FF"> <th valign="top" align="left">Field</th> @@ -66,8 +58,7 @@ <tr> <td valign="top">Product:</td> <td valign="top"> - <a href="editproducts.cgi?product=[% product.name FILTER url_quote %] - [%- classification_url_part %]"> + <a href="editproducts.cgi?product=[% product.name FILTER url_quote %]"> [% product.name FILTER html %] </a> </td> @@ -113,8 +104,7 @@ <tr> <td> [% IF product.components.size > 0 %] - <a href="editcomponents.cgi?product=[% product.name FILTER url_quote %] - [%- classification_url_part %]" + <a href="editcomponents.cgi?product=[% product.name FILTER url_quote %]" title="Edit components for product '[% product.name FILTER html %]'"> Components: </a> @@ -148,8 +138,7 @@ <tr> <td> [% IF product.versions.size > 0 %] - <a href="editversions.cgi?product=[%- product.name FILTER url_quote %] - [%- classification_url_part %]"> + <a href="editversions.cgi?product=[%- product.name FILTER url_quote %]"> Versions: </a> [% ELSE %] @@ -172,8 +161,7 @@ <tr> <td valign="top"> [% IF product.milestones.size > 0 %] - <a href="editmilestones.cgi?product=[%- product.name FILTER url_quote %] - [%- classification_url_part -%]"> + <a href="editmilestones.cgi?product=[%- product.name FILTER url_quote %]"> Milestones: </a> [% ELSE %] @@ -196,10 +184,8 @@ <td>[% terms.Bugs %]:</td> <td> [% IF product.bug_count %] - <a href="buglist.cgi?product=[%- product.name FILTER url_quote %] - [%- classification_url_part %]" - title="List of [% terms.bugs %] for product ' - [%- product.name FILTER html %]'"> + <a href="buglist.cgi?product=[% product.name FILTER url_quote %]" + title="List of [% terms.bugs %] for product '[% product.name FILTER html %]'"> [% product.bug_count FILTER html %] </a> [% ELSE %] @@ -264,8 +250,6 @@ <input type="hidden" name="action" value="delete"> <input type="hidden" name="product" value="[% product.name FILTER html %]"> <input type="hidden" name="token" value="[% token FILTER html %]"> - <input type="hidden" name="classification" - value="[% classification.name FILTER html %]"> </form> [% END %] diff --git a/template/en/default/admin/products/create.html.tmpl b/template/en/default/admin/products/create.html.tmpl index e1cd38140..49c4ca71f 100644 --- a/template/en/default/admin/products/create.html.tmpl +++ b/template/en/default/admin/products/create.html.tmpl @@ -53,8 +53,6 @@ </table> <input type="submit" value="Add"> - <input type="hidden" name="subcategory" value="-All-"> - <input type="hidden" name="open_name" value="All Open"> <input type="hidden" name="action" value="new"> <input type="hidden" name="token" value="[% token FILTER html %]"> <input type="hidden" name="classification" diff --git a/template/en/default/admin/products/edit.html.tmpl b/template/en/default/admin/products/edit.html.tmpl index 2d346c665..a3d5089c3 100644 --- a/template/en/default/admin/products/edit.html.tmpl +++ b/template/en/default/admin/products/edit.html.tmpl @@ -101,8 +101,7 @@ versions:</a> <tr> <th align="right" valign="top"> <a href="editproducts.cgi?action=editgroupcontrols&product= - [%- product.name FILTER url_quote %]&classification= - [%- classification.name FILTER url_quote %]"> + [%- product.name FILTER url_quote %]"> Edit Group Access Controls: </a> </th> @@ -139,8 +138,6 @@ versions:</a> value="[% product.name FILTER html %]"> <input type="hidden" name="action" value="update"> <input type="hidden" name="token" value="[% token FILTER html %]"> - <input type="hidden" name="classification" - value="[% classification.name FILTER html %]"> <input type="submit" name="submit" value="Save Changes"> </form> diff --git a/template/en/default/admin/products/footer.html.tmpl b/template/en/default/admin/products/footer.html.tmpl index 4b8fe053b..c35551748 100644 --- a/template/en/default/admin/products/footer.html.tmpl +++ b/template/en/default/admin/products/footer.html.tmpl @@ -61,9 +61,7 @@ Edit product <a title="Edit Product '[% product.name FILTER html %]' [%- classification_text %]" - href="editproducts.cgi?action=edit&product= - [%- product.name FILTER url_quote %] - [%- classification_url_part %]"> + href="editproducts.cgi?action=edit&product=[% product.name FILTER url_quote %]"> '[% product.name FILTER html %]'</a>. [% END %] diff --git a/template/en/default/admin/products/list.html.tmpl b/template/en/default/admin/products/list.html.tmpl index 3f1576913..b82a6a5b0 100644 --- a/template/en/default/admin/products/list.html.tmpl +++ b/template/en/default/admin/products/list.html.tmpl @@ -39,14 +39,13 @@ [% edit_contentlink = BLOCK %] editproducts.cgi?action=edit&product=%%name%% - [%- classification_url_part %] [% END %] [% delete_contentlink = BLOCK %] editproducts.cgi?action=del&product=%%name%% - [%- classification_url_part %] [% END %] -[% bug_count_contentlink = BLOCK %]buglist.cgi?product=%%name%% - [%- classification_url_part %][% END %] +[% bug_count_contentlink = BLOCK %] + buglist.cgi?product=%%name%% +[% END %] [% columns = [ diff --git a/template/en/default/admin/products/updated.html.tmpl b/template/en/default/admin/products/updated.html.tmpl index 4d5f518ec..b04fa4663 100644 --- a/template/en/default/admin/products/updated.html.tmpl +++ b/template/en/default/admin/products/updated.html.tmpl @@ -16,38 +16,18 @@ # Rights Reserved. # # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> #%] [%# INTERFACE: - # - # old_product : Bugzilla::Product Object; old product. # product : Bugzilla::Product Object; new product. - # # classification: Bugzilla::Classification Object; The product classification (may be empty or missing) - # - # checkvotes: boolean; is true if vote related fields have changed. If so, - # then the following parameters will be specified: - # - # toomanyvotes: list of hashes, each one with an 'id' and a 'name' hash key - # detailing the bug id and the username of users who had too - # many votes for a bug - # - # toomanytotalvotes: list of hashes, each one with an 'id' and a 'name' hash key - # detailing the bug id and the username of users who had - # too many total votes - # - # confirmedbugs: list of bug ids, which were confirmed by votes - # - # changer: string; login of the user making the changes, used for mailing - # bug changes if necessary - # + # changes: hashref with all changes made to the product. Each key is an edited field, + # and its value is an arrayref of the form [old values, new values]. #%] [% IF classification %] - [% classification_url_part = BLOCK %]&classification= - [%- classification.name FILTER url_quote %] - [% END %] - [% classification_text = BLOCK %] + [% classification_text = BLOCK %] of classification '[% classification.name FILTER html %]' [% END %] [% END %] @@ -58,28 +38,24 @@ title = title style_urls = ['skins/standard/admin.css'] %] -[% updated = 0 %] -[% IF product.name != old_product.name %] +[% IF changes.name.defined %] <p> - Updated product name from '[% old_product.name FILTER html %]' to - <a href="editproducts.cgi?action=edit&product= - [%- product.name FILTER url_quote %] - [%- classification_url_part FILTER none %]">[% product.name FILTER html %]</a>. + Updated product name from '[% changes.name.0 FILTER html %]' to + '<a href="editproducts.cgi?action=edit&product= + [%- product.name FILTER url_quote %]">[% product.name FILTER html %]</a>'. </p> - [% updated = 1 %] [% END %] -[% IF product.description != old_product.description %] +[% IF changes.description.defined %] <p> Updated description to: </p> <p style="margin: 1em 3em 1em 3em">[% product.description FILTER html_light %]</p> - [% updated = 1 %] [% END %] -[% IF product.disallow_new != old_product.disallow_new %] +[% IF changes.disallownew.defined %] <p> Product is now [% IF product.disallow_new %] @@ -89,15 +65,14 @@ [% END %] new [% terms.bugs %]. </p> - [% updated = 1 %] [% END %] -[% IF product.milestone_url != old_product.milestone_url %] +[% IF changes.milestoneurl.defined %] <p> Updated milestone URL - [% IF old_product.milestone_url != '' %] - from<br> <a href="[%- old_product.milestone_url FILTER html %]"> - [%- old_product.milestone_url FILTER html %]</a> + [% IF changes.milestoneurl.0 != '' %] + from<br> <a href="[%- changes.milestoneurl.0 FILTER html %]"> + [%- changes.milestoneurl.0 FILTER html %]</a> [% END %] to [% IF product.milestone_url != '' %] @@ -107,45 +82,43 @@ be empty. [% END %] </p> - [% updated = 1 %] [% END %] -[% IF product.default_milestone != old_product.default_milestone %] +[% IF changes.defaultmilestone.defined %] <p> - Updated default milestone from '[% old_product.default_milestone FILTER html %]' to + Updated default milestone from '[% changes.defaultmilestone.0 FILTER html %]' to '[% product.default_milestone FILTER html %]'. </p> - [% updated = 1 %] [% END %] -[% IF product.votes_per_user != old_product.votes_per_user %] +[% IF changes.votesperuser.defined %] <p> Updated votes per user from - [%+ old_product.votes_per_user FILTER html %] to + [%+ changes.votesperuser.0 FILTER html %] to [%+ product.votes_per_user FILTER html %]. </p> - [% updated = 1 %] + [% checkvotes = 1 %] [% END %] -[% IF product.max_votes_per_bug != old_product.max_votes_per_bug %] +[% IF changes.maxvotesperbug.defined %] <p> Updated maximum votes per [% terms.bug %] from - [%+ old_product.max_votes_per_bug FILTER html %] to + [%+ changes.maxvotesperbug.0 FILTER html %] to [%+ product.max_votes_per_bug FILTER html %]. </p> - [% updated = 1 %] + [% checkvotes = 1 %] [% END %] -[% IF product.votes_to_confirm != old_product.votes_to_confirm %] +[% IF changes.votestoconfirm.defined %] <p> Updated number of votes needed to confirm a [% terms.bug %] from - [%+ old_product.votes_to_confirm FILTER html %] to + [%+ changes.votestoconfirm.0 FILTER html %] to [%+ product.votes_to_confirm FILTER html %]. </p> - [% updated = 1 %] + [% checkvotes = 1 %] [% END %] -[% UNLESS updated %] +[% IF !changes.keys.size %] <p>Nothing changed for product '[% product.name FILTER html %]'.</p> [% END %] @@ -159,8 +132,8 @@ <p>Checking existing votes in this product for anybody who now has too many votes for [% terms.abug %]...<br> - [% IF toomanyvotes.size > 0 %] - [% FOREACH detail = toomanyvotes %] + [% IF changes.too_many_votes.size %] + [% FOREACH detail = changes.too_many_votes %] →removed votes for [% terms.bug %] <a href="show_bug.cgi?id= [%- detail.id FILTER url_quote %]"> [%- detail.id FILTER html %]</a> from [% detail.name FILTER html %]<br> @@ -172,8 +145,8 @@ <p>Checking existing votes in this product for anybody who now has too many total votes...<br> - [% IF toomanytotalvotes.size > 0 %] - [% FOREACH detail = toomanytotalvotes %] + [% IF changes.too_many_total_votes.size %] + [% FOREACH detail = changes.too_many_total_votes %] →removed votes for [% terms.bug %] <a href="show_bug.cgi?id= [%- detail.id FILTER url_quote %]"> [%- detail.id FILTER html %]</a> from [% detail.name FILTER html %]<br> @@ -185,14 +158,14 @@ <p>Checking unconfirmed [% terms.bugs %] in this product for any which now have sufficient votes...<br> - [% IF confirmedbugs.size > 0 %] - [% FOREACH id = confirmedbugs %] + [% IF changes.confirmed_bugs.size %] + [% FOREACH id = changes.confirmed_bugs %] [%# This is INCLUDED instead of PROCESSED to avoid variables getting overwritten, which happens otherwise %] [% INCLUDE bug/process/results.html.tmpl type = 'votes' - mailrecipients = { 'changer' => changer } + mailrecipients = { 'changer' => user.login } header_done = 1 id = id %] diff --git a/template/en/default/filterexceptions.pl b/template/en/default/filterexceptions.pl index a02c644ef..056341b53 100644 --- a/template/en/default/filterexceptions.pl +++ b/template/en/default/filterexceptions.pl @@ -474,10 +474,6 @@ 'classification_url_part', ], -'admin/products/confirm-delete.html.tmpl' => [ - 'classification_url_part', -], - 'admin/products/footer.html.tmpl' => [ 'classification_url_part', 'classification_text', diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl index fa66e273b..b67e7d598 100644 --- a/template/en/default/global/messages.html.tmpl +++ b/template/en/default/global/messages.html.tmpl @@ -129,6 +129,9 @@ [% ELSIF message_tag == "bug_has_duplicate" %] *** [% terms.Bug %] [%+ dupe FILTER html %] has been marked as a duplicate of this [% terms.bug %]. *** + [% ELSIF message_tag == "bug_group_description" %] + Access to [% terms.bugs %] in the [% product.name FILTER html %] product + [% ELSIF message_tag == "bug_moved_to" %] <p>[% terms.Bug %] moved to [% Param("move-to-url") FILTER html %].</p> <p>If the move succeeded, [% login FILTER html %] will receive a mail @@ -706,6 +709,9 @@ [% ELSIF message_tag == "series_all_closed" %] All Closed + [% ELSIF message_tag == "series_subcategory" %] + -All- + [% ELSIF message_tag == "sudo_started" %] [% title = "Sudo session started" %] The sudo session has been started. For the next 6 hours, or until you diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl index 804a1913b..fbab7625c 100644 --- a/template/en/default/global/user-error.html.tmpl +++ b/template/en/default/global/user-error.html.tmpl @@ -273,11 +273,6 @@ [% title = "Classification Does Not Exist" %] The classification '[% name FILTER html %]' does not exist. - [% ELSIF error == "classification_doesnt_exist_for_product" %] - [% title = "Classification Does Not Exist For Product" %] - The classification '[% classification FILTER html %]' does not exist - for product '[% product FILTER html %]'. - [% ELSIF error == "classification_invalid_sortkey" %] [% title = "Invalid Sortkey for Classification" %] The sortkey <em>[% sortkey FILTER html %]</em> for the '[% name FILTER html %]' @@ -313,8 +308,8 @@ [% ELSIF error == "component_name_too_long" %] [% title = "Component Name Is Too Long" %] - The name of a component is limited to 64 characters. - '[% name FILTER html %]' is too long ([% name.length %] characters). + The name of a component is limited to [% constants.MAX_COMPONENT_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). [% ELSIF error == "component_need_initialowner" %] [% title = "Component Requires Default Assignee" %] @@ -952,8 +947,8 @@ [% ELSIF error == "milestone_name_too_long" %] [% title = "Milestone Name Is Too Long" %] - The name of a milestone is limited to 20 characters. - '[% name FILTER html %]' is too long ([% name.length %] characters). + The name of a milestone is limited to [% constants.MAX_MILESTONE_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). [% ELSIF error == "milestone_required" %] [% title = "Milestone Required" %] @@ -1241,37 +1236,19 @@ [% title = "Specified Product Does Not Exist" %] The product '[% product FILTER html %]' does not exist. - [% ELSIF error == "product_votes_per_bug_must_be_nonnegative" %] - [% title = "Maximum Votes Must Be Non-negative" %] - [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] - '[% maxvotesperbug FILTER html %]' is an invalid value for the - <em>'Maximum Votes Per [% terms.Bug %]'</em> field, which should - contain a non-negative number. - - [% ELSIF error == "product_votes_per_user_must_be_nonnegative" %] - [% title = "Votes Per User Must Be Non-negative" %] - [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] - '[% votesperuser FILTER html %]' is an invalid value for the - <em>'Votes Per User'</em> field, which should contain a - non-negative number. - - [% ELSIF error == "product_votes_to_confirm_must_be_nonnegative" %] - [% title = "Votes To Confirm Must Be Non-negative" %] + [% ELSIF error == "product_illegal_votes" %] + [% title = "Votes Must Be Non-negative" %] [% admindocslinks = {'voting.html' => 'Setting up the voting feature'} %] - '[% votestoconfirm FILTER html %]' is an invalid value for the - <em>'Votes To Confirm'</em> field, which should contain a - non-negative number. - - [% ELSIF error == "product_cant_delete_description" %] - [% title = "Cannot delete product description" %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - Cannot delete the description for product - '[% product FILTER html %]'. - - [% ELSIF error == "product_cant_delete_name" %] - [% title = "Cannot delete product name" %] - [% admindocslinks = {'products.html' => 'Administering products'} %] - Cannot delete the product name for product '[% product FILTER html %]'. + '[% votes FILTER html %]' is an invalid value for the + <em> + [% IF field == "votesperuser" %] + Votes Per User + [% ELSIF field == "maxvotesperbug" %] + Maximum Votes Per [% terms.Bug %] + [% ELSIF field == "votestoconfirm" %] + Votes To Confirm + [% END %] + </em> field, which should contain a non-negative number. [% ELSIF error == "product_name_already_in_use" %] [% title = "Product name already in use" %] @@ -1284,19 +1261,17 @@ The product name '[% product FILTER html %]' differs from existing product '[% existing_product FILTER html %]' only in case. + [% ELSIF error == "product_name_too_long" %] + [% title = "Product name too long" %] + The name of a product is limited to [% constants.MAX_PRODUCT_SIZE FILTER html %] + characters. '[% name FILTER html %]' is too long ([% name.length %] characters). + [% ELSIF error == "product_must_define_defaultmilestone" %] [% title = "Must define new default milestone" %] [% admindocslinks = {'products.html' => 'Administering products', 'milestones.html' => 'About Milestones'} %] - [% IF classification %] - [% classification_url_part = BLOCK %]&classification= - [%- classification FILTER url_quote %] - [% END %] - [% END %] - You must <a href="editmilestones.cgi?action=add&product= - [%- product FILTER url_quote %] - [%- classification_url_part FILTER none %]"> - create the milestone '[% defaultmilestone FILTER html %]'</a> before + You must <a href="editmilestones.cgi?action=add&product=[% product FILTER url_quote %]"> + create the milestone '[% milestone FILTER html %]'</a> before it can be made the default milestone for product '[% product FILTER html %]'. [% ELSIF error == "product_admin_denied" %] @@ -1306,7 +1281,7 @@ [% ELSIF error == "product_blank_name" %] [% title = "Blank Product Name Not Allowed" %] [% admindocslinks = {'products.html' => 'Administering products'} %] - You must enter a name for the new product. + You must enter a name for the product. [% ELSIF error == "product_disabled" %] [% title = BLOCK %]Product closed for [% terms.Bug %] Entry[% END %] @@ -1331,13 +1306,13 @@ [% ELSIF error == "product_must_have_description" %] [% title = "Product needs Description" %] [% admindocslinks = {'products.html' => 'Administering products'} %] - You must enter a description for product '[% product FILTER html %]'. + You must enter a description for this product. [% ELSIF error == "product_must_have_version" %] [% title = "Product needs Version" %] [% admindocslinks = {'products.html' => 'Administering products', 'versions.html' => 'Administering versions'} %] - You must enter a version for product '[% product FILTER html %]'. + You must enter a valid version to create a new product. [% ELSIF error == "product_not_specified" %] [% title = "No Product Specified" %] @@ -1363,7 +1338,8 @@ [% ELSIF error == "query_name_too_long" %] [% title = "Query Name Too Long" %] - The name of the query must be less than 64 characters long. + The name of the query must be less than [% constants.MAX_LEN_QUERY_NAME FILTER html %] + characters long. [% ELSIF error == "quicksearch_unknown_field" %] [% title = "Unknown QuickSearch Field" %] |