diff options
author | Dexter Morgan <dmorgan@mageia.org> | 2010-11-26 14:56:29 +0000 |
---|---|---|
committer | Colin Guthrie <colin@mageia.org> | 2014-09-15 20:44:39 +0100 |
commit | 80fc05854135e575e7811b55f521e8bb9855a2ee (patch) | |
tree | 72b18ca48983a3ebb7fe2f0d658d099f5854f3db /template/en/default/admin | |
download | bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar.gz bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar.bz2 bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar.xz bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.zip |
Add custom template with identity support
Diffstat (limited to 'template/en/default/admin')
97 files changed, 9824 insertions, 0 deletions
diff --git a/template/en/default/admin/admin.html.tmpl b/template/en/default/admin/admin.html.tmpl new file mode 100644 index 0000000..145360b --- /dev/null +++ b/template/en/default/admin/admin.html.tmpl @@ -0,0 +1,135 @@ +[%# 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): Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Administer your installation ([% terms.Bugzilla %] + [%+ constants.BUGZILLA_VERSION FILTER html %]) +[% END %] + +[% PROCESS global/header.html.tmpl title = title + style_urls = ['skins/standard/admin.css'] + doc_section = "administration.html" +%] + +<div> + This page is only accessible to empowered users. You can access administrative pages + from here (based on your privileges), letting you configure different aspects of + this installation. Note: some sections may not be accessible to you and are marked + using a lighter color. +</div> + +<table> + <tr> + <td class="admin_links"> + <dl> + [% class = user.in_group('tweakparams') ? "" : "forbidden" %] + <dt id="parameters" class="[% class %]"><a href="editparams.cgi">Parameters</a></dt> + <dd class="[% class %]">Set core parameters of the installation. That's the + place where you specify the URL to access this installation, determine how + users authenticate, choose which [% terms.bug %] fields to display, select + the mail transfer agent to send email notifications, choose which group of + users can use charts and share queries, and much more.</dd> + + <dt id="preferences" class="[% class %]"><a href="editsettings.cgi">Default Preferences</a></dt> + <dd class="[% class %]">Set the default user preferences. These are the values + which will be used by default for all users. Users will be able to edit their + own preferences from the <a href="userprefs.cgi?tab=settings">Preferences</a>.</dd> + + [% class = user.in_group('editcomponents') ? "" : "forbidden" %] + <dt id="sanitycheck" class="[% class %]"><a href="sanitycheck.cgi">Sanity Check</a></dt> + <dd class="[% class %]">Run sanity checks to locate problems in your database. + This may take several tens of minutes depending on the size of your installation. + You can also automate this check by running <tt>sanitycheck.pl</tt> from a cron job. + A notification will be sent per email to the specified user if errors are detected.</dd> + + [% class = (user.in_group('editusers') || user.can_bless) ? "" : "forbidden" %] + <dt id="users" class="[% class %]"><a href="editusers.cgi">Users</a></dt> + <dd class="[% class %]">Create new user accounts or edit existing ones. You can + also add and remove users from groups (also known as "user privileges").</dd> + + [% class = (Param('useclassification') && user.in_group('editclassifications')) ? "" : "forbidden" %] + <dt id="classifications" class="[% class %]"><a href="editclassifications.cgi">Classifications</a></dt> + <dd class="[% class %]">If your installation has to manage many products at once, + it's a good idea to group these products into distinct categories. This lets users + find information more easily when doing searches or when filing new [% terms.bugs %].</dd> + + [% class = (user.in_group('editcomponents') + || user.get_products_by_permission("editcomponents").size) ? "" : "forbidden" %] + <dt id="products" class="[% class %]"><a href="editproducts.cgi">Products</a></dt> + <dd class="[% class %]">Edit all aspects of products, including group restrictions + which let you define who can access [% terms.bugs %] being in these products. You + can also edit some specific attributes of products such as + <a href="editcomponents.cgi">components</a>, <a href="editversions.cgi">versions</a> + and <a href="editmilestones.cgi">milestones</a> directly.</dd> + + [% class = user.in_group('editcomponents') ? "" : "forbidden" %] + <dt id="flags" class="[% class %]"><a href="editflagtypes.cgi">Flags</a></dt> + <dd class="[% class %]">A flag is a custom 4-states attribute of [% terms.bugs %] + and/or attachments. These states are: granted, denied, requested and undefined. + You can set as many flags as desired per [% terms.bug %], and define which users + are allowed to edit them.</dd> + + [% Hook.process('end_links_left') %] + </dl> + </td> + + <td class="admin_links"> + <dl> + [% class = user.in_group('admin') ? "" : "forbidden" %] + <dt id="custom_fields" class="[% class %]"><a href="editfields.cgi">Custom Fields</a></dt> + <dd class="[% class %]">[% terms.Bugzilla %] lets you define fields which are + not implemented by default, based on your local and specific requirements. + These fields can then be used as any other field, meaning that you can set + them in [% terms.bugs %] and run any search involving them.<br> + Before creating new fields, keep in mind that too many fields may make the user + interface more complex and harder to use. Be sure you have investigated other ways + to satisfy your needs before doing this.</dd> + + <dt id="field_values" class="[% class %]"><a href="editvalues.cgi">Field Values</a></dt> + <dd class="[% class %]">Define legal values for fields whose values must belong + to some given list. This is also the place where you define legal values for some + types of custom fields.</dd> + + <dt id="status_workflow" class="[% class %]"><a href="editworkflow.cgi">[%terms.Bug %] Status Workflow</a></dt> + <dd class="[% class %]">Customize your workflow and choose initial [% terms.bug %] + statuses available on [% terms.bug %] creation and allowed [% terms.bug %] status + transitions when editing existing [% terms.bugs %].</dd> + + [% class = user.in_group('creategroups') ? "" : "forbidden" %] + <dt id="groups" class="[% class %]"><a href="editgroups.cgi">Groups</a></dt> + <dd class="[% class %]">Define groups which will be used in the installation. + They can either be used to define new user privileges or to restrict the access + to some [% terms.bugs %].</dd> + + [% class = user.in_group('editkeywords') ? "" : "forbidden" %] + <dt id="keywords" class="[% class %]"><a href="editkeywords.cgi">Keywords</a></dt> + <dd class="[% class %]">Set keywords to be used with [% terms.bugs %]. Keywords + are an easy way to "tag" [% terms.bugs %] to let you find them more easily later.</dd> + + [% class = user.in_group('bz_canusewhines') ? "" : "forbidden" %] + <dt id="whining" class="[% class %]"><a href="editwhines.cgi">Whining</a></dt> + <dd class="[% class %]">Set queries which will be run at some specified date + and time, and get the result of these queries directly per email. This is a + good way to create reminders and to keep track of the activity in your installation.</dd> + + [% Hook.process('end_links_right') %] + </dl> + </td> + </tr> +</table> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/classifications/add.html.tmpl b/template/en/default/admin/classifications/add.html.tmpl new file mode 100644 index 0000000..cd949f2 --- /dev/null +++ b/template/en/default/admin/classifications/add.html.tmpl @@ -0,0 +1,56 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting <alt@sonic.net> + #%] + +[% PROCESS global/header.html.tmpl + title = "Add new classification" +%] + +<form method=post action="editclassifications.cgi"> + <table border=0 cellpadding=4 cellspacing=0> + <tr> + <th align="right">Classification:</th> + <td><input size=64 maxlength=64 name="classification"></td> + </tr> + <tr> + <th align="right">Description:</th> + <td> + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + %] + </td> + </tr> + <tr> + <th align="right"><label for="sortkey">Sortkey:</label></th> + <td><input id="sortkey" size="20" maxlength="20" name="sortkey" + value=""></td> + </tr> + </table> + <hr> + <input type=submit value="Add"> + <input type=hidden name="action" value="new"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</FORM> + +[% PROCESS admin/classifications/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/classifications/del.html.tmpl b/template/en/default/admin/classifications/del.html.tmpl new file mode 100644 index 0000000..5a3800f --- /dev/null +++ b/template/en/default/admin/classifications/del.html.tmpl @@ -0,0 +1,63 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting <alt@sonic.net> + #%] + +[% PROCESS global/header.html.tmpl + title = "Delete classification" +%] + +<table border=1 cellpadding=4 cellspacing=0> +<tr bgcolor="#6666ff"> + <th valign="top" align="left">Part</th> + <th valign="top" align="left">Value</th> + +</tr><tr> + <td valign="top">Classification:</td> + <td valign="top">[% classification.name FILTER html %]</td> + +</tr><tr> + <td valign="top">Description:</td> + <td valign="top"> + [% IF classification.description %] + [% classification.description FILTER html_light %] + [% ELSE %] + <font color="red">description missing</font> + [% END %] + </td> + +</tr><tr> + <td valign="top">Sortkey:</td> + <td valign="top">[% classification.sortkey FILTER html %]</td> + +</tr> +</table> + +<h2>Confirmation</h2> + +<p>Do you really want to delete this classification?</p> +<form method=post action="editclassifications.cgi"> + <input type=submit value="Yes, delete"> + <input type=hidden name="action" value="delete"> + <input type=hidden name="classification" value="[% classification.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +[% PROCESS admin/classifications/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/classifications/edit.html.tmpl b/template/en/default/admin/classifications/edit.html.tmpl new file mode 100644 index 0000000..80d7f98 --- /dev/null +++ b/template/en/default/admin/classifications/edit.html.tmpl @@ -0,0 +1,85 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting <alt@sonic.net> + #%] + +[% PROCESS global/header.html.tmpl + title = "Edit classification" +%] + +<form method=post action="editclassifications.cgi"> + <table border=0 cellpadding=4 cellspacing=0> + <tr> + <th align="right">Classification:</th> + <td><input size=64 maxlength=64 name="classification" + value="[% classification.name FILTER html %]"></td> + </tr> + <tr> + <th align="right">Description:</th> + <td> + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + defaultcontent = classification.description + %] + </td> + </tr> + <tr> + <th align="right"><label for="sortkey">Sortkey:</label></th> + <td><input id="sortkey" size="20" maxlength="20" name="sortkey" value=" + [%- classification.sortkey FILTER html %]"></td> + </tr> + <tr valign=top> + <th align="right"> + <a href="editproducts.cgi?classification=[% classification.name FILTER url_quote %]"> + Edit Products</a>: + </th> + <td> + [% IF classification.products.size > 0 %] + <table> + [% FOREACH product = classification.products %] + <tr> + <th align=right valign=top>[% product.name FILTER html %]</th> + <td valign=top> + [% IF product.description %] + [% product.description FILTER html_light %] + [% ELSE %] + <font color="red">description missing</font> + [% END %] + </td> + </tr> + [% END %] + </table> + [% ELSE %] + <font color="red">none</font> + [% END %] + </td> + </tr> + </table> + + <input type=hidden name="classificationold" + value="[% classification.name FILTER html %]"> + <input type=hidden name="action" value="update"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type=submit value="Update"> +</form> + +[% PROCESS admin/classifications/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/classifications/footer.html.tmpl b/template/en/default/admin/classifications/footer.html.tmpl new file mode 100644 index 0000000..db983aa --- /dev/null +++ b/template/en/default/admin/classifications/footer.html.tmpl @@ -0,0 +1,24 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Nitish Bezzala <nbezzala@yahoo.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +<p>Back to the <a href="./">main [% terms.bugs %] page</a> +or <a href="editclassifications.cgi"> edit</a> more classifications.</p> diff --git a/template/en/default/admin/classifications/reclassify.html.tmpl b/template/en/default/admin/classifications/reclassify.html.tmpl new file mode 100644 index 0000000..146a1ac --- /dev/null +++ b/template/en/default/admin/classifications/reclassify.html.tmpl @@ -0,0 +1,90 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting <alt@sonic.net> + #%] + +[% PROCESS global/header.html.tmpl + title = "Reclassify products" +%] + +<form method=post action="editclassifications.cgi"> + <table border=0 cellpadding=4 cellspacing=0> + <tr> + <td valign="top">Classification:</td> + <td valign="top" colspan=3>[% classification.name FILTER html %]</td> + + </tr><tr> + <td valign="top">Description:</td> + <td valign="top" colspan=3> + [% IF classification.description %] + [% classification.description FILTER html_light %] + [% ELSE %] + <font color="red">description missing</font> + [% END %] + </td> + + </tr><tr> + <td valign="top">Sortkey:</td> + <td valign="top" colspan=3>[% classification.sortkey FILTER html %]</td> + + </tr><tr> + <td valign="top">Products:</td> + <td valign="top">Other Classifications</td> + <td></td> + <td valign="top">This Classification</td> + + </tr><tr> + <td></td> + <td valign="top"> + <select name="prodlist" id="prodlist" multiple="multiple" size="20"> + [% FOREACH class = classifications %] + [% IF class.id != classification.id %] + [% FOREACH product = class.products %] + <option value="[% product.name FILTER html %]"> + [[% class.name FILTER html %]] [% product.name FILTER html %] + </option> + [% END %] + [% END %] + [% END %] + </select></td> + + <td align="center"> + <input type=submit value=" Add >> " name="add_products"><br><br> + <input type=submit value="<< Remove" name="remove_products"> + </td> + + <td valign="middle" rowspan=2> + <select name="myprodlist" id="myprodlist" multiple="multiple" size="20"> + [% FOREACH product = classification.products %] + <option value="[% product.name FILTER html %]"> + [% product.name FILTER html %] + </option> + [% END %] + </select></td> + </tr> + </table> + + <input type=hidden name="action" value="reclassify"> + <input type=hidden name="classification" value="[% classification.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +[% PROCESS admin/classifications/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] + diff --git a/template/en/default/admin/classifications/select.html.tmpl b/template/en/default/admin/classifications/select.html.tmpl new file mode 100644 index 0000000..d6b352d --- /dev/null +++ b/template/en/default/admin/classifications/select.html.tmpl @@ -0,0 +1,66 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Albert Ting <alt@sonic.net> + #%] + +[% PROCESS global/header.html.tmpl + title = "Select classification" +%] + +<table border=1 cellpadding=4 cellspacing=0> + <tr bgcolor="#6666ff"> + <th align="left">Edit Classification ...</th> + <th align="left">Description</th> + <th align="left">Sortkey</th> + <th align="left">Products</th> + <th align="left">Action</th> + </tr> + + [% FOREACH cl = classifications %] + <tr> + <td valign="top"><a href="editclassifications.cgi?action=edit&classification=[% cl.name FILTER url_quote %]"><b>[% cl.name FILTER html %]</b></a></td> + <td valign="top"> + [% IF cl.description %] + [% cl.description FILTER html_light %] + [% ELSE %] + <font color="red">none</font> + [% END %] + </td> + <td valign="top">[% cl.sortkey FILTER html %]</td> + [% IF (cl.id == 1) %] + <td valign="top">[% cl.product_count FILTER html %]</td> + [% ELSE %] + <td valign="top"><a href="editclassifications.cgi?action=reclassify&classification=[% cl.name FILTER url_quote %]">reclassify ([% cl.product_count FILTER html %])</a></td> + [% END %] + + [%# don't allow user to delete the default id. %] + [% IF (cl.id == 1) %] + <td valign="top"> </td> + [% ELSE %] + <td valign="top"><a href="editclassifications.cgi?action=del&classification=[% cl.name FILTER url_quote %]">delete</a></td> + [% END %] + </tr> + [% END %] + + <tr> + <td valign="top" colspan=4>Add a new classification</td> + <td valign="top" align="center"><a href="editclassifications.cgi?action=add">Add</a></td> + </tr> +</table> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/confirm-delete.html.tmpl b/template/en/default/admin/components/confirm-delete.html.tmpl new file mode 100644 index 0000000..d0a1385 --- /dev/null +++ b/template/en/default/admin/components/confirm-delete.html.tmpl @@ -0,0 +1,160 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + #%] + +[%# INTERFACE: + # comp: object; Bugzilla::Component object representing the component the + # user wants to delete. + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +[% title = BLOCK %]Delete component '[% comp.name FILTER html %]' +from '[% product.name FILTER html %]' product + [% END %] + +[% PROCESS global/header.html.tmpl + title = title +%] + +<table border="1" cellpadding="4" cellspacing="0"> +<tr bgcolor="#6666FF"> + <th valign="top" align="left">Field</th> + <th valign="top" align="left">Value</th> +</tr> +<tr> + <td valign="top">Component:</td> + <td valign="top">[% comp.name FILTER html %]</td> +</tr> +<tr> + <td valign="top">Component Description:</td> + <td valign="top">[% comp.description FILTER html_light %]</td> +</tr> +<tr> + <td valign="top">Default assignee:</td> + <td valign="top">[% comp.default_assignee.login FILTER html %]</td> + +[% IF Param('useqacontact') %] +</tr> +<tr> + <td valign="top">Default QA contact:</td> + <td valign="top">[% comp.default_qa_contact.login FILTER html %]</td> +[% END %] + +</tr> +<tr> + <td valign="top">Component of Product:</td> + <td valign="top">[% product.name FILTER html %]</td> + +[% IF product.description %] +</tr> +<tr> + <td valign="top">Product Description:</td> + <td valign="top">[% product.description FILTER html_light %]</td> +[% END %] + +[% IF Param('usetargetmilestone') %] +</tr> +<tr> + <td valign="top">Product Milestone URL:</td> + <td valign="top"> + <a href="[% product.milestone_url FILTER html %]"> + [% product.milestone_url FILTER html %] + </a> + </td> +[% END %] + +</tr> +<tr> + <TD VALIGN="top">Open for [% terms.bugs %]:</TD> + <TD VALIGN="top">[% IF product.is_active %]Yes[% ELSE %]No[% END %]</td> +</tr> +<tr> + <td valign="top">[% terms.Bugs %]:</td> + <td valign="top"> +[% IF comp.bug_count %] + <a title="List of [% terms.bugs %] for component '[% comp.name FILTER html %]'" + href="buglist.cgi?component=[% comp.name FILTER url_quote %]&product= + [%- product.name FILTER url_quote %]">[% comp.bug_count %]</a> +[% ELSE %] + None +[% END %] + </td> +</tr> +</table> + +<h2>Confirmation</h2> + +[% IF comp.bug_count %] + + [% IF !Param("allowbugdeletion") %] + <p> + Sorry, there + + [% IF comp.bug_count > 1 %] + are [% comp.bug_count %] [%+ terms.bugs %] + [% ELSE %] + is [% comp.bug_count %] [%+ terms.bug %] + [% END %] + + outstanding for this component. You must reassign + + [% IF comp.bug_count > 1 %] + those [% terms.bugs %] + [% ELSE %] + that [% terms.bug %] + [% END %] + + to another component before you can delete this one. + </p> + [% ELSE %] + + <table border="0" cellpadding="20" width="70%" bgcolor="red"><tr><td> + + There [% IF comp.bug_count > 1 %] + are [% comp.bug_count %] [%+ terms.bugs %] + [% ELSE %] + is 1 [% terms.bug %] + [% END %] + entered for this component! When you delete this + component, <b><blink>ALL</blink></b> stored [% terms.bugs %] and + their history will be deleted too. + </td></tr></table> + + [% END %] + +[% END %] + +[% IF comp.bug_count == 0 || Param('allowbugdeletion') %] + + <p>Do you really want to delete this component?</p> + + <form method="post" action="editcomponents.cgi"> + <input type="submit" id="delete" value="Yes, delete"> + <input type="hidden" name="action" value="delete"> + <input type="hidden" name="product" value="[% product.name FILTER html %]"> + <input type="hidden" name="component" value="[% comp.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + </form> + +[% END %] + +[% PROCESS admin/components/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/create.html.tmpl b/template/en/default/admin/components/create.html.tmpl new file mode 100644 index 0000000..86411ad --- /dev/null +++ b/template/en/default/admin/components/create.html.tmpl @@ -0,0 +1,103 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Akamai Technologies <bugzilla-dev@akamai.com> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +[% title = BLOCK %]Add component to the [% product.name FILTER html %] product[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +<form method="post" action="editcomponents.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + <tr> + <th align="right">Component:</th> + <td><input size="64" maxlength="64" name="component" value=""></td> + </tr> + <tr> + <th align="right">Description:</th> + <td> + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + %] + </td> + </tr> + <tr> + <th align="right"><label for="initialowner">Default Assignee:</label></th> + <td> + [% INCLUDE global/userselect.html.tmpl + name => "initialowner" + id => "initialowner" + value => "" + size => 64 + %] + </td> + </tr> +[% IF Param('useqacontact') %] + <tr> + <th align="right"> + <label for="initialqacontact">Default QA Contact:</label></th> + <td> + [% INCLUDE global/userselect.html.tmpl + name => "initialqacontact" + id => "initialqacontact" + value => "" + size => 64 + emptyok => 1 + %] + </td> + </tr> +[% END %] + <tr> + <th align="right"> + <label for="initialcc">Default CC List:</label> + </th> + <td> + [% INCLUDE global/userselect.html.tmpl + name => "initialcc" + id => "initialcc" + value => "" + size => 64 + multiple => 5 + %] + <br> + [% IF !Param("usemenuforusers") %] + <em>Enter user names for the CC list as a comma-separated list.</em> + [% END %] + </td> + </tr> + </table> + <hr> + <input type="submit" id="create" value="Add"> + <input type="hidden" name="action" value="new"> + <input type="hidden" name='product' value="[% product.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +[% PROCESS admin/components/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/edit.html.tmpl b/template/en/default/admin/components/edit.html.tmpl new file mode 100644 index 0000000..9ddb8ca --- /dev/null +++ b/template/en/default/admin/components/edit.html.tmpl @@ -0,0 +1,134 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Akamai Technologies <bugzilla-dev@akamai.com> + #%] + +[%# INTERFACE: + # comp: object; Bugzilla::Component object representing the component the + # user wants to edit. + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Edit component '[% comp.name FILTER html %]' of product '[% product.name FILTER html %]' +[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +<form method="post" action="editcomponents.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + + <tr> + <td valign="top">Component:</td> + <td><input size="64" maxlength="64" name="component" value=" + [%- comp.name FILTER html %]"></td> + </tr> + <tr> + <td valign="top">Component Description:</td> + <td> + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + defaultcontent = comp.description + %] + </td> + </tr> + <tr> + <td valign="top"><label for="initialowner">Default Assignee:</label></td> + <td> + [% INCLUDE global/userselect.html.tmpl + name => "initialowner" + id => "initialowner" + value => comp.default_assignee.login + size => 64 + %] + </td> + +[% IF Param('useqacontact') %] + </tr> + <tr> + <td valign="top"><label for="initialqacontact">Default QA contact:</label></td> + <td> + [% INCLUDE global/userselect.html.tmpl + name => "initialqacontact" + id => "initialqacontact" + value => comp.default_qa_contact.login + size => 64 + emptyok => 1 + %] + </td> +[% END %] + + </tr> + <tr> + <td valign="top"> + <label for="initialcc">Default CC List:</label> + </td> + <td> + [% INCLUDE global/userselect.html.tmpl + name => "initialcc" + id => "initialcc" + value => initial_cc_names + size => 64 + multiple => 5 + %] + <br> + [% IF !Param("usemenuforusers") %] + <em>Enter user names for the CC list as a comma-separated list.</em> + [% END %] + </td> + </tr> + <tr> + <td>[% terms.Bugs %]:</td> + <td> +[% IF comp.bug_count > 0 %] + <a title="[% terms.Bugs %] in component '[% comp.name FILTER html %]'" + href="buglist.cgi?component= + [%- comp.name FILTER url_quote %]&product= + [%- product.name FILTER url_quote %]">[% comp.bug_count %]</a> +[% ELSE %] + None +[% END %] + </td> + </tr> + + </table> + + <input type="hidden" name="action" value="update"> + <input type="hidden" name="componentold" value="[% comp.name FILTER html %]"> + <input type="hidden" name="product" value="[% product.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" value="Save Changes" id="update"> or <a + href="editcomponents.cgi?action=del&product= + [%- product.name FILTER url_quote %]&component= + [%- comp.name FILTER url_quote %]">Delete</a> this component. + +</form> + +[% PROCESS admin/components/footer.html.tmpl + no_edit_component_link = 1 +%] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/footer.html.tmpl b/template/en/default/admin/components/footer.html.tmpl new file mode 100644 index 0000000..b2e105e --- /dev/null +++ b/template/en/default/admin/components/footer.html.tmpl @@ -0,0 +1,54 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + #%] + +[%# INTERFACE: + # comp: object; Bugzilla::Component object representing the component + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +<hr> + +<p> +Edit + +[% IF comp && !no_edit_component_link %] + component <a + title="Edit Component '[% comp.name FILTER html %]'" + href="editcomponents.cgi?action=edit&product= + [%- product.name FILTER url_quote %]&component=[% comp.name FILTER url_quote %]"> + '[% comp.name FILTER html %]'</a> + or edit +[% END %] + +[% IF !no_edit_other_components_link %] +other components of product <a + title="Choose a component from product '[% product.name FILTER html %]' to edit" + href="editcomponents.cgi?product= + [%- product.name FILTER url_quote %]">'[% product.name FILTER html %]'</a>, + or edit +[% END %] + +product <a + title="Edit Product '[% product.name FILTER html %]'" + href="editproducts.cgi?action=edit&product= + [%- product.name FILTER url_quote %]">'[% product.name FILTER html %]'</a>. + +</p> diff --git a/template/en/default/admin/components/list.html.tmpl b/template/en/default/admin/components/list.html.tmpl new file mode 100644 index 0000000..632d47e --- /dev/null +++ b/template/en/default/admin/components/list.html.tmpl @@ -0,0 +1,128 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # showbugcounts: if defined, then bug counts should be included in the table + # product: object; Bugzilla::Product object representing the product to + # which the component belongs. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Select component of product + '[% product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +[% edit_contentlink = BLOCK %]editcomponents.cgi?action=edit&product= + [%- product.name FILTER url_quote %]&component=%%name%%[% END %] +[% delete_contentlink = BLOCK %]editcomponents.cgi?action=del&product= + [%- product.name FILTER url_quote %]&component=%%name%%[% END %] +[% bug_count_contentlink = BLOCK %]buglist.cgi?component=%%name%%&product= + [%- product.name FILTER url_quote %][% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit component..." + contentlink => edit_contentlink + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + }, + { + name => "initialowner" + heading => "Default Assignee" + }, + ] +%] + +[% IF Param('useqacontact') %] + + [% columns.push({ + name => 'initialqacontact' + heading => 'QA Contact' + }) %] + +[% END %] + +[% IF showbugcounts %] + + [% columns.push({ + name => 'bug_count' + heading => "$terms.Bugs" + align => "right" + contentlink => bug_count_contentlink + }) %] + +[% END %] + +[% columns.push({ + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + }) %] + +[%# Overrides the initialowner and the initialqacontact with right values %] +[% overrides.initialowner = {} %] +[% overrides.initialqacontact = {} %] + +[%# "component" is a reserved word in Template Toolkit. %] +[% FOREACH my_component = product.components %] + [% overrides.initialowner.name.${my_component.name} = { + override_content => 1 + content => my_component.default_assignee.login + } + %] + [% overrides.initialqacontact.name.${my_component.name} = { + override_content => 1 + content => my_component.default_qa_contact.login + } + %] +[% END %] + +[% Hook.process('before_table') %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = product.components + overrides = overrides +%] + +<p><a href="editcomponents.cgi?action=add&product=[% product.name FILTER url_quote %]">Add</a> + a new component to product '[% product.name FILTER html %]'</p> + +[% IF ! showbugcounts %] + + <p><a href="editcomponents.cgi?product=[% product.name FILTER url_quote %]&showbugcounts=1"> + Redisplay table with [% terms.bug %] counts (slower)</a></p> + +[% END %] + +[% PROCESS admin/components/footer.html.tmpl + no_edit_other_components_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/components/select-product.html.tmpl b/template/en/default/admin/components/select-product.html.tmpl new file mode 100644 index 0000000..0910f98 --- /dev/null +++ b/template/en/default/admin/components/select-product.html.tmpl @@ -0,0 +1,70 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> + # + #%] + +[%# INTERFACE: + # products: array of product objects + # showbugcounts: if defined, then bug counts should be included in the table + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit components for which product?" +%] + +[% columns = [ + { + name => "name" + heading => "Edit components of..." + contentlink => "editcomponents.cgi?product=%%name%%" + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => 'bug_count' + heading => "$terms.Bugs" + align => "right" + contentlink => "buglist.cgi?product=%%name%%" + }) + %] + +[% END %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = products +%] + +[% IF !showbugcounts %] + <p><a href="editcomponents.cgi?showbugcounts=1"> + Redisplay table with [% terms.bug %] counts (slower)</a></p> +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/confirm-action.html.tmpl b/template/en/default/admin/confirm-action.html.tmpl new file mode 100644 index 0000000..521d2d1 --- /dev/null +++ b/template/en/default/admin/confirm-action.html.tmpl @@ -0,0 +1,98 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Frédéric Buclin. + # + # Contributor(s): Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # abuser: identity of the user who created the (invalid?) token. + # token_action: the action the token was supposed to serve. + # expected_action: the action the user was going to do. + # script_name: the script generating this warning. + # alternate_script: the suggested script to redirect the user to + # if he declines submission. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS global/header.html.tmpl title = "Suspicious Action" + style_urls = ['skins/standard/global.css'] %] + +[% IF abuser %] + <div class="throw_error"> + <p>When you view an administrative form in [% terms.Bugzilla %], a token string + is randomly generated and stored both in the database and in the form you loaded, + to make sure that the requested changes are being made as a result of submitting + a form generated by [% terms.Bugzilla %]. Unfortunately, the token used right now + is incorrect, meaning that it looks like you didn't come from the right page. + The following token has been used :</p> + + <table border="0" cellpadding="5" cellspacing="0"> + [% IF token_action != expected_action %] + <tr> + <th>Action stored:</th> + <td>[% token_action FILTER html %]</td> + </tr> + <tr> + <th> </th> + <td> + This action doesn't match the one expected ([% expected_action FILTER html %]). + </td> + </tr> + [% END %] + + [% IF abuser != user.identity %] + <tr> + <th>Generated by:</th> + <td>[% abuser FILTER html %]</td> + </tr> + <tr> + <th> </th> + <td> + This token has not been generated by you. It is possible that someone + tried to trick you! + </td> + </tr> + [% END %] + </table> + + <p>Please report this problem to [%+ Param("maintainer") FILTER html %].</p> + </div> +[% ELSE %] + <div class="throw_error"> + It looks like you didn't come from the right page (you have no valid token for + the <em>[% expected_action FILTER html %]</em> action while processing the + '[% script_name FILTER html%]' script). The reason could be one of:<br> + <ul> + <li>You clicked the "Back" button of your web browser after having successfully + submitted changes, which is generally not a good idea (but harmless).</li> + <li>You entered the URL in the address bar of your web browser directly, + which should be safe.</li> + <li>You clicked on a URL which redirected you here <b>without your consent</b>, + in which case this action is much more critical.</li> + </ul> + Are you sure you want to commit these changes anyway? This may result in + unexpected and undesired results. + </div> + + <form name="check" id="check" method="post" action="[% script_name FILTER html %]"> + [% PROCESS "global/hidden-fields.html.tmpl" + exclude="^(Bugzilla_login|Bugzilla_password)$" %] + <input type="submit" id="confirm" value="Confirm Changes"> + </form> + <p>Or throw away these changes and go back to <a href="[% alternate_script FILTER html %]"> + [%- alternate_script FILTER html %]</a>.</p> +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/custom_fields/cf-js.js.tmpl b/template/en/default/admin/custom_fields/cf-js.js.tmpl new file mode 100644 index 0000000..5ece96e --- /dev/null +++ b/template/en/default/admin/custom_fields/cf-js.js.tmpl @@ -0,0 +1,59 @@ +[%# 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. + # + # The Initial Developer of the Original Code is NASA. + # Portions created by NASA are Copyright (C) 2008 + # San Jose State University Foundation. All Rights Reserved. + # + # Contributor(s): Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +// Disable a checkbox based on the state of another one. +function toggleCheckbox(this_checkbox, other_checkbox_id) { + var other_checkbox = document.getElementById(other_checkbox_id); + other_checkbox.disabled = !this_checkbox.checked; +} + +var select_values = new Array(); +[% USE Bugzilla %] +[% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + select_values[[% sel_field.id FILTER js %]] = [ + [% FOREACH legal_value = sel_field.legal_values %] + [[% legal_value.id FILTER js %], '[% display_value(sel_field.name, legal_value.name) FILTER js %]'][% ',' UNLESS loop.last %] + [% END %] + ]; +[% END %] + +function onChangeType(type_field) { + var value_field = document.getElementById('value_field_id'); + if (type_field.value == [% constants.FIELD_TYPE_SINGLE_SELECT %] + || type_field.value == [% constants.FIELD_TYPE_MULTI_SELECT %]) + { + value_field.disabled = false; + } + else { + value_field.disabled = true; + } +} + +function onChangeVisibilityField() { + var vis_field = document.getElementById('visibility_field_id'); + var vis_value = document.getElementById('visibility_value_id'); + + if (vis_field.value) { + var values = select_values[vis_field.value]; + bz_populateSelectFromArray(vis_value, values); + } + else { + bz_clearOptions(vis_value); + } +} diff --git a/template/en/default/admin/custom_fields/confirm-delete.html.tmpl b/template/en/default/admin/custom_fields/confirm-delete.html.tmpl new file mode 100644 index 0000000..c936836 --- /dev/null +++ b/template/en/default/admin/custom_fields/confirm-delete.html.tmpl @@ -0,0 +1,66 @@ +[%# 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): Alexander Eiser <alexe@ed.ca> + #%] + +[%# INTERFACE: + # field: object; the field object that you are trying to delete. + # token: string; the delete_field token required to complete deletion. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = BLOCK %] + Delete the Custom Field '[% field.name FILTER html %]' ([% field.description FILTER html %]) +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + doc_section = "custom-fields.html#delete-custom-fields" +%] + +<table border="1" cellpadding="4" cellspacing="0"> +<tr bgcolor="#6666FF"> + <th valign="top" align="left">Field</th> + <th valign="top" align="left">Value</th> +</tr> +<tr> + <td valign="top">Custom Field:</td> + <td valign="top">[% field.name FILTER html %]</td> +</tr> +<tr> + <td valign="top">Description:</td> + <td valign="top">[% field.description FILTER html %]</td> +</tr> +<tr> + <td valign="top">Type:</td> + <td valign="top">[% field_types.${field.type} FILTER html %]</td> +</tr> +</table> + +<h2>Confirmation</h2> + +<p> + Are you sure you want to remove this field from the database?<br> + <em>This action will only be successful if the field is obsolete, + and has never been used in [% terms.abug FILTER html %].</em> +</p> + +<a href="editfields.cgi?action=delete&name=[% field.name FILTER html %]&token=[% token FILTER html %]"> + Delete field '[% field.description FILTER html %]'</a> + +<p> + <a href="editfields.cgi">Back to the list of existing custom fields</a> +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/custom_fields/create.html.tmpl b/template/en/default/admin/custom_fields/create.html.tmpl new file mode 100644 index 0000000..a2db470 --- /dev/null +++ b/template/en/default/admin/custom_fields/create.html.tmpl @@ -0,0 +1,149 @@ +[%# 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): Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # none + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% javascript = BLOCK %] + [% INCLUDE "admin/custom_fields/cf-js.js.tmpl" %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Add a new Custom Field" + onload = "document.getElementById('new_bugmail').disabled = true;" + javascript_urls = [ 'js/util.js' ] + doc_section = "custom-fields.html#add-custom-fields" +%] + +<p> + Adding custom fields can make the interface of [% terms.Bugzilla %] very + complicated. Many admins who are new to [% terms.Bugzilla %] start off + adding many custom fields, and then their users complain that the interface + is "too complex". Please think carefully before adding any custom fields. + It may be the case that [% terms.Bugzilla %] already does what you need, + and you just haven't enabled the correct feature yet. +</p> + +<ul> + <li>Custom field names must begin with "cf_" to distinguish them from + standard fields. If you omit "cf_" from the beginning of the name, it + will be added for you.</li> + <li>Descriptions are a very short string describing the field and will be + used as the label for this field in the user interface.</li> +</ul> + +<form id="add_field" action="editfields.cgi" method="GET"> + <table border="0" cellspacing="0" cellpadding="5"> + <tr> + <th align="right"><label for="name">Name:</label></th> + <td> + <input type="text" id="name" name="name" value="cf_" size="40" maxlength="64"> + </td> + + <th align="right"> + <label for="enter_bug">Can be set on [% terms.bug %] creation:</label> + </th> + <td> + <input type="checkbox" id="enter_bug" name="enter_bug" value="1" + onchange="toggleCheckbox(this, 'new_bugmail');"> + </td> + </tr> + <tr> + <th align="right"><label for="desc">Description:</label></th> + <td><input type="text" id="desc" name="desc" value="" size="40"></td> + + <th align="right"> + <label for="new_bugmail">Displayed in [% terms.bug %]mail for new [% terms.bugs %]:</label> + </th> + <td><input type="checkbox" id="new_bugmail" name="new_bugmail" value="1"></td> + </tr> + <tr> + <th align="right"><label for="type">Type:</label></th> + <td> + <select id="type" name="type" onchange="onChangeType(this)"> + [% FOREACH type = field_types.keys %] + [% NEXT IF type == constants.FIELD_TYPE_UNKNOWN %] + <option value="[% type FILTER html %]">[% field_types.$type FILTER html %]</option> + [% END %] + </select> + </td> + + <th align="right"><label for="obsolete">Is obsolete:</label></th> + <td><input type="checkbox" id="obsolete" name="obsolete" value="1"></td> + </tr> + <tr> + <th align="right"><label for="sortkey">Sortkey:</label></th> + <td> + <input type="text" id="sortkey" name="sortkey" size="6" maxlength="6"> + </td> + + <th align="right"> + <label for="visibility_field_id">Field only appears when:</label> + </th> + <td> + <select name="visibility_field_id" id="visibility_field_id" + onchange="onChangeVisibilityField()"> + <option></option> + [% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + <option value="[% sel_field.id FILTER html %]"> + [% sel_field.description FILTER html %] + ([% sel_field.name FILTER html %]) + </option> + [% END %] + </select> + <label for="visibility_value_id"><strong>is set to:</strong></label> + <select name="visibility_value_id" id="visibility_value_id"> + <option value=""></option> + </select> + </td> + </tr> + + <tr> + <td colspan="2"> </td> + <th> + <label for="value_field_id"> + Field that controls the values<br> + that appear in this field: + </label> + </th> + + <td> + <select disabled="disabled" name="value_field_id" id="value_field_id"> + <option></option> + [% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + <option value="[% sel_field.id FILTER html %]"> + [% sel_field.description FILTER html %] + ([% sel_field.name FILTER html %]) + </option> + [% END %] + </select> + </td> + </tr> + </table> + <p> + <input type="hidden" name="action" value="new"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" id="create" value="Create"> + </p> +</form> + +<p> + <a href="editfields.cgi">Back to the list of existing custom fields</a> +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/custom_fields/edit.html.tmpl b/template/en/default/admin/custom_fields/edit.html.tmpl new file mode 100644 index 0000000..c5ac53d --- /dev/null +++ b/template/en/default/admin/custom_fields/edit.html.tmpl @@ -0,0 +1,161 @@ +[%# 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): Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # field: Bugzila::Field; the current field being edited + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = BLOCK %] + Edit the Custom Field '[% field.name FILTER html %]' ([% field.description FILTER html %]) +[% END %] + +[% javascript = BLOCK %] + [% INCLUDE "admin/custom_fields/cf-js.js.tmpl" %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + onload = "toggleCheckbox(document.getElementById('enter_bug'), 'new_bugmail');" + javascript_urls = [ 'js/util.js' ] + doc_section = "custom-fields.html#edit-custom-fields" +%] + +<p> + Descriptions are a very short string describing the field and will be used as + the label for this field in the user interface. +</p> + +<form id="edit_field" action="editfields.cgi" method="GET"> + <table border="0" cellspacing="0" cellpadding="5"> + <tr> + <th align="right">Name:</th> + <td>[% field.name FILTER html %]</td> + + <th align="right"> + <label for="enter_bug">Can be set on [% terms.bug %] creation:</label> + </th> + <td><input type="checkbox" id="enter_bug" name="enter_bug" value="1" + [%- " checked" IF field.enter_bug %] + onchange="toggleCheckbox(this, 'new_bugmail');"></td> + </tr> + <tr> + <th align="right"><label for="desc">Description:</label></th> + <td><input type="text" id="desc" name="desc" size="40" + value="[% field.description FILTER html %]"></td> + + <th align="right"> + <label for="new_bugmail">Displayed in [% terms.bug %]mail for new [% terms.bugs %]:</label> + </th> + <td><input type="checkbox" id="new_bugmail" name="new_bugmail" value="1" + [%- " checked" IF field.mailhead %]></td> + </tr> + <tr> + <th align="right">Type:</th> + <td>[% field_types.${field.type} FILTER html %]</td> + + <th align="right"><label for="obsolete">Is obsolete:</label></th> + <td><input type="checkbox" id="obsolete" name="obsolete" value="1" + [%- " checked" IF field.obsolete %]></td> + </tr> + <tr> + <th align="right"><label for="sortkey">Sortkey:</label></th> + <td> + <input type="text" id="sortkey" name="sortkey" size="6" maxlength="6" + value="[% field.sortkey FILTER html %]"> + </td> + <th align="right"> + <label for="visibility_field_id">Field only appears when:</label> + </th> + <td> + <select name="visibility_field_id" id="visibility_field_id" + onchange="onChangeVisibilityField()"> + <option></option> + [% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + [% NEXT IF sel_field.id == field.id %] + <option value="[% sel_field.id FILTER html %]" + [% ' selected="selected"' + IF sel_field.id == field.visibility_field.id %]> + [% sel_field.description FILTER html %] + ([% sel_field.name FILTER html %]) + </option> + [% END %] + </select> + <label for="visibility_value_id"><strong>is set to:</strong></label> + <select name="visibility_value_id" id="visibility_value_id"> + [% FOREACH value = field.visibility_field.legal_values %] + <option value="[% value.id FILTER html %]" + [% ' selected="selected"' + IF field.visibility_value.id == value.id %]> + [% display_value(field.visibility_field.name, value.name) FILTER html %] + </option> + [% END %] + </select> + </td> + </tr> + [% IF field.is_select %] + <tr> + <th> </th> + <td> + <a href="editvalues.cgi?field=[% field.name FILTER url_quote %]">Edit + legal values for this field</a>. + </td> + + <th> + <label for="value_field_id"> + Field that controls the values<br> + that appear in this field: + </label> + </th> + + <td> + <select name="value_field_id" id="value_field_id"> + <option></option> + [% FOREACH sel_field = Bugzilla.get_fields({ is_select => 1 }) %] + [% NEXT IF sel_field.id == field.id %] + <option value="[% sel_field.id FILTER html %]" + [% ' selected="selected"' + IF sel_field.id == field.value_field.id %]> + [% sel_field.description FILTER html %] + ([% sel_field.name FILTER html %]) + </option> + [% END %] + </select> + </td> + </tr> + [% END %] + </table> + <br> + <input type="hidden" name="action" value="update"> + <input type="hidden" name="name" value="[% field.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" id="edit" value="Submit"> +</form> + +[% IF field.obsolete %] +<p> + <a href="editfields.cgi?action=del&name=[% field.name FILTER html %]">Remove + this custom field from the database.</a><br> + This action will only be successful if the custom field has never been used + in [% terms.abug %].<br> +</p> +[% END %] + +<p> + <a href="editfields.cgi">Back to the list of existing custom fields</a> +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/custom_fields/list.html.tmpl b/template/en/default/admin/custom_fields/list.html.tmpl new file mode 100644 index 0000000..dd266c7 --- /dev/null +++ b/template/en/default/admin/custom_fields/list.html.tmpl @@ -0,0 +1,102 @@ +[%# 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): Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # custom_fields: a list of Bugzilla::Field objects, representing custom fields. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS global/header.html.tmpl + title = "Custom Fields" + doc_section = "custom-fields.html" +%] + +[% delete_contentlink = BLOCK %]editfields.cgi?action=del&name=%%name%%[% END %] + +[% columns = [ + { + name => "name" + heading => "Edit custom field..." + contentlink => "editfields.cgi?action=edit&name=%%name%%" + }, + { + name => "description" + heading => "Description" + }, + { + name => "sortkey" + heading => "Sortkey" + }, + { + name => "type" + heading => "Type" + }, + { + name => "enter_bug" + heading => "Editable on $terms.Bug Creation" + }, + { + name => "mailhead" + heading => "In ${terms.Bug}mail on $terms.Bug Creation" + }, + { + name => "obsolete" + heading => "Is Obsolete" + }, + { + name => "action" + heading => "Action" + content => "" + } + ] +%] + +[% USE Bugzilla %] +[% custom_fields = Bugzilla.get_fields({ custom => 1 }) %] + +[%# We want to display the type name of fields, not their type ID. %] +[% overrides.type = {} %] + +[% FOREACH field_type = field_types.keys %] + [% overrides.type.type.$field_type = { + override_content => 1 + content => field_types.$field_type + } + %] +[% END %] + + +[% overrides.action.obsolete = { + "1" => { + override_content => 1 + content => "Delete" + override_contentlink => 1 + contentlink => delete_contentlink + } + } +%] + +[% PROCESS admin/table.html.tmpl + columns = columns + overrides = overrides + data = custom_fields +%] + +<p> + <a href="editfields.cgi?action=add">Add a new custom field</a> +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl b/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl new file mode 100644 index 0000000..2ea7c2f --- /dev/null +++ b/template/en/default/admin/fieldvalues/confirm-delete.html.tmpl @@ -0,0 +1,161 @@ +[%# 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): Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # value: Bugzilla::Field::Choice; The field value being deleted. + # value_count: number; The number of values available for this field. + # field: object; the field the value is being deleted from. + #%] + +[% title = BLOCK %] + Delete Value '[% value.name FILTER html %]' from the + '[% field.description FILTER html %]' ([% field.name FILTER html %]) field +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] +%] + +<table border="1" cellpadding="4" cellspacing="0"> +<tr bgcolor="#6666FF"> + <th valign="top" align="left">Field</th> + <th valign="top" align="left">Value</th> +</tr> +<tr> + <td valign="top">Field Name:</td> + <td valign="top">[% field.description FILTER html %]</td> +</tr> +<tr> + <td valign="top">Field Value:</td> + <td valign="top">[% value.name FILTER html %]</td> +</tr> +<tr> + <td valign="top">[% terms.Bugs %]:</td> + <td valign="top"> +[% IF value.bug_count %] + <a title="List of [% terms.bugs %] where ' + [%- field.description FILTER html %]' is ' + [%- value.name FILTER html %]'" + href="buglist.cgi?[% field.name FILTER url_quote %]= + [%- value.name FILTER url_quote %]"> + [%- value.bug_count FILTER html %]</a> +[% ELSE %] + None +[% END %] + </td> +</tr> +</table> + +<h2>Confirmation</h2> + +[% IF value.is_default || value.bug_count || (value_count == 1) + || value.controls_visibility_of_fields.size + || value.controlled_values_array.size +%] + + <p>Sorry, but the '[% value.name FILTER html %]' value cannot be deleted + from the '[% field.description FILTER html %]' field for the following + reason(s):</p> + + <ul class="warningmessages"> + [% IF value.is_default %] + <li>'[% value.name FILTER html %]' is the default value for + the '[% field.description FILTER html %]' field. + [% IF user.in_group('tweakparams') %] + You first have to <a href="editparams.cgi?section=bugfields">change + the default value</a> for this field before you can delete + this value. + [% END %] + </li> + [% END %] + + [% IF value.bug_count %] + <li> + [% IF value.bug_count > 1 %] + There are [% value.bug_count FILTER html %] [%+ terms.bugs %] + with this field value. + [% ELSE %] + There is 1 [% terms.bug %] with this field value. + [% END %] + You must change the field value on + <a title="List of [% terms.bugs %] where ' + [%- field.description FILTER html %]' is ' + [%- value.name FILTER html %]'" + href="buglist.cgi?[% field.name FILTER url_quote %]= + [%- value.name FILTER url_quote %]"> + [% IF value.bug_count > 1 %] + those [% terms.bugs %] + [% ELSE %] + that [% terms.bug %] + [% END %] + </a> + to another value before you can delete this value. + </li> + [% END %] + + [% IF value_count == 1 %] + <li>'[% value.name FILTER html %]' is the last value for + '[%- field.description FILTER html %]', and so it can not be deleted. + </li> + [% END %] + + [% IF value.controls_visibility_of_fields.size %] + <li>This value controls the visibility of the following fields:<br> + [% FOREACH field = value.controls_visibility_of_fields %] + <a href="editfields.cgi?action=edit&name= + [%- field.name FILTER url_quote %]"> + [%- field.description FILTER html %] + ([% field.name FILTER html %])</a><br> + [% END %] + </li> + [% END %] + + [% IF value.controlled_values_array.size %] + <li>This value controls the visibility of the following values in + other fields:<br> + [% FOREACH field_name = value.controlled_values.keys %] + [% FOREACH controlled = value.controlled_values.${field_name} %] + <a href="editvalues.cgi?action=edit&field= + [%- controlled.field.name FILTER url_quote %]&value= + [%- controlled.name FILTER url_quote %]"> + [% controlled.field.description FILTER html %] + ([% controlled.field.name FILTER html %]): + [%+ controlled.name FILTER html %]</a><br> + [% END %] + [% END %] + </li> + [% END %] + </ul> + +[% ELSE %] + + <p>Do you really want to delete this value?</p> + + <form method="post" action="editvalues.cgi"> + <input type="submit" value="Yes, delete" id="delete"> + <input type="hidden" name="action" value="delete"> + <input type="hidden" name="field" value="[% field.name FILTER html %]"> + <input type="hidden" name="value" value="[% value.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + </form> + +[% END %] + +[% PROCESS admin/fieldvalues/footer.html.tmpl + no_edit_link = 1 + +%] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/create.html.tmpl b/template/en/default/admin/fieldvalues/create.html.tmpl new file mode 100644 index 0000000..f1eec1a --- /dev/null +++ b/template/en/default/admin/fieldvalues/create.html.tmpl @@ -0,0 +1,97 @@ +[%# 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): Max Kanat-Alexander <mkanat@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # field: object; the field the value is being created for + #%] + +[% title = BLOCK %] + Add Value for the '[% field.description FILTER html %]' ([% field.name FILTER html %]) field +[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +<p> + This page allows you to add a new value for the + '[% field.description FILTER html %]' field. +</p> + +<form method="post" action="editvalues.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + <tr> + <th align="right"><label for="value">Value:</label></th> + <td> + <input id="value" name="value" size="30" + maxlength="[% constants.MAX_FIELD_VALUE_SIZE FILTER none %]"> + </td> + </tr> + <tr> + <th align="right"><label for="sortkey">Sortkey:</label></th> + <td><input id="sortkey" name="sortkey" size="6" maxlength="6"></td> + </tr> + [% IF field.name == "bug_status" %] + <tr> + <th align="right"><label for="is_open">Status Type:</label></th> + <td> + <input type="radio" id="open_status" name="is_open" value="1" + checked="checked"> + <label for="open_status">Open</label><br> + <input type="radio" id="closed_status" name="is_open" value="0"> + <label for="closed_status">Closed (requires a Resolution)</label> + </td> + </tr> + <tr> + <th> </th> + <td> + Note: The open/close attribute can only be set now, when you create + the status. It cannot be edited later. + </td> + </tr> + [% END %] + [% IF field.value_field %] + <tr> + <th align="right"> + <label for="visibility_value_id">Only appears when + [%+ field.value_field.description FILTER html %] is set to: + </label> + </th> + <td> + <select name="visibility_value_id" id="visibility_value_id"> + <option></option> + [% FOREACH field_value = field.value_field.legal_values %] + [% NEXT IF field_value.name == '' %] + <option value="[% field_value.id FILTER none %]"> + [%- field_value.name FILTER html -%] + </option> + [% END %] + </select> + <small>(Leave unset to have this value always appear.)</small> + </td> + </tr> + [% END %] + </table> + <input type="submit" id="create" value="Add"> + <input type="hidden" name="action" value="new"> + <input type="hidden" name='field' value="[% field.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +[% PROCESS admin/fieldvalues/footer.html.tmpl + no_add_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/edit.html.tmpl b/template/en/default/admin/fieldvalues/edit.html.tmpl new file mode 100644 index 0000000..5650ee8 --- /dev/null +++ b/template/en/default/admin/fieldvalues/edit.html.tmpl @@ -0,0 +1,107 @@ +[%# 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): Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # value: Bugzilla::Field::Choice; The field value we are editing. + # field: Bugzilla::Field; The field this value belongs to. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Edit Value '[% value.name FILTER html %]' for the + '[% field.description FILTER html %]' ([% field.name FILTER html %]) field +[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +<form method="post" action="editvalues.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + + <tr> + <th valign="top" align="right"> + <label for="value_new">Field Value:</label> + </th> + <td> + [% IF value.is_static %] + <input type="hidden" name="value_new" id="value_new" + value="[% value.name FILTER html %]"> + [%- value.name FILTER html %] + [% ELSE %] + <input id="value_new" name="value_new" size="20" + maxlength="[% constants.MAX_FIELD_VALUE_SIZE FILTER none %]" + value="[% value.name FILTER html %]"> + [% END %] + </td> + </tr> + <tr> + <th align="right"><label for="sortkey">Sortkey:</label></th> + <td><input id="sortkey" size="6" maxlength="6" name="sortkey" + value="[%- value.sortkey FILTER html %]"></td> + </tr> + [% IF field.name == "bug_status" %] + <tr> + <th align="right"><label for="is_open">Status Type:</label></th> + <td>[% IF value.is_open %]Open[% ELSE %]Closed[% END %]</td> + </tr> + [% END %] + [% IF field.value_field %] + <tr> + <th align="right"> + <label for="visibility_value_id">Only appears when + [%+ field.value_field.description FILTER html %] is set to: + </label> + </th> + <td> + <select name="visibility_value_id" id="visibility_value_id"> + <option></option> + [% FOREACH field_value = field.value_field.legal_values %] + [% NEXT IF field_value.name == '' %] + <option value="[% field_value.id FILTER none %]" + [% ' selected="selected"' + IF field_value.id == value.visibility_value.id %]> + [%- field_value.name FILTER html -%] + </option> + [% END %] + </select> + <small>(Leave unset to have this value always appear.)</small> + </td> + </tr> + [% END %] + <tr> + <th align="right"><label for="is_active">Enabled for [% terms.bugs %]:</label></th> + <td><input id="is_active" name="is_active" type="checkbox" value="1" + [%+ 'checked="checked"' IF value.is_active %] + [%+ 'disabled="disabled"' IF value.is_default OR value.is_static %]> + [% IF value.is_default %] + This value is selected as default in the parameters for this field. It cannot be disabled. + [% ELSIF value.is_static %] + This value is non-deletable and cannot be disabled. + [% END %] + </td> + </tr> + </table> + <input type="hidden" name="value" value="[% value.name FILTER html %]"> + <input type="hidden" name="action" value="update"> + <input type="hidden" name="field" value="[% field.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" id="update" value="Save Changes"> +</form> + +[% PROCESS admin/fieldvalues/footer.html.tmpl + no_edit_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/footer.html.tmpl b/template/en/default/admin/fieldvalues/footer.html.tmpl new file mode 100644 index 0000000..288612d --- /dev/null +++ b/template/en/default/admin/fieldvalues/footer.html.tmpl @@ -0,0 +1,55 @@ +[%# 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): Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # value: string; the value being inserted/edited. + # field: object; the field which the value belongs/belonged to. + # + # no_XXX_link: boolean; if defined, then don't show the corresponding + # link. Supported parameters are: + # + # no_edit_link + # no_edit_other_link + # no_add_link + #%] + +<hr> + +<p> + +[% UNLESS no_add_link %] + <a title="Add a value for the '[% field.description FILTER html %]' field." + href="editvalues.cgi?action=add&field= + [%- field.name FILTER url_quote %]">Add</a> a value. +[% END %] + +[% IF value.defined && !no_edit_link %] + Edit value <a + title="Edit value '[% value.name FILTER html %]' for the ' + [%- field.name FILTER html %]' field" + href="editvalues.cgi?action=edit&field= + [%- field.name FILTER url_quote %]&value= + [%- value.name FILTER url_quote %]"> + '[% value.name FILTER html %]'</a>. +[% END %] + +[% UNLESS no_edit_other_link %] + Edit other values for the <a + href="editvalues.cgi?field= + [%- field.name FILTER url_quote %]">'[% field.description FILTER html %]'</a> field. + +[% END %] + +</p> diff --git a/template/en/default/admin/fieldvalues/list.html.tmpl b/template/en/default/admin/fieldvalues/list.html.tmpl new file mode 100644 index 0000000..3f750eb --- /dev/null +++ b/template/en/default/admin/fieldvalues/list.html.tmpl @@ -0,0 +1,99 @@ +[%# 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): Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # values: array of hashes having the following properties: + # - name: string; The value. + # - sortkey: number; The sortkey used to order the value when + # displayed to the user in a list. + # + # field: object; the field we are editing values for. + # static: array; list of values which cannot be renamed nor deleted. + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Select value for the '[% field.description FILTER html %]' + ([% field.name FILTER html %]) field[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +[% edit_contentlink = BLOCK %]editvalues.cgi?action=edit&field= + [%- field.name FILTER url_quote %]&value=%%name%%[% END %] +[% delete_contentlink = BLOCK %]editvalues.cgi?action=del&field= + [%- field.name FILTER url_quote %]&value=%%name%%[% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit field value..." + contentlink => edit_contentlink + }, + { + name => "sortkey" + heading => "Sortkey" + }, + { + name => "isactive" + heading => "Enabled for $terms.bugs" + yesno_field => 1 + }, + { + name => "action" + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + } ] +%] + + +[% SET overrides.action = {} %] +[% FOREACH check_value = values %] + [% IF check_value.is_static %] + [% overrides.action.name.${check_value.name} = { + override_content => 1 + content => "(Non-deletable value)" + override_contentlink => 1 + contentlink => undef + } + %] + [% ELSIF check_value.is_default %] + [% overrides.action.name.${check_value.name} = { + override_content => 1 + content => "(Default value)" + override_contentlink => 1 + contentlink => undef + } + %] + [% END %] + +[% END %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = values + overrides = overrides +%] + +[% PROCESS admin/fieldvalues/footer.html.tmpl + no_edit_other_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/fieldvalues/select-field.html.tmpl b/template/en/default/admin/fieldvalues/select-field.html.tmpl new file mode 100644 index 0000000..3704d42 --- /dev/null +++ b/template/en/default/admin/fieldvalues/select-field.html.tmpl @@ -0,0 +1,47 @@ +[%# 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): Max Kanat-Alexander <mkanat@bugzilla.org> + # + #%] + +[%# INTERFACE: + # fields: Array of hashes. Each hash contains only one key, "name." + # The names are the same as the keys from field_descs + # (see global/field-descs.html.tmpl). + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit values for which field?" +%] + +[% columns = [ + { + name => "name" + heading => "Edit field values for..." + content_use_field = 1 + contentlink => "editvalues.cgi?field=%%name%%" + } + ] +%] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = fields +%] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/flag-type/confirm-delete.html.tmpl b/template/en/default/admin/flag-type/confirm-delete.html.tmpl new file mode 100644 index 0000000..ed90941 --- /dev/null +++ b/template/en/default/admin/flag-type/confirm-delete.html.tmpl @@ -0,0 +1,63 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez <myk@mozilla.org> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Confirm Deletion of Flag Type '[% flag_type.name FILTER html %]'[% END %] + +[% PROCESS global/header.html.tmpl + title = title + doc_section = "flags-overview.html#flags-delete" +%] + +<p> + [% IF flag_type.flag_count %] + There are [% flag_type.flag_count %] flags of type [% flag_type.name FILTER html %]. + If you delete this type, those flags will also be deleted. + [% END %] + + Note that instead of deleting the type you can + <a href="editflagtypes.cgi?action=deactivate&id=[% flag_type.id %]&token= + [%- token FILTER html %]">deactivate it</a>, + in which case the type [% IF flag_type.flag_count %] and its flags [% END %] will remain + in the database but will not appear in the [% terms.Bugzilla %] UI. +</p> + +<table> + <tr> + <td colspan="2"> + Do you really want to delete this type? + </td> + </tr> + <tr> + <td> + <a href="editflagtypes.cgi?action=delete&id=[% flag_type.id %]&token= + [%- token FILTER html %]">Yes, delete + </a> + </td> + <td align="right"> + <a href="editflagtypes.cgi"> + No, don't delete + </a> + </td> + </tr> +</table> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/flag-type/edit.html.tmpl b/template/en/default/admin/flag-type/edit.html.tmpl new file mode 100644 index 0000000..ebebf50 --- /dev/null +++ b/template/en/default/admin/flag-type/edit.html.tmpl @@ -0,0 +1,253 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez <myk@mozilla.org> + # Mark Bickford <markhb@maine.rr.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "global/js-products.html.tmpl" %] + +[% IF type.target_type == "bug" %] + [% title = BLOCK %]Create Flag Type for [% terms.Bugs %][% END %] + [% typeLabelLowerPlural = BLOCK %][% terms.bugs %][% END %] + [% typeLabelLowerSingular = BLOCK %][% terms.bug %][% END %] +[% ELSE %] + [% title = "Create Flag Type for Attachments" %] + [% typeLabelLowerPlural = BLOCK %]attachments[% END %] + [% typeLabelLowerSingular = BLOCK %]attachment[% END %] +[% END %] + +[% doc_section = "flags-overview.html#flags-create" %] +[% IF last_action == "copy" %] + [% title = BLOCK %]Create Flag Type Based on [% type.name FILTER html %][% END %] +[% ELSIF last_action == "edit" %] + [% title = BLOCK %]Edit Flag Type [% type.name FILTER html %][% END %] + [% doc_section = "flags-overview.html#flags-edit" %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style = " + table#form th { text-align: right; vertical-align: baseline; white-space: nowrap; } + table#form td { text-align: left; vertical-align: baseline; } + " + onload="var f = document.forms[0]; selectProduct(f.product, f.component, null, null, '__Any__');" + javascript_urls=["js/productform.js"] + doc_section = doc_section +%] + +<form method="post" action="editflagtypes.cgi"> + <input type="hidden" name="action" value="[% action %]"> + <input type="hidden" name="id" value="[% type.id %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="hidden" name="target_type" value="[% type.target_type %]"> + [% FOREACH category = type.inclusions %] + <input type="hidden" name="inclusions" value="[% category.value FILTER html %]"> + [% END %] + [% FOREACH category = type.exclusions %] + <input type="hidden" name="exclusions" value="[% category.value FILTER html %]"> + [% END %] + + [%# Add a hidden button at the top of the form so that the user pressing "return" + # really submit the form, as expected. %] + <input type="submit" id="commit" value="Submit" style="display: none;"> + + <table id="form" cellspacing="0" cellpadding="4" border="0"> + <tr> + <th>Name:</th> + <td> + a short name identifying this type<br> + <input type="text" name="name" value="[% type.name FILTER html %]" + size="50" maxlength="50"> + </td> + </tr> + + <tr> + <th>Description:</th> + <td> + a comprehensive description of this type<br> + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 80 + defaultcontent = type.description + %] + </td> + </tr> + + <tr> + <th>Category:</th> + + <td> + the products/components to which [% typeLabelLowerPlural %] must + (inclusions) or must not (exclusions) belong in order for users + to be able to set flags of this type for them + <table> + <tr> + <td style="vertical-align: top;"> + <b>Product/Component:</b><br> + <select name="product" onchange="selectProduct(this, this.form.component, null, null, '__Any__');"> + <option value="">__Any__</option> + [% FOREACH prod = products %] + <option value="[% prod.name FILTER html %]" + [% "selected" IF type.product.name == prod.name %]> + [% prod.name FILTER html %]</option> + [% END %] + </select><br> + <select name="component"> + <option value="">__Any__</option> + [% FOREACH comp = components %] + <option value="[% comp FILTER html %]" + [% "selected" IF type.component.name == comp %]> + [% comp FILTER html %]</option> + [% END %] + </select><br> + <input type="submit" name="categoryAction-include" value="Include"> + <input type="submit" name="categoryAction-exclude" value="Exclude"> + </td> + <td style="vertical-align: top;"> + <b>Inclusions:</b><br> + [% PROCESS "global/select-menu.html.tmpl" name="inclusion_to_remove" multiple="1" size="7" options=type.inclusions %]<br> + <input type="submit" name="categoryAction-removeInclusion" value="Remove Inclusion"> + </td> + <td style="vertical-align: top;"> + <b>Exclusions:</b><br> + [% PROCESS "global/select-menu.html.tmpl" name="exclusion_to_remove" multiple="1" size="7" options=type.exclusions %]<br> + <input type="submit" name="categoryAction-removeExclusion" value="Remove Exclusion"> + </td> + </tr> + </table> + </td> + </tr> + + <tr> + <th>Sort Key:</th> + <td> + a number between 1 and 32767 by which this type will be sorted + when displayed to users in a list; ignore if you don't care + what order the types appear in or if you want them to appear + in alphabetical order<br> + <input type="text" name="sortkey" value="[% type.sortkey || 1 %]" size="5" maxlength="5"> + </td> + </tr> + + <tr> + <th> </th> + <td> + <input type="checkbox" id="is_active" name="is_active" + [% " checked" IF type.is_active || !type.is_active.defined %]> + <label for="is_active">active (flags of this type appear in the UI and can be set)</label> + </td> + </tr> + + <tr> + <th> </th> + <td> + <input type="checkbox" id="is_requestable" name="is_requestable" + [% " checked" IF type.is_requestable || !type.is_requestable.defined %]> + <label for="is_requestable">requestable (users can ask for flags of this type to be set)</label> + </td> + </tr> + + <tr> + <th>CC List:</th> + <td> + if requestable, who should get carbon copied on email notification of requests. + This is a comma-separated list of full e-mail addresses which do not + need to be [% terms.Bugzilla %] logins. + [% IF Param('emailsuffix') %] + Note that the configured emailsuffix + <kbd>[% Param('emailsuffix') %]</kbd> will <em>not</em> be appended + to these addresses, so you should add it explicitly if so desired. + [% END %]<br> + <input type="text" name="cc_list" value="[% type.cc_list FILTER html %]" size="80" maxlength="200"> + </td> + </tr> + + <tr> + <th> </th> + <td> + <input type="checkbox" id="is_requesteeble" name="is_requesteeble" + [% " checked" IF type.is_requesteeble || !type.is_requesteeble.defined %]> + <label for="is_requesteeble">specifically requestable (users can ask specific other users + to set flags of this type as opposed to just asking the wind)</label> + </td> + </tr> + + <tr> + <th> </th> + <td> + <input type="checkbox" id="is_multiplicable" name="is_multiplicable" + [% " checked" IF type.is_multiplicable || !type.is_multiplicable.defined %]> + <label for="is_multiplicable">multiplicable (multiple flags of this type can be set on + the same [% typeLabelLowerSingular %])</label> + </td> + </tr> + + <tr> + <th>Grant Group:</th> + <td> + the group allowed to grant/deny flags of this type + (to allow all users to grant/deny these flags, select no group)<br> + [% PROCESS select selname = "grant_group" %] + </td> + </tr> + + <tr> + <th>Request Group:</th> + <td> + if flags of this type are requestable, the group allowed to request them + (to allow all users to request these flags, select no group)<br> + Note that the request group alone has no effect if the grant group is not defined!<br> + [% PROCESS select selname = "request_group" %] + </td> + </tr> + + <tr> + <th></th> + <td> + <input type="submit" id="save" value=" + [%- IF (last_action == "enter" || last_action == "copy") %]Create + [%- ELSE %]Save Changes + [%- END %]"> + </td> + </tr> + + </table> + +</form> + +[% PROCESS global/footer.html.tmpl %] + + +[%############################################################################%] +[%# Block for SELECT fields #%] +[%############################################################################%] + +[% BLOCK select %] + <select name="[% selname %]" id="[% selname %]"> + <option value="">(no group)</option> + [% FOREACH group = groups %] + <option value="[% group.name FILTER html %]" + [% " selected" IF (type.${selname} && type.${selname}.name == group.name) %]> + [%- group.name FILTER html %] + </option> + [% END %] + </select> +[% END %] diff --git a/template/en/default/admin/flag-type/list.html.tmpl b/template/en/default/admin/flag-type/list.html.tmpl new file mode 100644 index 0000000..220db89 --- /dev/null +++ b/template/en/default/admin/flag-type/list.html.tmpl @@ -0,0 +1,174 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Myk Melez <myk@mozilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "global/js-products.html.tmpl" %] + +[% PROCESS global/header.html.tmpl + title = 'Administer Flag Types' + style = " + table#flag_types_bugs tr th, + table#flag_types_attachments tr th { text-align: left; } + .inactive { color: #787878; } + .multiplicable { display: block; } + " + onload="var f = document.flagtype_form; selectProduct(f.product, f.component, null, null, '__All__');" + javascript_urls=["js/productform.js"] + doc_section = "flags-overview.html#flag-types" +%] + +<p> + Flags are markers that identify whether [% terms.abug %] or attachment has been granted + or denied some status. Flags appear in the UI as a name and a status symbol + ("+" for granted, "-" for denied, and "?" for statuses requested by users). +</p> + +<p> + For example, you might define a "review" status for users to request review + for their patches. When a patch writer requests review, the string "review?" + will appear in the attachment. When a patch reviewer reviews the patch, + either the string "review+" or the string "review-" will appear in the patch, + depending on whether the patch passed or failed review. +</p> + +<p> + You can restrict the list of flag types to those available for a given product + and component. If a product is selected with no component, only flag types + which are available to at least one component of the product are shown. +</p> + +<form id="flagtype_form" name="flagtype_form" action="editflagtypes.cgi" method="get"> + <table> + <tr> + <th><label for="product">Product:</label></th> + <td> + <select name="product" onchange="selectProduct(this, this.form.component, null, null, '__Any__');"> + <option value="">__Any__</option> + [% FOREACH prod = products %] + <option value="[% prod.name FILTER html %]" + [% " selected" IF selected_product == prod.name %]> + [% prod.name FILTER html %]</option> + [% END %] + </select> + </td> + <th><label for="component">Component:</label></th> + <td> + <select name="component"> + <option value="">__Any__</option> + [% FOREACH comp = components %] + <option value="[% comp FILTER html %]" + [% " selected" IF selected_component == comp %]> + [% comp FILTER html %]</option> + [% END %] + </select> + </td> + <td> + <input type="checkbox" id="show_flag_counts" name="show_flag_counts" value="1" + [%+ 'checked="checked"' IF show_flag_counts %]> + <label for="show_flag_counts">Show flag counts</label> + </td> + <td><input type="submit" id="submit" value="Filter"></td> + </tr> + </table> +</form> + +<h3>Flag Types for [% terms.Bugs %]</h3> + +[% PROCESS display_flag_types types=bug_types types_id='bugs' %] + +<p> + <a href="editflagtypes.cgi?action=enter&target_type=bug">Create Flag Type for [% terms.Bugs %]</a> +</p> + +<h3>Flag Types for Attachments</h3> + +[% PROCESS display_flag_types types=attachment_types types_id='attachments' %] + +<p> + <a href="editflagtypes.cgi?action=enter&target_type=attachment">Create Flag Type For Attachments</a> +</p> + +[% PROCESS global/footer.html.tmpl %] + + +[% BLOCK display_flag_types %] + <table id="flag_types_[% types_id FILTER html %]" cellspacing="0" cellpadding="4" border="1"> + + <tr> + <th>Edit name ...</th> + <th>Description</th> + <th>Sortkey</th> + <th>Properties</th> + <th>Grant group</th> + <th>Request group</th> + [% IF show_flag_counts %] + <th>Flags</th> + [%# Note to translators: translate the strings in quotes only. %] + [% state_desc = {granted = 'granted' denied = 'denied' pending = 'pending'} %] + [% END %] + <th>Actions</th> + </tr> + + [% FOREACH type = types %] + + <tr class="[% IF type.is_active %]active[% ELSE %]inactive[% END %]"> + <td><a href="editflagtypes.cgi?action=edit&id=[% type.id %]">[% type.name FILTER html FILTER no_break %]</a></td> + <td>[% type.description FILTER html %]</td> + <td align="right">[% type.sortkey FILTER html %]</td> + <td> + [% IF type.is_requestable %] + <span class="requestable">requestable</span> + [% END %] + [% IF type.is_requestable && type.is_requesteeble %] + <span class="requesteeble">(specifically)</span> + [% END %] + [% IF type.is_multiplicable %] + <span class="multiplicable">multiplicable</span> + [% END %] + </td> + <td>[% IF type.grant_group %][% type.grant_group.name FILTER html %][% END %]</td> + <td>[% IF type.request_group %][% type.request_group.name FILTER html %][% END %]</td> + [% IF show_flag_counts %] + <td> + [% FOREACH state = ['granted', 'pending', 'denied'] %] + [% bug_list = bug_lists.${type.id}.$state || [] %] + [% IF bug_list.size %] + <a href="buglist.cgi?bug_id=[% bug_list.unique.nsort.join(",") FILTER html %]"> + [% bug_list.size FILTER html %] [%+ state_desc.$state FILTER html %] + </a> + <br> + [% ELSE %] + 0 [% state_desc.$state FILTER html %]<br> + [% END %] + [% END %] + </td> + [% END %] + <td> + <a href="editflagtypes.cgi?action=copy&id=[% type.id %]">Copy</a> + | <a href="editflagtypes.cgi?action=confirmdelete&id=[% type.id %]">Delete</a> + </td> + </tr> + + [% END %] + + </table> +[% END %] diff --git a/template/en/default/admin/groups/confirm-remove.html.tmpl b/template/en/default/admin/groups/confirm-remove.html.tmpl new file mode 100644 index 0000000..cdb070d --- /dev/null +++ b/template/en/default/admin/groups/confirm-remove.html.tmpl @@ -0,0 +1,66 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@syndicomm.com> + # Joel Peshkin <bugreport@peshkin.net> + # Jacob Steenhagen <jake@bugzilla.org> + # Vlad Dascalu <jocuri@softhome.net> + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # group: The Bugzilla::Group being changed. + # regexp: the regexp according to which the update is performed. + #%] + +[% IF regexp %] + [% title = "Confirm: Remove Explicit Members in the Regular Expression?" %] +[% ELSE %] + [% title = "Confirm: Remove All Explicit Members?" %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + doc_section = "groups.html" +%] + +[% IF regexp %] + <p>This option will remove all users from '[% group.name FILTER html %]' + whose login names match the regular expression: + '[% regexp FILTER html %]'</p> +[% ELSE %] + <p>This option will remove all explicitly defined users + from '[% group.name FILTER html %].'</p> +[% END %] + +<p>Generally, you will only need to do this when upgrading groups + created with [% terms.Bugzilla %] versions 2.16 and earlier. Use + this option with <b>extreme care</b> and consult the documentation + for further information. +</p> + +<form method="post" action="editgroups.cgi"> + <input type="hidden" name="group_id" value="[% group.id FILTER html %]"> + <input type="hidden" name="regexp" value="[% regexp FILTER html %]"> + <input type="hidden" name="action" value="remove_regexp"> + + <input name="token" type="hidden" value="[% token FILTER html %]"> + <input name="confirm" type="submit" value="Confirm"> + <p>Or <a href="editgroups.cgi">return to the Edit Groups page</a>.</p> +</form> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/groups/create.html.tmpl b/template/en/default/admin/groups/create.html.tmpl new file mode 100644 index 0000000..b3ac723 --- /dev/null +++ b/template/en/default/admin/groups/create.html.tmpl @@ -0,0 +1,102 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@syndicomm.com> + # Joel Peshkin <bugreport@peshkin.net> + # Jacob Steenhagen <jake@bugzilla.org> + # Vlad Dascalu <jocuri@softhome.net> + #%] + +[%# INTERFACE: + # none + #%] + +[% PROCESS global/header.html.tmpl + title = "Add group" + subheader = "This page allows you to define a new user group." + doc_section = "groups.html#create-groups" +%] + +<form method="post" action="editgroups.cgi"> + <table border="1" cellpadding="4" cellspacing="0"><tr> + <th>New Name</th> + <th>New Description</th> + <th>New User RegExp</th> + <th>Use For [% terms.Bugs %]</th> + </tr><tr> + <td><input size="20" name="name"></td> + <td><input size="40" name="desc"></td> + <td><input size="30" name="regexp"></td> + <td><input type="checkbox" name="isactive" value="1" checked></td> + </tr> + <tr> + <th>Icon URL:</th> + <td colspan="3"><input type="text" size="70" maxlength="255" id="icon_url" name="icon_url"></td> + </tr> + [% Hook.process('field') %] + </table> + + <hr> + + <input type="checkbox" id="insertnew" name="insertnew" value="1" + [% IF Param("makeproductgroups") %] checked[% END %]> + <label for="insertnew">Insert new group into all existing products.</label> + <p> + <input type="submit" id="create" value="Add"> + <input type="hidden" name="action" value="new"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +<p><b>Name</b> is what is used with the B<!-- blah -->ugzilla->user->in_group() +function in any customized cgi files you write that use a given group. +It can also be used by people submitting [% terms.bugs %] by email to +limit [% terms.abug %] to a certain set of groups.</p> + +<p><b>Description</b> is what will be shown in the [% terms.bug %] reports +to members of the group where they can choose whether +the [% terms.bug %] will be restricted to others in the same group.</p> + +<p>The <b>Use For [% terms.Bugs %]</b> flag determines whether or not the +group is eligible to be used for [% terms.bugs %]. If you clear this, it will +no longer be possible for users to add [% terms.bugs %] to this group, +although [% terms.bugs %] already in the group will remain in the group. +Doing so is a much less drastic way to stop a group from growing +than deleting the group would be. <b>Note: If you are creating +a group, you probably want it to be usable for [% terms.bugs %], in which +case you should leave this checked.</b></p> + +<p><b>User RegExp</b> is optional, and if filled in, will +automatically grant membership to this group to anyone with an +email address that matches this regular expression.</p> + +<p> + <b>Icon URL</b> is optional, and is the URL pointing to the icon + used to identify the group. It may be either a relative URL to the base URL + of this installation or an absolute URL. This icon will be displayed + in comments in [% terms.bugs %] besides the name of the author of comments. +</p> + +<p>By default, the new group will be associated with existing +products. Unchecking the "Insert new group into all existing +products" option will prevent this and make the group become +visible only when its controls have been added to a product.</p> + +<p>Back to the <a href="./">main [% terms.bugs %] page</a> + +or to the <a href="editgroups.cgi">group list</a>. + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/groups/delete.html.tmpl b/template/en/default/admin/groups/delete.html.tmpl new file mode 100644 index 0000000..9d32da4 --- /dev/null +++ b/template/en/default/admin/groups/delete.html.tmpl @@ -0,0 +1,187 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@syndicomm.com> + # Joel Peshkin <bugreport@peshkin.net> + # Jacob Steenhagen <jake@bugzilla.org> + # Vlad Dascalu <jocuri@softhome.net> + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # group: A Bugzilla::Group object representing the group that is + # about to be deleted. + # shared_queries: int; The number of queries being shared with this + # group. + #%] + + +[% PROCESS global/header.html.tmpl + title = "Delete group" + doc_section = "groups.html" +%] + +<table border="1"> + <tr> + <th>Id</th> + <th>Name</th> + <th>Description</th> + </tr> + <tr> + <td>[% group.id FILTER html %]</td> + <td>[% group.name FILTER html %]</td> + <td>[% group.description FILTER html_light %]</td> + </tr> +</table> + +<form method="post" action="editgroups.cgi"> + [% IF group.members_non_inherited.size %] + <p><b>[% group.members_non_inherited.size FILTER html %] users belong + directly to this group. You cannot delete this group while there are + users in it.</b> + + <br><a href="editusers.cgi?action=list&groupid= + [%- group.id FILTER url_quote %]&grouprestrict=1">Show + me which users</a> - <label><input type="checkbox" name="removeusers">Remove + all users from this group for me.</label></p> + [% END %] + + [% IF group.granted_by_direct(constants.GROUP_MEMBERSHIP).size %] + <p><b>Members of this group inherit membership in the following groups:</b></p> + <ul> + [% FOREACH grantor = group.granted_by_direct(constants.GROUP_MEMBERSHIP) %] + <li>[% grantor.name FILTER html %]</li> + [% END %] + </ul> + [% END %] + + [% IF group.bugs.size %] + <p><b>[% group.bugs.size FILTER html %] [%+ terms.bug %] reports are + visible only to this group. You cannot delete this group while any + [%+ terms.bugs %] are using it.</b> + + <br><a href="buglist.cgi?field0-0-0=bug_group&type0-0-0=equals&value0-0-0= + [%- group.name FILTER url_quote %]">Show me + which [% terms.bugs %]</a> - + <label><input type="checkbox" name="removebugs">Remove + all [% terms.bugs %] from this group restriction for me.</label></p> + + <p><b>NOTE:</b> It's quite possible to make confidential [% terms.bugs %] + public by checking this box. It is <B>strongly</B> suggested + that you review the [% terms.bugs %] in this group before checking + the box.</p> + [% END %] + + [% IF group.products.size %] + <p><b>This group is tied to the following products:</b></p> + [% SET any_hidden = 0 %] + <ul> + [% FOREACH data = group.products %] + + [% SET active = [] %] + [% FOREACH control = data.controls.keys.sort %] + [% NEXT IF !data.controls.$control %] + [% IF control == 'othercontrol' OR control == 'membercontrol' %] + [% SWITCH data.controls.$control %] + [% CASE constants.CONTROLMAPMANDATORY %] + [% SET type = "Mandatory" %] + [% CASE constants.CONTROLMAPSHOWN %] + [% SET type = "Shown" %] + [% CASE constants.CONTROLMAPDEFAULT %] + [% SET type = "Default" %] + [% END %] + [% active.push("$control: $type") %] + [% ELSE %] + [% active.push(control) %] + [% END %] + [% END %] + + [% SET hidden = 0 %] + [% IF data.controls.othercontrol == constants.CONTROLMAPMANDATORY + AND data.controls.membercontrol == constants.CONTROLMAPMANDATORY + AND data.controls.entry + %] + [% SET hidden = 1 %] + [% END %] + + <li><a href="editproducts.cgi?action=editgroupcontrols&product= + [%- data.product.name FILTER url_quote %]"> + [%- data.product.name FILTER html %]</a> + ([% active.join(', ') FILTER html %]) + [% IF hidden %] + <strong>WARNING: This product is currently hidden. + Deleting this group will make this product publicly visible. + </strong> + [% END %]</li> + [% END %] + </ul> + + <p><label><input type="checkbox" name="unbind">Delete this group anyway, + and remove these controls.</label></p> + [% END %] + + [% IF group.flag_types.size %] + <p><b>This group restricts who can make changes to flags of certain types. + You cannot delete this group while there are flag types using it.</b> + + <br><a href="editflagtypes.cgi?action=list&group= + [%- group.id FILTER url_quote %]">Show + me which types</a> - + <label><input type="checkbox" name="removeflags">Remove all + flag types from this group for me.</label></p> + [% END %] + + [% IF shared_queries %] + <p> + <b>There + [% IF shared_queries > 1 %] + are [% shared_queries %] saved searches + [% ELSE %] + is a saved search + [% END %] + being shared with this group.</b> + If you delete this group, + [% IF shared_queries > 1 %] + these saved searches + [% ELSE %] + this saved search + [% END %] + will fall back to being private again. + </p> + [% END %] + + <h2>Confirmation</h2> + + <p>Do you really want to delete this group?</p> + [% IF group.users.size || group.bugs.size || group.products.size + || group.flags.size + %] + <p><b>You must check all of the above boxes or correct the + indicated problems first before you can proceed.</b></p> + [% END %] + + <p> + <input type="submit" id="delete" value="Yes, delete"> + <input type="hidden" name="action" value="delete"> + <input type="hidden" name="group" value="[% group.id FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + </p> +</form> + +Go back to the <a href="editgroups.cgi">group list</a>. + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/groups/edit.html.tmpl b/template/en/default/admin/groups/edit.html.tmpl new file mode 100644 index 0000000..f7fd308 --- /dev/null +++ b/template/en/default/admin/groups/edit.html.tmpl @@ -0,0 +1,249 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@syndicomm.com> + # Joel Peshkin <bugreport@peshkin.net> + # Jacob Steenhagen <jake@bugzilla.org> + # Vlad Dascalu <jocuri@softhome.net> + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # group - A Bugzilla::Group representing the group being edited. + # *_current - Arrays of Bugzilla::Group objects that show the current + # values for this group, as far as grants. + # *_available - Arrays of Bugzilla::Group objects that show the current + # available values for each grant. + #%] + +[% title = BLOCK %]Change Group: [% group.name FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + doc_section = "groups.html#edit-groups" + style = " + .grant_table { border-collapse: collapse; } + .grant_table td, .grant_table th { + padding-left: .5em; + } + .grant_table td.one, .grant_table th.one { + border-right: 1px solid black; + padding-right: .5em; + } + " +%] + +<form method="post" action="editgroups.cgi"> + <input type="hidden" name="action" value="postchanges"> + <input type="hidden" name="group_id" value="[% group.id FILTER html %]"> + + <table border="1" cellpadding="4"> + <tr> + <th>Group:</th> + <td> + [% IF group.is_bug_group %] + <input type="text" name="name" size="60" + value="[% group.name FILTER html %]"> + [% ELSE %] + [% group.name FILTER html %] + [% END %] + </td> + </tr> + + <tr> + <th>Description:</th> + <td> + [% IF group.is_bug_group %] + <input type="text" name="desc" size="70" + value="[% group.description FILTER html %]"> + [% ELSE %] + [% group.description FILTER html %] + [% END %] + </td> + </tr> + + <tr> + <th>User Regexp:</th> + <td> + <input type="text" name="regexp" size="40" + value="[% group.user_regexp FILTER html %]"> + </td> + </tr> + + <tr> + <th> + Icon URL: + [% IF group.icon_url %] + <img src="[% group.icon_url FILTER html %]" alt="[% group.name FILTER html %]"> + [% END %] + </th> + <td> + <input type="text" name="icon_url" size="70" maxlength="255" + value="[% group.icon_url FILTER html %]"> + </td> + </tr> + + [% IF group.is_bug_group %] + <tr> + <th>Use For [% terms.Bugs %]:</th> + <td> + <input type="checkbox" name="isactive" + value="1" [% 'checked="checked"' IF group.is_active %]> + </td> + </tr> + [% END %] + [% Hook.process('field') %] + </table> + + <h4>Group Permissions</h4> + + <table class="grant_table"> + <tr> + <th class="one">Groups That Are a Member of This Group<br> + ("Users in <var>X</var> are automatically in + [%+ group.name FILTER html %]")</th> + <th>Groups That This Group Is a Member Of<br> + ("If you are in [% group.name FILTER html %], you are + automatically also in...")</th> + </tr> + <tr> + <td class="one"> + [% PROCESS select_pair name = "members" size = 10 + items_available = members_available + items_current = members_current %] + </td> + + <td>[% PROCESS select_pair name = "member_of" size = 10 + items_available = member_of_available + items_current = member_of_current %]</td> + </tr> + </table> + + <table class="grant_table"> + <tr> + <th class="one"> + Groups That Can Grant Membership in This Group<br> + ("Users in <var>X</var> can add other users to + [%+ group.name FILTER html %]") + + </th> + <th>Groups That This Group Can Grant Membership In<br> + ("Users in [% group.name FILTER html %] can add users to...") + </th> + </tr> + <tr> + <td class="one"> + [% PROCESS select_pair name = "bless_from" size = 10 + items_available = bless_from_available + items_current = bless_from_current %] + </td> + <td>[% PROCESS select_pair name = "bless_to" size = 10 + items_available = bless_to_available + items_current = bless_to_current %] + </td> + </tr> + </table> + + [% IF Param('usevisibilitygroups') %] + <table class="grant_table"> + <tr> + <th class="one"> + Groups That Can See This Group<br> + ("Users in <var>X</var> can see users in + [%+ group.name FILTER html %]") + </th> + <th>Groups That This Group Can See<br> + ("Users in [% group.name FILTER html %] can see users in...") + </th> + </tr> + <tr> + <td class="one"> + [% PROCESS select_pair name = "visible_from" size = 10 + items_available = visible_from_available + items_current = visible_from_current %] + </td> + <td>[% PROCESS select_pair name = "visible_to_me" size = 10 + items_available = visible_to_me_available + items_current = visible_to_me_current %] + </td> + </tr> + </table> + [% END %] + + <input type="submit" value="Update Group"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +<h4>Mass Remove</h4> + +<p>You can use this form to do mass-removal of users from groups. + This is often very useful if you upgraded from [% terms.Bugzilla %] + 2.16.</p> + +<table><tr><td> +<form method="post" action="editgroups.cgi"> + <fieldset> + <legend>Remove all explicit memberships from users whose login names + match the following regular expression:</legend> + <input type="text" size="20" name="regexp"> + <input type="submit" value="Remove Memberships"> + + <p>If you leave the field blank, all explicit memberships in + this group will be removed.</p> + + <input type="hidden" name="action" value="confirm_remove"> + <input type="hidden" name="group_id" value="[% group.id FILTER html %]"> + </fieldset> +</form> +</td></tr></table> + +<p>Back to the <a href="editgroups.cgi">group list</a>.</p> + +[% PROCESS global/footer.html.tmpl %] + +[% BLOCK select_pair %] + <table class="select_pair"> + <tr> + <th><label for="[% "${name}_add" FILTER html %]">Add<br> + (select to add)</label></th> + <th><label for="[% "${name}_remove" FILTER html %]">Current<br> + (select to remove)</label></th> + </tr> + <tr> + <td> + <select multiple="multiple" size="[% size FILTER html %]" + name="[% "${name}_add" FILTER html %]" + id="[% "${name}_add" FILTER html %]"> + [% FOREACH item = items_available %] + <option value="[% item.id FILTER html %]"> + [% item.name FILTER html %]</option> + [% END %] + </select> + </td> + <td> + <select multiple="multiple" size="[% size FILTER html %]" + name="[% "${name}_remove" FILTER html %]" + id="[% "${name}_remove" FILTER html %]"> + [% FOREACH item = items_current %] + <option value="[% item.id FILTER html %]"> + [% item.name FILTER html %]</option> + [% END %] + </select> + </td> + </tr> + </table> +[% END %] diff --git a/template/en/default/admin/groups/list.html.tmpl b/template/en/default/admin/groups/list.html.tmpl new file mode 100644 index 0000000..1d137dc --- /dev/null +++ b/template/en/default/admin/groups/list.html.tmpl @@ -0,0 +1,168 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@syndicomm.com> + # Joel Peshkin <bugreport@peshkin.net> + # Jacob Steenhagen <jake@bugzilla.org> + # Vlad Dascalu <jocuri@softhome.net> + #%] + +[%# INTERFACE: + # groups: array with group objects having the properties: + # - id: number. The ID of the group. + # - name: string. The name of the group. + # - description: string. The description of the group. + # - userregexp: string. The user regexp for the given group. + # - isactive: boolean int. Specifies if the group is active or not. + # - isbuggroup: boolean int. Specifies if it can be used for bugs. + #%] + +[% PROCESS global/header.html.tmpl + title = "Edit Groups" + subheader = "This lets you edit the groups available to put users in." + doc_section = "groups.html" +%] + +[% edit_contentlink = "editgroups.cgi?action=changeform&group=%%id%%" %] +[% del_contentlink = "editgroups.cgi?action=del&group=%%id%%" %] + +[% columns = + [{name => 'name' + heading => 'Name' + contentlink => edit_contentlink + } + {name => 'description' + heading => 'Description' + allow_html_content => 1 + } + {name => 'userregexp' + heading => 'User RegExp' + } + {name => 'is_active_bug_group' + heading => "Use For $terms.Bugs" + align => 'center' + } + {name => 'type' + heading => 'Type' + align => 'center' + } + {name => 'action' + heading => 'Action' + } + ] +%] + +[% overrides.is_active_bug_group = { + 'is_active_bug_group' => { + "0" => { + override_content => 1 + content => " " + } + "1" => { + override_content => 1 + content => "X" + } + } + } + + overrides.userregexp = { + 'userregexp' => { + "" => { + override_content => 1 + content => " " + } + } + } +%] + +[% FOREACH group IN ["chartgroup", "insidergroup", "timetrackinggroup", "querysharegroup"] %] + [% special_group = Param(group) %] + + [% IF special_group %] + [% overrides.action.name.$special_group = { + override_content => 1 + content => "(used as the '$group')" + } + %] + [% END %] +[% END %] + +[% overrides.action.isbuggroup = { + "1" => { + override_content => 1 + content => "Delete" + override_contentlink => 1 + contentlink => del_contentlink + } + } + + overrides.type.isbuggroup = { + "0" => { + override_content => 1 + content => "system" + } + "1" => { + override_content => 1 + content => "user" + } + } +%] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = groups + overrides = overrides +%] + +<p><a href="editgroups.cgi?action=add">Add Group</a></p> + +<p> + <b>Name</b> is what is used with the B<!-- blah -->ugzilla->user->in_group() +function in any customized cgi files you write that use a given group. +It can also be used by people submitting [% terms.bugs %] by email to +limit [% terms.abug %] to a certain set of groups. +</p> + +<p> + <b>Description</b> is what will be shown in the [% terms.bug %] reports +to members of the group where they can choose whether the [% terms.bug %] +will be restricted to others in the same group. +</p> + +<p> + <b>User RegExp</b> is optional, and if filled in, will automatically +grant membership to this group to anyone with an email address +that matches this perl regular expression. Do not forget +the trailing '$'. Example '@mycompany\.com$' +</p> + +<p> + The <b>Use For [% terms.Bugs %]</b> flag determines whether or not +the group is eligible to be used for [% terms.bugs %]. If you remove +this flag, it will no longer be possible for users to add [% terms.bugs %] +to this group, although [% terms.bugs %] already in the group will remain +in the group. Doing so is a much less drastic way to stop a group +from growing than deleting the group as well as a way to maintain +lists of users without cluttering the lists of groups used +for [% terms.bug %] restrictions. +</p> + +<p> + The <b>Type</b> field identifies system groups. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/keywords/confirm-delete.html.tmpl b/template/en/default/admin/keywords/confirm-delete.html.tmpl new file mode 100644 index 0000000..20a6dee --- /dev/null +++ b/template/en/default/admin/keywords/confirm-delete.html.tmpl @@ -0,0 +1,53 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman <terry@mozilla.org> + # Vlad Dascalu <jocuri@softhome.net> + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # keyword: A Bugzilla::Keyword object. + #%] + +[% PROCESS global/header.html.tmpl + title = "Delete Keyword" +%] + +<p> + [% IF keyword.bug_count == 1 %] + There is one [% terms.bug %] with this keyword set. + [% ELSIF keyword.bug_count > 1 %] + There are [% keyword.bug_count FILTER html %] [%+ terms.bugs %] with + this keyword set. + [% END %] + + Are you <b>sure</b> you want to delete + the <code>[% keyword.name FILTER html %]</code> keyword? +</p> + +<form method="post" action="editkeywords.cgi"> + <input type="hidden" name="id" value="[% keyword.id FILTER html %]"> + <input type="hidden" name="action" value="delete"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" id="delete" + value="Yes, really delete the keyword"> +</form> + +<p><a href="editkeywords.cgi">Edit other keywords</a>.</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/keywords/create.html.tmpl b/template/en/default/admin/keywords/create.html.tmpl new file mode 100644 index 0000000..e5d6aa0 --- /dev/null +++ b/template/en/default/admin/keywords/create.html.tmpl @@ -0,0 +1,58 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman <terry@mozilla.org> + # Vlad Dascalu <jocuri@softhome.net> + #%] + +[%# INTERFACE: + # none + #%] + +[% PROCESS global/header.html.tmpl + title = "Add keyword" + subheader = "This page allows you to add a new keyword." +%] + +<form method="post" action="editkeywords.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + <tr> + <th align="right">Name:</th> + <td><input size="64" maxlength="64" name="name" value=""></td> + </tr> + <tr> + <th align="right">Description:</th> + <td> + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + %] + </td> + </tr> + </table> + <hr> + <input type="hidden" name="id" value="-1"> + <input type="submit" id="create" value="Add"> + <input type="hidden" name="action" value="new"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +<p><a href="editkeywords.cgi">Edit other keywords</a>.</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/keywords/edit.html.tmpl b/template/en/default/admin/keywords/edit.html.tmpl new file mode 100644 index 0000000..c4b9a64 --- /dev/null +++ b/template/en/default/admin/keywords/edit.html.tmpl @@ -0,0 +1,73 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman <terry@mozilla.org> + # Vlad Dascalu <jocuri@softhome.net> + # Max Kanat-Alexander <mkanat@bugzilla.org> + #%] + +[%# INTERFACE: + # keyword: A Bugzilla::Keyword object. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit keyword" +%] + +<form method="post" action="editkeywords.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + <tr> + <th align="right">Name:</th> + <td><input size="64" maxlength="64" name="name" + value="[% keyword.name FILTER html %]"></td> + </tr> + <tr> + <th align="right">Description:</th> + <td> + [% INCLUDE global/textarea.html.tmpl + name = 'description' + minrows = 4 + cols = 64 + wrap = 'virtual' + defaultcontent = keyword.description + %] + </td> + </tr> + <tr> + <th align="right">[% terms.Bugs %]:</th> + <td> + [% IF keyword.bug_count > 0 %] + <a href="buglist.cgi?keywords=[% keyword.name FILTER url_quote %]"> + [% keyword.bug_count FILTER html %]</a> + [% ELSE %] + none + [% END %] + </td> + </tr> + </table> + + <input type="submit" id="update" value="Save Changes"> + <input type="hidden" name="action" value="update"> + <input type="hidden" name="id" value="[% keyword.id FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +<p><a href="editkeywords.cgi">Edit other keywords</a>.</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/keywords/list.html.tmpl b/template/en/default/admin/keywords/list.html.tmpl new file mode 100644 index 0000000..c400a23 --- /dev/null +++ b/template/en/default/admin/keywords/list.html.tmpl @@ -0,0 +1,70 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Terry Weissman <terry@mozilla.org> + # Vlad Dascalu <jocuri@softhome.net> + # Jouni Heikniemi <jouni@heikniemi.net> + #%] + +[%# INTERFACE: + # keywords: array keyword objects having the properties: + # - id: number. The ID of the keyword. + # - name: string. The name of the keyword. + # - description: string. The description of the keyword. + # - bug_count: number. The number of bugs with the keyword. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Select keyword" +%] + +[% columns = [ + { + name => "name" + heading => "Edit keyword..." + contentlink => "editkeywords.cgi?action=edit&id=%%id%%" + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + }, + { + name => "bug_count" + heading => "$terms.Bugs" + align => "right" + contentlink => "buglist.cgi?keywords=%%name%%" + }, + { + heading => "Action" + content => "Delete" + contentlink => "editkeywords.cgi?action=del&id=%%id%%" + } + ] +%] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = keywords + footer = footer_row +%] + +<p><a href="editkeywords.cgi?action=add">Add a new keyword</a></p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/confirm-delete.html.tmpl b/template/en/default/admin/milestones/confirm-delete.html.tmpl new file mode 100644 index 0000000..ea89b80 --- /dev/null +++ b/template/en/default/admin/milestones/confirm-delete.html.tmpl @@ -0,0 +1,98 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestone belongs. + # milestone: object; Bugzilla::Milestone object representing the + # milestone the user wants to delete. + #%] + +[% title = BLOCK %]Delete Milestone of Product '[% product.name FILTER html %]' + [% END %] + +[% PROCESS global/header.html.tmpl + title = title +%] + +<table border="1" cellpadding="4" cellspacing="0"> +<tr bgcolor="#6666FF"> + <th valign="top" align="left">Field</th> + <th valign="top" align="left">Value</th> +</tr> +<tr> + <td valign="top">Milestone:</td> + <td valign="top">[% milestone.name FILTER html %]</td> +</tr> +<tr> + <td valign="top">Milestone of Product:</td> + <td valign="top">[% product.name FILTER html %]</td> +</tr> +<tr> + <td valign="top">[% terms.Bugs %]:</td> + <td valign="top"> +[% IF milestone.bug_count %] + <a title="List of [% terms.bugs %] targetted at milestone ' + [% milestone.name FILTER html %]'" + href="buglist.cgi?target_milestone=[% milestone.name FILTER url_quote %]&product= + [%- product.name FILTER url_quote %]"> + [% milestone.bug_count FILTER none %]</a> +[% ELSE %] + None +[% END %] + </td> +</tr> +</table> + +<h2>Confirmation</h2> + +[% IF milestone.bug_count %] + + <table border="0" cellpadding="20" width="70%" bgcolor="red"> + <tr><td> + There + [% IF milestone.bug_count > 1 %] + are [% milestone.bug_count FILTER none %] [%+ terms.bugs %] + [% ELSE %] + is 1 [% terms.bug %] + [% END %] + entered for this milestone! When you delete this milestone, + <b><blink>ALL</blink></b> of these [% terms.bugs %] will be retargeted + to [% product.default_milestone FILTER html %], the default milestone for + the [% product.name FILTER html %] product. + </td></tr> + </table> + +[% END %] + +<p>Do you really want to delete this milestone?<p> + +<form method="post" action="editmilestones.cgi"> + <input type="submit" id="delete" value="Yes, delete"> + <input type="hidden" name="action" value="delete"> + <input type="hidden" name="product" value="[% product.name FILTER html %]"> + <input type="hidden" name="milestone" value="[% milestone.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +[% PROCESS admin/milestones/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/create.html.tmpl b/template/en/default/admin/milestones/create.html.tmpl new file mode 100644 index 0000000..d7c2f58 --- /dev/null +++ b/template/en/default/admin/milestones/create.html.tmpl @@ -0,0 +1,58 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestone belongs. + #%] + +[% title = BLOCK %]Add Milestone to Product '[% product.name FILTER html %]'[% END %] +[% subheader = BLOCK %]This page allows you to add a new milestone to product + '[% product.name FILTER html %]'.[% END %] +[% PROCESS global/header.html.tmpl + title = title + subheader = subheader + onload = "document.forms['f'].milestone.focus()" +%] + +<form name="f" method="post" action="editmilestones.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + <tr> + <th align="right"><label for="milestone">Milestone:</label></th> + <td><input id="milestone" size="20" maxlength="20" name="milestone" + value=""></td> + </tr> + <tr> + <th align="right"><label for="sortkey">Sortkey:</label></th> + <td><input id="sortkey" size="20" maxlength="20" name="sortkey" + value=""></td> + </tr> + </table> + <input type="submit" id="create" value="Add"> + <input type="hidden" name="action" value="new"> + <input type="hidden" name='product' value="[% product.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +[% PROCESS admin/milestones/footer.html.tmpl + no_add_milestone_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/edit.html.tmpl b/template/en/default/admin/milestones/edit.html.tmpl new file mode 100644 index 0000000..dfe9d1b --- /dev/null +++ b/template/en/default/admin/milestones/edit.html.tmpl @@ -0,0 +1,63 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestone belongs. + # milestone: object; Bugzilla::Milestone object representing the + # milestone the user wants to edit. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Edit Milestone '[% milestone.name FILTER html %]' of product ' + [%- product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title + onload = "document.forms['f'].milestone.select()" +%] + +<form name="f" method="post" action="editmilestones.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + + <tr> + <th valign="top"><label for="milestone">Milestone:</label></th> + <td><input id="milestone" size="20" maxlength="20" name="milestone" value=" + [%- milestone.name FILTER html %]"></td> + </tr> + <tr> + <th align="right"><label for="sortkey">Sortkey:</label></th> + <td><input id="sortkey" size="20" maxlength="20" name="sortkey" value=" + [%- milestone.sortkey FILTER html %]"></td> + </tr> + + </table> + + <input type="hidden" name="milestoneold" value="[% milestone.name FILTER html %]"> + <input type="hidden" name="action" value="update"> + <input type="hidden" name="product" value="[% product.name FILTER html %]"> + <input type="submit" id="update" value="Save Changes"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +[% PROCESS admin/milestones/footer.html.tmpl + no_edit_milestone_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/footer.html.tmpl b/template/en/default/admin/milestones/footer.html.tmpl new file mode 100644 index 0000000..e91e5f9 --- /dev/null +++ b/template/en/default/admin/milestones/footer.html.tmpl @@ -0,0 +1,67 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestone belongs. + # + # milestone: object; Bugzilla::Milestone object representing the + # milestone. + # + # no_XXX_link: boolean; if defined, then don't show the corresponding + # link. Supported parameters are: + # + # no_edit_milestone_link + # no_edit_other_milestones_link + # no_add_milestone_link + #%] + +<hr> + +<p> + +[% UNLESS no_add_milestone_link %] + <a title="Add a milestone to product '[% product.name FILTER html %]'" + href="editmilestones.cgi?action=add&product= + [%- product.name FILTER url_quote %]">Add</a> a milestone. +[% END %] + +[% IF milestone.name && !no_edit_milestone_link %] + Edit milestone <a + title="Edit Milestone '[% milestone.name FILTER html %]' of product ' + [%- product.name FILTER html %]'" + href="editmilestones.cgi?action=edit&product= + [%- product.name FILTER url_quote %]&milestone= + [%- milestone.name FILTER url_quote %]"> + '[% milestone.name FILTER html %]'</a>. +[% END %] + +[% UNLESS no_edit_other_milestones_link %] + Edit other milestones of product <a + href="editmilestones.cgi?product= + [%- product.name FILTER url_quote %]">'[% product.name FILTER html %]'</a>. + +[% END %] + + Edit product <a + href="editproducts.cgi?action=edit&product= + [%- product.name FILTER url_quote %]">'[% product.name FILTER html %]'</a>. + +</p> diff --git a/template/en/default/admin/milestones/list.html.tmpl b/template/en/default/admin/milestones/list.html.tmpl new file mode 100644 index 0000000..9422855 --- /dev/null +++ b/template/en/default/admin/milestones/list.html.tmpl @@ -0,0 +1,108 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the milestones belongs. + # showbugcounts: if defined, then bug counts should be included in the table + #%] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Select milestone of product + '[% product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +[% edit_contentlink = BLOCK %]editmilestones.cgi?action=edit&product= + [%- product.name FILTER url_quote %]&milestone=%%name%%[% END %] +[% delete_contentlink = BLOCK %]editmilestones.cgi?action=del&product= + [%- product.name FILTER url_quote %]&milestone=%%name%%[% END %] +[% bug_count_contentlink = BLOCK %]buglist.cgi?target_milestone=%%name%%&product= + [%- product.name FILTER url_quote %][% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit milestone..." + contentlink => edit_contentlink + }, + { + name => "sortkey" + heading => "Sortkey" + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => "bug_count" + heading => "$terms.Bugs" + align => "right" + contentlink => bug_count_contentlink + }) + %] + +[% END %] + +[% columns.push({ + name => "action" + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + }) +%] + +[%# We want to override the usual 'Delete' link for the default milestone %] +[% overrides.action.name.${product.default_milestone} = { + override_content => 1 + content => "(Default milestone)" + override_contentlink => 1 + contentlink => undef + } +%] + +[% Hook.process('before_table') %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = product.milestones + overrides = overrides +%] + +[% IF ! showbugcounts %] + + <p><a href="editmilestones.cgi?product=[% product.name FILTER url_quote %]&showbugcounts=1"> + Redisplay table with [% terms.bug %] counts (slower)</a></p> + +[% END %] + +[% PROCESS admin/milestones/footer.html.tmpl + no_edit_other_milestones_link = 1 +%] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/milestones/select-product.html.tmpl b/template/en/default/admin/milestones/select-product.html.tmpl new file mode 100644 index 0000000..587db6d --- /dev/null +++ b/template/en/default/admin/milestones/select-product.html.tmpl @@ -0,0 +1,70 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> + # + #%] + +[%# INTERFACE: + # products: array of product objects + # showbugcounts: if defined, then bug counts should be included in the table + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit milestones for which product?" +%] + +[% columns = [ + { + name => "name" + heading => "Edit milestones of..." + contentlink => "editmilestones.cgi?product=%%name%%" + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => 'bug_count' + heading => "$terms.Bugs" + align => "right" + contentlink => "buglist.cgi?product=%%name%%" + }) + %] + +[% END %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = products +%] + +[% IF !showbugcounts %] + <p><a href="editmilestones.cgi?showbugcounts=1"> + Redisplay table with [% terms.bug %] counts (slower)</a></p> +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/params/admin.html.tmpl b/template/en/default/admin/params/admin.html.tmpl new file mode 100644 index 0000000..dd83ebb --- /dev/null +++ b/template/en/default/admin/params/admin.html.tmpl @@ -0,0 +1,41 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "Administrative Policies" + desc = "Set up account policies" +%] + +[% param_descs = { + allowbugdeletion => "The pages to edit products and components can delete all " _ + "associated $terms.bugs when you delete a product (or component). " _ + "Since that is a pretty scary idea, you have to turn on " _ + "this option before any such deletions will ever happen.", + + allowemailchange => "Users can change their own email address through the preferences. " _ + "Note that the change is validated by emailing both addresses, so " _ + "switching this option on will not let users use an invalid address.", + + allowuserdeletion => "The user editing pages are capable of letting you delete user accounts. " _ + "$terms.Bugzilla will issue a warning in case you'd run into inconsistencies " _ + "when you're about to do so, but such deletions remain kinda scary. " _ + "So, you have to turn on this option before any such deletions " _ + "will ever happen." } +%]
\ No newline at end of file diff --git a/template/en/default/admin/params/advanced.html.tmpl b/template/en/default/admin/params/advanced.html.tmpl new file mode 100644 index 0000000..4caa2f1 --- /dev/null +++ b/template/en/default/admin/params/advanced.html.tmpl @@ -0,0 +1,50 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% + title = "Advanced" + desc = "Settings for advanced configurations." +%] + +[% param_descs = { + cookiedomain => + "If your website is at 'www.foo.com', setting this to" + _ " '.foo.com' will also allow 'bar.foo.com' to access" + _ " $terms.Bugzilla cookies. This is useful if you have more than" + _ " one hostname pointing at the same web server, and you" + _ " want them to share the $terms.Bugzilla cookie.", + + inbound_proxies => + "When inbound traffic to $terms.Bugzilla goes through a proxy," + _ " $terms.Bugzilla thinks that the IP address of every single" + _ " user is the IP address of the proxy. If you enter a comma-separated" + _ " list of IPs in this parameter, then $terms.Bugzilla will trust any" + _ " <code>X-Forwarded-For</code> header sent from those IPs," + _ " and use the value of that header as the end user's IP address.", + + proxy_url => + "$terms.Bugzilla may have to access the web to get notifications about" + _ " new releases (see the <tt>upgrade_notification</tt> parameter)." + _ " If your $terms.Bugzilla server is behind a proxy, it may be" + _ " necessary to enter its URL if the web server cannot access the" + _ " HTTP_PROXY environment variable. If you have to authenticate," + _ " use the <code>http://user:pass@proxy_url/</code> syntax.", +} %] diff --git a/template/en/default/admin/params/attachment.html.tmpl b/template/en/default/admin/params/attachment.html.tmpl new file mode 100644 index 0000000..7d1e29f --- /dev/null +++ b/template/en/default/admin/params/attachment.html.tmpl @@ -0,0 +1,76 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "Attachments" + desc = "Set up attachment options" +%] + +[% param_descs = { + allow_attachment_display => + "If this option is on, users will be able to view attachments from" + _ " their browser, if their browser supports the attachment's MIME type." + _ " If this option is off, users are forced to download attachments," + _ " even if the browser is able to display them." + _ "<p>This is a security restriction for installations where untrusted" + _ " users may upload attachments that could be potentially damaging if" + _ " viewed directly in the browser.</p>" + _ "<p>It is highly recommended that you set the <tt>attachment_base</tt>" + _ " parameter if you turn this parameter on.", + + attachment_base => + "When the <tt>allow_attachment_display</tt> parameter is on, it is " + _ " possible for a malicious attachment to steal your cookies or" + _ " perform an attack on $terms.Bugzilla using your credentials." + _ "<p>If you would like additional security on attachments to avoid" + _ " this, set this parameter to an alternate URL for your $terms.Bugzilla" + _ " that is not the same as <tt>urlbase</tt> or <tt>sslbase</tt>." + _ " That is, a different domain name that resolves to this exact" + _ " same $terms.Bugzilla installation.</p>" + _ "<p>Note that if you have set the" + _ " <a href=\"editparams.cgi?section=advanced#cookiedomain\"><tt>cookiedomain</tt>" + _" parameter</a>, you should set <tt>attachment_base</tt> to use a" + _ " domain that would <em>not</em> be matched by" + _ " <tt>cookiedomain</tt>.</p>" + _ "<p>For added security, you can insert <tt>%bugid%</tt> into the URL," + _ " which will be replaced with the ID of the current $terms.bug that" + _ " the attachment is on, when you access an attachment. This will limit" + _ " attachments to accessing only other attachments on the same" + _ " ${terms.bug}. Remember, though, that all those possible domain names " + _ " (such as <tt>1234.your.domain.com</tt>) must point to this same" + _ " $terms.Bugzilla instance.", + + allow_attachment_deletion => "If this option is on, administrators will be able to delete " _ + "the content of attachments.", + + allow_attach_url => "If this option is on, it will be possible to " _ + "specify a URL when creating an attachment and " _ + "treat the URL itself as if it were an attachment.", + + maxattachmentsize => "The maximum size (in kilobytes) of attachments. " _ + "$terms.Bugzilla will not accept attachments greater than this number " _ + "of kilobytes in size. Setting this parameter to 0 will prevent " _ + "attaching files to ${terms.bugs}.", + + maxlocalattachment => "The maximum size (in megabytes) of attachments identified by " _ + "the user as 'Big Files' to be stored locally on the webserver. " _ + "If set to zero, attachments will never be kept on the local " _ + "filesystem." } +%] diff --git a/template/en/default/admin/params/auth.html.tmpl b/template/en/default/admin/params/auth.html.tmpl new file mode 100644 index 0000000..d2cb3e5 --- /dev/null +++ b/template/en/default/admin/params/auth.html.tmpl @@ -0,0 +1,129 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + # Marc Schumann <wurblzap@gmail.com> + #%] +[% + title = "User Authentication" + desc = "Set up your authentication policies" +%] + +[% param_descs = { + auth_env_id => "Environment variable used by external authentication system " _ + "to store a unique identifier for each user. Leave it blank " _ + "if there isn't one or if this method of authentication " _ + "is not being used.", + + auth_env_email => "Environment variable used by external authentication system " _ + "to store each user's email address. This is a required " _ + "field for environmental authentication. Leave it blank " _ + "if you are not going to use this feature.", + + auth_env_realname => "Environment variable used by external authentication system " _ + "to store the user's real name. Leave it blank if there " _ + "isn't one or if this method of authentication is not being " _ + "used.", + + user_info_class => "Mechanism(s) to be used for gathering a user's login information. + More than one may be selected. If the first one returns nothing, + the second is tried, and so on.<br> + The types are: + <dl> + <dt>CGI</dt> + <dd> + Asks for username and password via CGI form interface. + </dd> + <dt>Env</dt> + <dd> + Info for a pre-authenticated user is passed in system + environment variables. + </dd> + </dl>", + + user_verify_class => "Mechanism(s) to be used for verifying (authenticating) information + gathered by user_info_class. + More than one may be selected. If the first one cannot find the + user, the second is tried, and so on.<br> + The types are: + <dl> + <dt>DB</dt> + <dd> + ${terms.Bugzilla}'s built-in authentication. This is the most common + choice. + </dd> + <dt>RADIUS</dt> + <dd> + RADIUS authentication using a RADIUS server. + This method is experimental; please see the + $terms.Bugzilla documentation for more information. + Using this method requires + <a href=\"?section=radius\">additional + parameters</a> to be set. + </dd> + <dt>LDAP</dt> + <dd> + LDAP authentication using an LDAP server. + Please see the $terms.Bugzilla documentation + for more information. Using this method requires + <a href=\"?section=ldap\">additional + parameters</a> to be set. + </dd> + </dl>", + + rememberlogin => "Controls management of session cookies + <ul> + <li> + on - Session cookies never expire (the user has to login only + once per browser). + </li> + <li> + off - Session cookies last until the users session ends (the user + will have to login in each new browser session). + </li> + <li> + defaulton/defaultoff - Default behavior as described + above, but user can choose whether $terms.Bugzilla will remember his + login or not. + </li> + </ul>", + + requirelogin => "If this option is set, all access to the system beyond the " _ + "front page will require a login. No anonymous users will " _ + "be permitted.", + + emailregexp => "This defines the regexp to use for legal email addresses. The " _ + "default tries to match fully qualified email addresses. Another " _ + "popular value to put here is <tt>^[^@]+$</tt>, which means " _ + "'local usernames, no @ allowed.'", + + emailregexpdesc => "This describes in English words what kinds of legal addresses " _ + "are allowed by the <tt>emailregexp</tt> param.", + + emailsuffix => "This is a string to append to any email addresses when actually " _ + "sending mail to that address. It is useful if you have changed " _ + "the <tt>emailregexp</tt> param to only allow local usernames, " _ + "but you want the mail to be delivered to username@my.local.hostname.", + + createemailregexp => "This defines the regexp to use for email addresses that are " _ + "permitted to self-register using a 'New Account' feature. The " _ + "default (.*) permits any account matching the emailregexp " _ + "to be created. If this parameter is left blank, no users " _ + "will be permitted to create their own accounts and all accounts " _ + "will have to be created by an administrator." } +%] diff --git a/template/en/default/admin/params/authenv.html.tmpl b/template/en/default/admin/params/authenv.html.tmpl new file mode 100644 index 0000000..b57aae3 --- /dev/null +++ b/template/en/default/admin/params/authenv.html.tmpl @@ -0,0 +1,29 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "AuthEnv Extension" + desc = "Set up your Bugzilla::AuthEnv extension" +%] + +[% param_descs = { + allowloginid => "Enable or disable maintenance of the login ID." } +%] diff --git a/template/en/default/admin/params/bugchange.html.tmpl b/template/en/default/admin/params/bugchange.html.tmpl new file mode 100644 index 0000000..9f456ee --- /dev/null +++ b/template/en/default/admin/params/bugchange.html.tmpl @@ -0,0 +1,51 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "$terms.Bug Change Policies" + desc = "Set up $terms.bug change policies" +%] + +[% param_descs = { + duplicate_or_move_bug_status => "When $terms.abug is marked as a duplicate of another one " _ + "or is moved to another installation, use this $terms.bug status." + + letsubmitterchoosepriority => "If this is on, then people submitting $terms.bugs can " _ + "choose an initial priority for that ${terms.bug}. " _ + "If off, then all $terms.bugs initially have the default " _ + "priority selected below.", + + letsubmitterchoosemilestone => "If this is on, then people submitting $terms.bugs can " _ + "choose the Target Milestone for that ${terms.bug}. " _ + "If off, then all $terms.bugs initially have the default " _ + "milestone for the product being filed in.", + + musthavemilestoneonaccept => "If you are using Target Milestone, do you want to require that " _ + "the milestone be set in order for a user to ACCEPT a ${terms.bug}?", + + commentonchange_resolution => "If this option is on, the user needs to enter a short " _ + "comment if the resolution of the $terms.bug changes.", + + commentonduplicate => "If this option is on, the user needs to enter a short comment " _ + "if the $terms.bug is marked as duplicate.", + + noresolveonopenblockers => "Don\'t allow $terms.bugs to be resolved as fixed " _ + "if they have unresolved dependencies." } +%] diff --git a/template/en/default/admin/params/bugfields.html.tmpl b/template/en/default/admin/params/bugfields.html.tmpl new file mode 100644 index 0000000..794f925 --- /dev/null +++ b/template/en/default/admin/params/bugfields.html.tmpl @@ -0,0 +1,66 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "$terms.Bug Fields" + desc = "Choose fields you want to display" +%] + +[% param_descs = { + useclassification => "If this is on, $terms.Bugzilla will associate each product with a " _ + "specific classification. But you must have 'editclassification' " _ + "permissions enabled in order to edit classifications.", + + usetargetmilestone => "Do you wish to use the Target Milestone field?", + + useqacontact => "Do you wish to use the QA Contact field?", + + usestatuswhiteboard => "Do you wish to use the Status Whiteboard field?", + + usevotes => "Do you wish to allow users to vote for ${terms.bugs}? Note that in order " _ + "for this to be effective, you will have to change the maximum " _ + "votes allowed in a product to be non-zero in " _ + "<a href=\"editproducts.cgi\">the product edit page</a>.", + + usebugaliases => "Do you wish to use $terms.bug aliases, which allow you to assign " _ + "$terms.bugs an easy-to-remember name by which you can refer to them?", + + use_see_also => + "Do you wish to use the See Also field? It allows you refer to" + _ " $terms.bugs in other installations. Even if you disable this field," + _ " $terms.bug relationships (URLs) already set on $terms.bugs will" + _ " still appear and can be removed.", + + defaultpriority => "This is the priority that newly entered $terms.bugs are set to.", + + defaultseverity => "This is the severity that newly entered $terms.bugs are set to.", + + defaultplatform => "This is the platform that is preselected on the $terms.bug " _ + "entry form.<br> " _ + "You can leave this empty: " _ + "$terms.Bugzilla will then use the platform that the browser " _ + "reports to be running on as the default.", + + defaultopsys => "This is the operating system that is preselected on the $terms.bug " _ + "entry form.<br> " _ + "You can leave this empty: " _ + "$terms.Bugzilla will then use the operating system that the browser " _ + "reports to be running on as the default." } +%] diff --git a/template/en/default/admin/params/bugmove.html.tmpl b/template/en/default/admin/params/bugmove.html.tmpl new file mode 100644 index 0000000..911bc33 --- /dev/null +++ b/template/en/default/admin/params/bugmove.html.tmpl @@ -0,0 +1,49 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "$terms.Bug Moving" + desc = "Set up parameters to move $terms.bugs to/from another installation" +%] + +[% param_descs = { + "move-enabled" => "If this is on, $terms.Bugzilla will allow certain people " _ + "to move $terms.bugs to the defined database.", + + "move-button-text" => "The text written on the Move button. Explain where the $terms.bug is " _ + "being moved to.", + + "move-to-url" => "The URL of the database we allow some of our $terms.bugs to be moved to.", + + "move-to-address" => "To move ${terms.bugs}, an email is sent to the target database. This is " _ + "the email address that database uses to listen for incoming ${terms.bugs}.", + + "moved-from-address" => "To move ${terms.bugs}, an email is sent to the target database. This is " _ + "the email address from which this mail, and error messages are sent.", + + movers => "A list of people with permission to move $terms.bugs and reopen moved " _ + "${terms.bugs} (in case the move operation fails).", + + "moved-default-product" => "$terms.Bugs moved from other databases to here are assigned " _ + "to this product.", + + "moved-default-component" => "$terms.Bugs moved from other databases to here are assigned " _ + "to this component." } +%] diff --git a/template/en/default/admin/params/common.html.tmpl b/template/en/default/admin/params/common.html.tmpl new file mode 100644 index 0000000..18aa1fb --- /dev/null +++ b/template/en/default/admin/params/common.html.tmpl @@ -0,0 +1,150 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Frédéric Buclin <LpSolit@gmail.com> + # Marc Schumann <wurblzap@gmail.com> + #%] +[%# INTERFACE: + # panel: hash representing the current panel. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% sortlist_separator = '---' %] + +<dl> + [% FOREACH param = panel.param_list %] + <dt><a name="[% param.name FILTER html %]">[% param.name FILTER html %]</a></dt> + <dd>[% panel.param_descs.${param.name} FILTER none %] + <p> + [% IF param.type == "t" %] + <input type="text" size="80" name="[% param.name FILTER html %]" + id="[% param.name FILTER html %]" value="[% Param(param.name) FILTER html %]"> + [% ELSIF param.type == "p" %] + <input type="password" size="80" name="[% param.name FILTER html %]" + id="[% param.name FILTER html %]" value="[% Param(param.name) FILTER html %]" + autocomplete="off"> + [% ELSIF param.type == "l" %] + <textarea name="[% param.name FILTER html %]" id="[% param.name FILTER html %]" + rows="10" cols="80">[% Param(param.name) FILTER html %]</textarea> + [% ELSIF param.type == "b" %] + <input type="radio" name="[% param.name FILTER html %]" id="[% param.name FILTER html %]-on" + value=1 [% "checked=\"checked\"" IF Param(param.name) %]> + <label for="[% param.name FILTER html %]-on">On</label> + <input type="radio" name="[% param.name FILTER html %]" id="[% param.name FILTER html %]-off" + value=0 [% "checked=\"checked\"" IF !Param(param.name) %]> + <label for="[% param.name FILTER html %]-off">Off</label> + [% ELSIF param.type == "m" %] + [% boxSize = 5 %] + [% boxSize = param.choices.size IF param.choices.size < 5 %] + + <select multiple="multiple" size="[% boxSize FILTER html %]" + name="[% param.name FILTER html %]" id="[% param.name FILTER html %]"> + [% FOREACH item = param.choices %] + <option value="[% item FILTER html %]" + [% " selected=\"selected\"" IF lsearch(Param(param.name), item) != -1 %]> + [% item FILTER html %] + </option> + [% END %] + </select> + [% ELSIF param.type == "o" %] + <script type="text/javascript"><!-- + document.write("<span style=\"display: none\">"); + // --> + </script> + <input id="input_[% param.name FILTER html %]" size="80" + name="[% param.name FILTER html %]" + value="[% Param(param.name) FILTER html %]"><br> + <script type="text/javascript"><!-- + document.write("<\/span>"); + // --> + </script> + [% boxSize = 7 %] + [% boxSize = 3 + param.choices.size IF param.choices.size < 7 %] + [% plist = Param(param.name).split(',') %] + + <script type="text/javascript"><!-- + document.write( + '<table>' + + ' <tr>' + + ' <td rowspan="2">' + + ' <select id="select_[% param.name FILTER html %]"' + + ' size="[% boxSize FILTER html %]"' + + ' name="select_[% param.name FILTER html %]">' + + [% FOREACH item = plist %] + ' <option value="[% item FILTER html %]">[% item FILTER html %]<\/option>' + + [% END %] + ' <option class="sortlist_separator"' + + ' disabled="disabled"' + + ' value="[% sortlist_separator %]">active↑ ↓inactive<\/option>' + + [% FOREACH item = param.choices %] + [% IF lsearch(plist, item) == -1 %] + ' <option value="[% item FILTER html %]">[% item FILTER html %]<\/option>' + + [% END %] + [% END %] + ' <\/select>' + + ' <\/td>' + + ' <td style="vertical-align: bottom">' + + ' <button type="button"' + + ' onClick="sortedList_moveItem(\'[% param.name FILTER html %]\', -1, \'[% sortlist_separator %]\');">↑<\/button>' + + ' <\/td>' + + ' <\/tr>' + + ' <tr>' + + ' <td style="vertical-align: top">' + + ' <button type="button"' + + ' onClick="sortedList_moveItem(\'[% param.name FILTER html %]\', +1, \'[% sortlist_separator %]\');">↓<\/button>' + + ' <\/td>' + + ' <\/tr>' + + '<\/table>'); + // --> + </script> + [% ELSIF param.type == "s" %] + <select name="[% param.name FILTER html %]" id="[% param.name FILTER html %]"> + [% FOREACH item = param.choices %] + <option value="[% item FILTER html %]" + [% " selected=\"selected\"" IF item == Param(param.name) %]> + [% IF param.name == "defaultseverity" %] + [% display_value("bug_severity", item) FILTER html %] + [% ELSIF param.name == "defaultplatform" %] + [% display_value("rep_platform", item) FILTER html %] + [% ELSIF param.name == "defaultopsys" %] + [% display_value("op_sys", item) FILTER html %] + [% ELSIF param.name == "duplicate_or_move_bug_status" %] + [% display_value("bug_status", item) FILTER html %] + [% ELSE %] + [% item FILTER html %] + [% END %] + </option> + [% END %] + </select> + [% ELSE %] + <font color="red"> + <blink>Unknown param type [% param.type FILTER html %]!!!</blink> + </font> + [% END %] + </p> + [% UNLESS param.no_reset %] + <p> + <input type="checkbox" name="reset-[% param.name FILTER html %]" + id="reset-[% param.name FILTER html %]"> + <label for="reset-[% param.name FILTER html %]">Reset</label> + </p> + [% END %] + <hr> + </dd> + [% END %] +</dl> diff --git a/template/en/default/admin/params/core.html.tmpl b/template/en/default/admin/params/core.html.tmpl new file mode 100644 index 0000000..b1578f4 --- /dev/null +++ b/template/en/default/admin/params/core.html.tmpl @@ -0,0 +1,48 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% + title = "Required Settings" + desc = "Settings that are required for proper operation of $terms.Bugzilla" +%] + +[% param_descs = { + urlbase => "The URL that is the common initial leading part of all $terms.Bugzilla " _ + "URLs.", + + sslbase => "The URL that is the common initial leading part of all HTTPS " _ + "(SSL) $terms.Bugzilla URLs.", + + ssl_redirect => + "When this is enabled, $terms.Bugzilla will ensure that every page is" + _ " accessed over SSL, by redirecting any plain HTTP requests to HTTPS" + _ " using the <tt>sslbase</tt> parameter. Also, when this is enabled," + _ " $terms.Bugzilla will send out links using <tt>sslbase</tt> in emails" + _ " instead of <tt>urlbase</tt>.", + + cookiepath => "Path, relative to your web document root, to which to restrict " _ + "$terms.Bugzilla cookies. Normally this is the URI portion of your URL " _ + "base. Begin with a / (single slash mark). For instance, if " _ + "$terms.Bugzilla serves from 'http://www.somedomain.com/bugzilla/', set " _ + "this parameter to /bugzilla/. Setting it to / will allow " _ + "all sites served by this web server or virtual host to read " _ + "$terms.Bugzilla cookies.", +} %] diff --git a/template/en/default/admin/params/dependencygraph.html.tmpl b/template/en/default/admin/params/dependencygraph.html.tmpl new file mode 100644 index 0000000..181cced --- /dev/null +++ b/template/en/default/admin/params/dependencygraph.html.tmpl @@ -0,0 +1,49 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "Dependency Graphs" + desc = "Optional setup for dependency graphing" +%] + +[% param_descs = { + webdotbase => "It is possible to show graphs of dependent ${terms.bugs}. You may set + this parameter to any of the following: + <ul> + <li> + A complete file path to 'dot' (part of + <a href=\"http://www.graphviz.org\">GraphViz</a>) will + generate the graphs locally. + </li> + <li> + A URL prefix pointing to an installation of the + <a href=\"http://www.research.att.com/~north/cgi-bin/webdot.cgi\">webdot + package</a> will generate the graphs remotely. + </li> + <li> + A blank value will disable dependency graphing. + </li> + </ul> + The default value is a publicly-accessible webdot server. If you change + this value, make certain that the webdot server can read files from your + webdot directory. On Apache you do this by editing the .htaccess file, + for other systems the needed measures may vary. You can run checksetup.pl + to recreate the .htaccess file if it has been lost."} +%]
\ No newline at end of file diff --git a/template/en/default/admin/params/editparams.html.tmpl b/template/en/default/admin/params/editparams.html.tmpl new file mode 100644 index 0000000..21fa9fa --- /dev/null +++ b/template/en/default/admin/params/editparams.html.tmpl @@ -0,0 +1,121 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[%# INTERFACE: + # panels: array of hashes representing the panels available. + # param_changed: array of parameters which have been changed. + # shutdown_is_active: boolean; is true when 'shutdownhtml' has been turned on. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% curpanel = -1 %] +[% panels = panels.nsort('sortkey') %] + +[% FOREACH panel = panels %] + [% PROCESS "admin/params/${panel.name}.html.tmpl" + params = panel.param_list %] + [% panel.title = title %] + [% panel.desc = desc %] + [% panel.param_descs = param_descs %] + [% IF panel.current %][% curpanel = loop.index %][% END %] +[% END %] + +[% current_panel = panels.$curpanel %] + +[%# We cannot call header.html.tmpl earlier as we have to know + which panel is active first, in order to get its title %] + +[% title = BLOCK %] + [% IF curpanel == -1 %] + Parameters: Index + [% ELSE %] + Configuration: + [%+ current_panel.title FILTER html %] + [% END %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + message = message + style_urls = ['skins/standard/params.css'] + javascript_urls = ['js/params.js'] + doc_section = "parameters.html" +%] + +<table border="0" width="100%"> + <tr> + <td> + [%# NAVIGATION BAR %] + <table id="menu"> + <tr> + <td class="index"> + <a href="editparams.cgi?section=index" title="Show all parameters">Index</a> + </td> + </tr> + [% FOREACH panel = panels %] + <tr> + [% IF panel.current %] + <td class="selected_section"> + <span title="[% panel.desc FILTER html %]">[% panel.title FILTER html %]</span> + </td> + [% ELSE %] + <td> + <a href="editparams.cgi?section=[% panel.name FILTER url_quote %]" + title="[% panel.desc FILTER html %]">[% panel.title FILTER html %]</a> + </td> + [% END %] + </tr> + [% END %] + </table> + </td> + <td> + [% IF curpanel == -1 %] + [% PROCESS admin/params/index.html.tmpl panels = panels %] + [% ELSE %] + + <div class="contribute"><strong>Note:</strong> + [%+ terms.Bugzilla %] is developed entirely by volunteers. The + best way to give back to the [% terms.Bugzilla %] project is + to <a href="http://www.bugzilla.org/contribute/">contribute</a> + yourself! You don't have to be a programmer to contribute, there are + lots of things that we need. + </div> + + <p> + This lets you edit the basic operating parameters of [% terms.Bugzilla %]. + Be careful!<br> + Any item you check "Reset" on will get reset to its default value. + </p> + + [%# CONTENT PANEL %] + <form method="post" action="editparams.cgi"> + [% PROCESS admin/params/common.html.tmpl panel = current_panel %] + <input type="hidden" name="section" value="[% current_panel.name FILTER html %]"> + <input type="hidden" name="action" value="save"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" name="action" value="Save Changes"> + </form> + [% END %] + </td> + </tr> +</table> + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/admin/params/general.html.tmpl b/template/en/default/admin/params/general.html.tmpl new file mode 100644 index 0000000..b8c0c77 --- /dev/null +++ b/template/en/default/admin/params/general.html.tmpl @@ -0,0 +1,86 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% + title = "General" + desc = "Miscellaneous general settings that are not required." +%] + +[% param_descs = { + maintainer => + "The email address of the person who maintains this installation " + _ " of ${terms.Bugzilla}.", + + docs_urlbase => + "The URL that is the common initial leading part of all" + _ " $terms.Bugzilla documentation URLs. It may be an absolute URL," + _ " or a URL relative to the <tt>urlbase</tt> parameter. Leave this" + _ " empty to suppress links to the documentation." + _ "'%lang%' will be replaced by user's preferred language (if" + _ " documentation is available in that language).", + + utf8 => + "Use UTF-8 (Unicode) encoding for all text in ${terms.Bugzilla}. New" + _ " installations should set this to true to avoid character encoding" + _ " problems. <strong>Existing databases should set this to true" + _ " only after the data has been converted from existing legacy" + _ " character encodings to UTF-8, using the <kbd>contrib/recode.pl</kbd>" + _ " script</strong>." + _ " <p>Note that if you turn this parameter from "off" to" + _ " "on", you must re-run checksetup.pl immediately" + _ " afterward.</p>", + + shutdownhtml => + "If this field is non-empty, then $terms.Bugzilla will be completely" + _ " disabled and this text will be displayed instead of all the" + _ " $terms.Bugzilla pages.", + + announcehtml => + "If this field is non-empty, then $terms.Bugzilla will" + _ " display whatever is in this field at the top of every" + _ " HTML page. The HTML you put in this field is not wrapped or" + _ " enclosed in anything. You might want to wrap it inside a" + _ "<tt><div></tt>. Give the div <em>id=\"message\"</em> to get" + _ " green text inside a red box, or <em>class=\"bz_private\"</em> for" + _ " dark red on a red background. Anything defined in " + _ " <tt>skins/standard/global.css</tt> or <tt>skins/custom/global.css</tt>" + _ " will work. To get centered text, use <em>style=\"text-align: " + _ " center;\"</em>.", + + upgrade_notification => + "$terms.Bugzilla can inform you when a new release is available." + _ " The notification will appear on the $terms.Bugzilla homepage," + _ " for administrators only." + _ " <ul><li>'development_snapshot' notifies you about the development " + _ " snapshot that has been released.</li>" + _ " <li>'latest_stable_release' notifies you about the most recent" + _ " release available on the most recent stable branch. This branch" + _ " may be different from the branch your installation is based on.</li>" + _ " <li>'stable_branch_release' notifies you only about new releases" + _ " corresponding to the branch your installation is based on." + _ " If you are running a release candidate, you will get a notification" + _ " for newer release candidates too.</li>" + _ " <li>'disabled' will never notify you about new releases and no" + _ " connection will be established to a remote server.</li></ul>" + _ " <p>Note that if your $terms.Bugzilla server requires a proxy to" + _ " access the Internet, you may also need to set the <tt>proxy_url</tt>" + _ " parameter in the Advanced section.</p>", +} %] diff --git a/template/en/default/admin/params/groupsecurity.html.tmpl b/template/en/default/admin/params/groupsecurity.html.tmpl new file mode 100644 index 0000000..ab39a91 --- /dev/null +++ b/template/en/default/admin/params/groupsecurity.html.tmpl @@ -0,0 +1,56 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "Group Security" + desc = "Decide how you will use Security Groups" +%] + +[% param_descs = { + makeproductgroups => "If this is on, $terms.Bugzilla will associate $terms.abug group " _ + "with each product in the database, and use it for querying ${terms.bugs}.", + + chartgroup => "The name of the group of users who can use the 'New Charts' " _ + "feature. Administrators should ensure that the public categories " _ + "and series definitions do not divulge confidential information " _ + "before enabling this for an untrusted population. If left blank, " _ + "no users will be able to use New Charts.", + + insidergroup => "The name of the group of users who can see/change private " _ + "comments and attachments.", + + timetrackinggroup => "The name of the group of users who can see/change time tracking " _ + "information.", + + querysharegroup => "The name of the group of users who can share their " _ + "saved searches with others.", + + usevisibilitygroups => "Do you wish to restrict visibility of users to members of " _ + "specific groups?", + + strict_isolation => "Don't allow users to be assigned to, " _ + "be qa-contacts on, " _ + "be added to CC list, " _ + "or make or remove dependencies " _ + "involving any bug that is in a product on which that " _ + "user is forbidden to edit.", + + } +%] diff --git a/template/en/default/admin/params/index.html.tmpl b/template/en/default/admin/params/index.html.tmpl new file mode 100644 index 0000000..1629c8c --- /dev/null +++ b/template/en/default/admin/params/index.html.tmpl @@ -0,0 +1,51 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Frédéric Buclin <LpSolit@gmail.com> + # Nitish Bezzala <nbezzala@yahoo.com> + #%] + +<p> + All parameters are displayed below, per section. + If you cannot find one from here, then the parameter does not exist. +</p> + +<div align="center"> + <table> + <tr> + <th>Parameter</th> + <th>Section</th> + </tr> + [% FOREACH panel = panels %] + [% FOREACH param = panel.param_list.sort('name') %] + <tr> + <td> + <a href="editparams.cgi?section= + [%- panel.name FILTER url_quote %]#[% param.name FILTER url_quote %]"> + [% param.name FILTER html %]</a> + </td> + <td> + [% panel.title FILTER html %] + </td> + </tr> + [% END %] + <tr> + <td> </td><td> </td> + </tr> + [% END %] + </table> +</div> diff --git a/template/en/default/admin/params/ldap.html.tmpl b/template/en/default/admin/params/ldap.html.tmpl new file mode 100644 index 0000000..cdc585d --- /dev/null +++ b/template/en/default/admin/params/ldap.html.tmpl @@ -0,0 +1,58 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "LDAP" + desc = "Configure this first before choosing LDAP as an authentication method" +%] + +[% param_descs = { + LDAPserver => "The name (and optionally port) of your LDAP server " _ + "(e.g. ldap.company.com, or ldap.company.com:portnum). " _ + "URI syntax can also be used, such as "_ + "ldaps://ldap.company.com (for a secure connection) or " _ + "ldapi://%2fvar%2flib%2fldap_sock (for a socket-based " _ + "local connection. Multiple hostnames or URIs can be comma " _ + "separated; each will be tried in turn until a connection is " _ + "established.", + + LDAPstarttls => "Whether to require encrypted communication once a normal " _ + "LDAP connection is achieved with the server.", + + LDAPbinddn => "If your LDAP server requires that you use a binddn and password " _ + "instead of binding anonymously, enter it here " _ + "(e.g. cn=default,cn=user:password). " _ + "Leave this empty for the normal case of an anonymous bind.", + + LDAPBaseDN => "The BaseDN for authenticating users against " _ + "(e.g. ou=People,o=Company).", + + LDAPuidattribute => "The name of the attribute containing the user's login name.", + + LDAPmailattribute => "The name of the attribute of a user in your " _ + "directory that contains the email address, to be " _ + "used as $terms.Bugzilla username. If this parameter " _ + "is empty, $terms.Bugzilla will use the LDAP username"_ + " as the $terms.Bugzilla username. You may also want" _ + " to set the \"emailsuffix\" parameter, in this case.", + + LDAPfilter => "LDAP filter to AND with the <tt>LDAPuidattribute</tt> for " _ + "filtering the list of valid users." } +%] diff --git a/template/en/default/admin/params/mta.html.tmpl b/template/en/default/admin/params/mta.html.tmpl new file mode 100644 index 0000000..8533257 --- /dev/null +++ b/template/en/default/admin/params/mta.html.tmpl @@ -0,0 +1,86 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "Email" + desc = "How will outgoing mail be delivered?" +%] + +[% param_descs = { + mail_delivery_method => "Defines how email is sent, or if it is sent at all.<br> + <ul> + <li> + 'Sendmail', 'SMTP' and 'Qmail' are all MTAs. + You need to install a third-party sendmail replacement if + you want to use sendmail on Windows. + </li> + <li> + 'Test' is useful for debugging: all email is stored + in 'data/mailer.testfile' instead of being sent. + </li> + <li> + 'none' will completely disable email. $terms.Bugzilla continues + to act as though it is sending mail, but nothing is sent or + stored. + </li> + </ul>", + + mailfrom => "The email address of the $terms.Bugzilla mail daemon. Some email systems " _ + "require this to be a valid email address.", + + use_mailer_queue => "In a large $terms.Bugzilla installation, updating" + _ " $terms.bugs can be very slow, because $terms.Bugzilla sends all" + _ " email at once. If you enable this parameter, $terms.Bugzilla will" + _ " queue all mail and then send it in the background. This requires" + _ " that you have installed certain Perl modules (as listed by" + _ " <code>checksetup.pl</code> for this feature), and that you are" + _ " running the <code>jobqueue.pl</code> daemon (otherwise your mail" + _ " won't get sent). This affects all mail sent by $terms.Bugzilla," + _ " not just $terms.bug updates.", + + sendmailnow => "Sites using anything older than version 8.12 of 'sendmail' " _ + "can achieve a significant performance increase in the " _ + "UI -- at the cost of delaying the sending of mail -- by " _ + "disabling this parameter. Sites using 'sendmail' 8.12 or " _ + "higher should leave this on, as they will see no benefit from " _ + "turning it off. Sites using an MTA other than 'sendmail' " _ + "<b>must</b> leave it on, or no $terms.bug mail will be sent.", + + smtpserver => "The SMTP server address (if using SMTP for mail delivery).", + + smtp_username => "The username to pass to the SMTP server for SMTP authentication. " _ + "Leave this field empty if your SMTP server doesn't require authentication.", + + smtp_password => "The password to pass to the SMTP server for SMTP authentication. " _ + "This field has no effect if the smtp_username parameter is left empty.", + + smtp_debug => "If enabled, this will print detailed information to your" _ + " web server's error log about the communication between" _ + " $terms.Bugzilla and your SMTP server. You can use this to" _ + " troubleshoot email problems.", + + whinedays => "The number of days that we'll let a $terms.bug sit untouched in a NEW " _ + "state before our cronjob will whine at the owner.<br> " _ + "Set to 0 to disable whining.", + + globalwatchers => "A comma-separated list of users who should receive a " _ + "copy of every notification mail the system sends." } + +%] diff --git a/template/en/default/admin/params/patchviewer.html.tmpl b/template/en/default/admin/params/patchviewer.html.tmpl new file mode 100644 index 0000000..389acc1 --- /dev/null +++ b/template/en/default/admin/params/patchviewer.html.tmpl @@ -0,0 +1,64 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "Patch Viewer" + desc = "Set up third-party applications to run with PatchViewer" +%] + +[% param_descs = { + cvsroot => "The <a href=\"http://www.cvshome.org\">CVS</a> root that most " _ + "users of your system will be using for 'cvs diff'. Used in " _ + "Patch Viewer ('Diff' option on patches) to figure out where " _ + "patches are rooted even if users did the 'cvs diff' from " _ + "different places in the directory structure. (NOTE: if your " _ + "CVS repository is remote and requires a password, you must " _ + "either ensure the $terms.Bugzilla user has done a 'cvs login' or " _ + "specify the password " _ + "<a href=\"http://www.cvshome.org/docs/manual/cvs_2.html#SEC26\">as " _ + "part of the CVS root</a>.) Leave this blank if you have no " _ + "CVS repository.", + + cvsroot_get => "The CVS root $terms.Bugzilla will be using to get patches from. " _ + "Some installations may want to mirror their CVS repository on " _ + "the $terms.Bugzilla server or even have it on that same server, and " _ + "thus the repository can be the local file system (and much " _ + "faster). Make this the same as cvsroot if you don't " _ + "understand what this is (if cvsroot is blank, make this blank too).", + + bonsai_url => "The URL to a <a href=\"http://www.mozilla.org/bonsai.html\">Bonsai</a> " _ + "server containing information about your CVS repository. " _ + "Patch Viewer will use this information to create links to " _ + "bonsai's blame for each section of a patch (it will append " _ + "'/cvsblame.cgi?...' to this url). Leave this blank if you " _ + "don't understand what this is.", + + lxr_url => "The URL to an <a href=\"http://sourceforge.net/projects/lxr\">LXR</a> server " _ + "that indexes your CVS repository. Patch Viewer will use this " _ + "information to create links to LXR for each file in a patch. " _ + "Leave this blank if you don't understand what this is.", + + lxr_root => "Some LXR installations do not index the CVS repository from the root -- " _ + "<a href=\"http://lxr.mozilla.org/mozilla\">Mozilla's</a>, for " _ + "example, starts indexing under <code>mozilla/</code>. This " _ + "means URLs are relative to that extra path under the root. " _ + "Enter this if you have a similar situation. Leave it blank " _ + "if you don't know what this is." } +%] diff --git a/template/en/default/admin/params/query.html.tmpl b/template/en/default/admin/params/query.html.tmpl new file mode 100644 index 0000000..34ea043 --- /dev/null +++ b/template/en/default/admin/params/query.html.tmpl @@ -0,0 +1,58 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "Query Defaults" + desc = "Default options for query and $terms.bug lists" +%] + +[% param_descs = { + quip_list_entry_control => "Controls how easily users can add entries to the quip list. + <ul> + <li> + open - Users may freely add to the quip list, and + their entries will immediately be available for viewing. + </li> + <li> + moderated - quips can be entered, but need to be approved + by an admin before they will be shown. + </li> + <li> + closed - no new additions to the quips list are allowed. + </li> + </ul>", + + mostfreqthreshold => "The minimum number of duplicates $terms.abug needs to show up on the " _ + "<a href=\"duplicates.cgi\">most frequently reported $terms.bugs page</a>. " _ + "If you have a large database and this page takes a long time to " _ + "load, try increasing this number.", + + mybugstemplate => "This is the URL to use to bring up a simple 'all of my $terms.bugs' " _ + "list for a user. %userid% will get replaced with the login name of a user.", + + defaultquery => "This is the default query that initially comes up when you " _ + "access the advanced query page. It's in URL parameter " _ + "format, which makes it hard to read. Sorry!", + + specific_search_allow_empty_words => + "Whether to allow a search on the 'Simple Search' page with an empty" + _ " 'Words' field.", + +} %] diff --git a/template/en/default/admin/params/radius.html.tmpl b/template/en/default/admin/params/radius.html.tmpl new file mode 100644 index 0000000..ef2282d --- /dev/null +++ b/template/en/default/admin/params/radius.html.tmpl @@ -0,0 +1,54 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Marc Schumann. + # Portions created by Marc Schumann are Copyright (c) 2007 Marc Schumann. + # All rights reserved. + # + # Contributor(s): Marc Schumann <wurblzap@gmail.com> + #%] +[% + title = "RADIUS" + desc = "Configure this first before choosing RADIUS as an authentication method" +%] + +[% param_descs = { + RADIUS_server => "The name (and optionally port) of your RADIUS server " _ + "(e.g. <code>radius.company.com</code>, or " _ + "<code>radius.company.com:portnum</code>).<br>" _ + "Required only if " _ + "<a href=\"?section=auth#user_verify_class\">the " _ + "<code>user_verify_class</code> parameter</a> contains " _ + "<code>RADIUS</code>.", + + RADIUS_secret => "Your RADIUS server's secret.<br>" _ + "Required only if " _ + "<a href=\"?section=auth#user_verify_class\">the " _ + "<code>user_verify_class</code> parameter</a> contains " _ + "<code>RADIUS</code>.", + + RADIUS_NAS_IP => "The NAS-IP-Address attribute to be used when exchanging " _ + "data with your RADIUS server. " _ + "If unspecified, <code>127.0.0.1</code> will be used.<br>" _ + "Useful only if " _ + "<a href=\"?section=auth#user_verify_class\">the " _ + "<code>user_verify_class</code> parameter</a> " _ + "contains <code>RADIUS</code>.", + + RADIUS_email_suffix => "Suffix to append to a RADIUS user name to form an " _ + "e-mail address.<br>" _ + "Useful only if " _ + "<a href=\"?section=auth#user_verify_class\">the " _ + "<code>user_verify_class</code> parameter</a> " _ + "contains <code>RADIUS</code>.", + } +%] diff --git a/template/en/default/admin/params/shadowdb.html.tmpl b/template/en/default/admin/params/shadowdb.html.tmpl new file mode 100644 index 0000000..c812284 --- /dev/null +++ b/template/en/default/admin/params/shadowdb.html.tmpl @@ -0,0 +1,49 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "Shadow Database" + desc = "An optional hack to increase database performance" +%] + +[% param_descs = { + shadowdbhost => "The host the shadow database is on.", + + shadowdbport => "The port the shadow database is on. Ignored if " _ + "<tt>shadowdbhost</tt> is blank. Note: if the host is the local " _ + "machine, then MySQL will ignore this setting, and you must " _ + "specify a socket below.", + + shadowdbsock => "The socket used to connect to the shadow database, if the host " _ + "is the local machine. This setting is required because MySQL " _ + "ignores the port specified by the client and connects using " _ + "its compiled-in socket path (on unix machines) when connecting " _ + "from a client to a local server. If you leave this blank, and " _ + "have the database on localhost, then the <tt>shadowdbport</tt> " _ + "will be ignored.", + + shadowdb => "If non-empty, then this is the name of another database in " _ + "which $terms.Bugzilla will use as a read-only copy of everything. " _ + "This is done so that long slow read-only operations can be used " _ + "against this db, and not lock up things for everyone else. This " _ + "database is on the <tt>shadowdbhost</tt>, and must exist. " _ + "$terms.Bugzilla does not update it, if you use this parameter, then " _ + "you need to set up replication for your database." } +%] diff --git a/template/en/default/admin/params/usermatch.html.tmpl b/template/en/default/admin/params/usermatch.html.tmpl new file mode 100644 index 0000000..54f1509 --- /dev/null +++ b/template/en/default/admin/params/usermatch.html.tmpl @@ -0,0 +1,39 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Dave Miller <justdave@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] +[% + title = "User Matching" + desc = "Set up your user matching policies" +%] + +[% param_descs = { + usemenuforusers => "If this option is set, $terms.Bugzilla will offer you a list " _ + "to select from (instead of a text entry field) where a user " _ + "needs to be selected. This option should not be enabled on " _ + "sites where there are a large number of users.", + + maxusermatches => "Search for no more than this many matches.<br> " _ + "If set to '1', no users will be displayed on ambiguous matches. " _ + "This is useful for user privacy purposes.<br> " _ + "A value of zero means no limit.", + + confirmuniqueusermatch => "Whether a confirmation screen should be displayed when only " _ + "one user matches a search entry." } +%] diff --git a/template/en/default/admin/products/confirm-delete.html.tmpl b/template/en/default/admin/products/confirm-delete.html.tmpl new file mode 100644 index 0000000..f4a04b8 --- /dev/null +++ b/template/en/default/admin/products/confirm-delete.html.tmpl @@ -0,0 +1,266 @@ +[%# 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: + # product: Bugzilla::Product object; The product + # + # (classification fields available if Param('useclassification') is enabled:) + # + # classification: Bugzilla::Classification object; The classification + # the product is in + # + #%] + +[% title = BLOCK %]Delete Product '[% product.name FILTER html %]' +[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] +%] + +<table border="1" cellpadding="4" cellspacing="0"> + <tr bgcolor="#6666FF"> + <th valign="top" align="left">Field</th> + <th valign="top" align="left">Value</th> + </tr> + + [% IF Param('useclassification') %] + <tr> + <td>Classification:</td> + <td>[% classification.name FILTER html %]</td> + </tr> + <tr> + <td>Classification Description:</td> + [%# descriptions are intentionally not filtered to allow html content %] + <td> + [% IF classification.description %] + [% classification.description FILTER html_light %] + [% ELSE %] + <span style="color: red">missing</span> + [% END %] + </td> + </tr> + [% END %] + + <tr> + <td valign="top">Product:</td> + <td valign="top"> + <a href="editproducts.cgi?product=[% product.name FILTER url_quote %]"> + [% product.name FILTER html %] + </a> + </td> + </tr> + <tr> + <td valign="top">Description:</td> + [%# descriptions are intentionally not filtered to allow html content %] + <td valign="top"> + [% IF product.description %] + [% product.description FILTER html_light %] + [% ELSE %] + <span style="color: red">missing</span> + [% END %] + </td> + </tr> + + [% IF Param('usetargetmilestone') %] + <tr> + <td>Milestone URL:</td> + <td> + [% IF product.milestone_url %] + <a href="[% product.milestone_url FILTER html %]"> + [%- product.milestone_url FILTER html %] + </a> + [% ELSE %] + none + [% END %] + </td> + </tr> + [% END %] + + <tr> + <td>Closed for [% terms.bugs %]:</td> + <td> + [% IF product.is_active %] + open + [% ELSE %] + closed + [% END %] + </td> + </tr> + + <tr> + <td> + [% IF product.components.size > 0 %] + <a href="editcomponents.cgi?product=[% product.name FILTER url_quote %]" + title="Edit components for product '[% product.name FILTER html %]'"> + Components: + </a> + [% ELSE %] + Components: + [% END %] + </td> + <td> + [% IF product.components.size > 0 %] + <table> + [% FOREACH c = product.components %] + <tr> + <th align="right">[% c.name FILTER html %]:</th> + [%# descriptions are intentionally not filtered to allow html content %] + <td> + [% IF c.description %] + [% c.description FILTER html_light %] + [% ELSE %] + <span style="color: red">missing</span> + [% END %] + </td> + </tr> + [% END %] + </table> + [% ELSE %] + none + [% END %] + </td> + </tr> + + <tr> + <td> + [% IF product.versions.size > 0 %] + <a href="editversions.cgi?product=[%- product.name FILTER url_quote %]"> + Versions: + </a> + [% ELSE %] + Versions: + [% END %] + </td> + <td> + [% IF product.versions.size > 0 %] + [% FOREACH v = product.versions %] + [% v.name FILTER html %]<br> + [% END %] + [% ELSE %] + none + [% END %] + </td> + </tr> + + + [% IF Param('usetargetmilestone') %] + <tr> + <td valign="top"> + [% IF product.milestones.size > 0 %] + <a href="editmilestones.cgi?product=[%- product.name FILTER url_quote %]"> + Milestones: + </a> + [% ELSE %] + Milestones: + [% END %] + </td> + <td> + [% IF product.milestones.size > 0 %] + [% FOREACH m = product.milestones %] + [% m.name FILTER html %]<br> + [% END %] + [% ELSE %] + none + [% END %] + </td> + </tr> + [% END %] + + <tr> + <td>[% terms.Bugs %]:</td> + <td> + [% IF product.bug_count %] + <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 %] + none + [% END %] + </td> + </tr> +</table> + +<h2>Confirmation</h2> + +[% IF product.bug_count %] + + [% IF !Param("allowbugdeletion") %] + + <p>Sorry, there + + [% IF product.bug_count > 1 %] + are [% product.bug_count FILTER html %] [%+ terms.bugs %] + [% ELSE %] + is 1 [% terms.bug %] + [% END %] + + outstanding for this product. You must reassign + + [% IF product.bug_count > 1 %] + those [% terms.bugs %] + [% ELSE %] + that [% terms.bug %] + [% END %] + + to another product before you can delete this one.</p> + + [% ELSE %] + + <table border="0" cellpadding="20" width="70%" bgcolor="red"> + <tr> + <td> + There + [% IF product.bug_count > 1 %] + are [% product.bug_count FILTER html %] [%+ terms.bugs %] + [% ELSE %] + is 1 [% terms.bug %] + [% END %] + entered for this product! When you delete this + product, <b><blink>ALL</blink></b> stored [% terms.bugs %] and + their history will be deleted, too. + </td> + </tr> + </table> + + [% END %] + +[% END %] + +[% Hook.process("confirmation") %] + +[% IF product.bug_count == 0 || Param('allowbugdeletion') %] + + <p>Do you really want to delete this product?</p> + + <form method="post" action="editproducts.cgi"> + <input type="checkbox" id="delete_series" name="delete_series" value=1> + <label for="delete_series"> + Delete all related series (you can also delete them later, by visiting + the <a href="chart.cgi?category=[% product.name FILTER html %]">New Charts page</a>.) + </label><p> + <input type="submit" id="delete" value="Yes, delete"> + <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 %]"> + </form> + +[% END %] + +[% PROCESS admin/products/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/create.html.tmpl b/template/en/default/admin/products/create.html.tmpl new file mode 100644 index 0000000..f4a2161 --- /dev/null +++ b/template/en/default/admin/products/create.html.tmpl @@ -0,0 +1,69 @@ +[%# 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): Gabriel S. Oliveira <gabriel@async.com.br> + #%] + +[%# INTERFACE: + # classification: Bugzilla::Classification object; If classifications + # are enabled, then this is + # the currently selected classification + # + #%] + +[% title = BLOCK %]Add Product[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] + javascript_urls = ['js/util.js'] +%] + +[% DEFAULT + product.votesperuser = "0", + product.maxvotesperbug = "10000", + product.votes_to_confirm = "0", + product.is_active = 1, + version = "unspecified", + product.defaultmilestone = constants.DEFAULT_MILESTONE + product.allows_unconfirmed = 0 +%] + +<form method="post" action="editproducts.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + + [% PROCESS "admin/products/edit-common.html.tmpl" %] + + <tr> + <th align="right">Version:</th> + <td><input size="64" maxlength="255" name="version" + value="[% version FILTER html %]"> + </td> + </tr> + <tr> + <th align="right">Create chart datasets for this product:</th> + <td><input type="checkbox" name="createseries" value="1"></td> + </tr> + </table> + + <input type="submit" value="Add"> + <input type="hidden" name="action" value="new"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="hidden" name="classification" + value="[% classification.name FILTER html %]"> +</form> + +[% PROCESS "admin/products/footer.html.tmpl" + no_add_product_link = 1 + no_edit_product_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/edit-common.html.tmpl b/template/en/default/admin/products/edit-common.html.tmpl new file mode 100644 index 0000000..2c94402 --- /dev/null +++ b/template/en/default/admin/products/edit-common.html.tmpl @@ -0,0 +1,112 @@ +[%# 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): Jack Nerad <jnerad@bellsouth.net> + # Tiago R. Mello <tiago@async.com.br> + # Gabriel S. Oliveira <gabriel@async.com.br> + #%] + +[%# INTERFACE: + # product: Bugzilla::Product object; The product + # + # classification: Bugzilla::Classifiation object; classification product is in. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% IF Param('useclassification') %] + <tr> + <th align="right"><b>Classification:</b></th> + <td><b>[% classification.name FILTER html %]</b></td> + </tr> +[% END %] + +<tr> + <th align="right">Product:</th> + <td><input size="64" maxlength="64" name="product" + value="[% product.name FILTER html %]"> + </td> +</tr> +<tr> + <th align="right">Description:</th> + <td><textarea rows="4" cols="64" wrap="virtual" name="description"> + [% product.description FILTER html %]</textarea> + </td> +</tr> + +[% IF Param('usetargetmilestone') -%] + <tr> + <th align="right">Default milestone:</th> + <td> + [% IF product.milestones.size %] + <select name="defaultmilestone"> + [% FOREACH m = product.milestones %] + <option value="[% m.name FILTER html %]" + [% " selected=\"selected\"" IF m.name == product.defaultmilestone %]> + [%- m.name FILTER html -%]</option> + [% END %] + </select> + [% ELSE %] + <input type="text" size="20" maxlength="20" name="defaultmilestone" + value="[% product.defaultmilestone FILTER html %]"> + [% END %] + </td> + </tr> +[% END %] + +<tr> + <th align="right">Open for [% terms.bug %] entry:</th> + <td><input type="checkbox" name="is_active" value="1" + [% ' checked="checked"' IF product.is_active %]> + </td> +</tr> +<tr> + <th align="right"> + <label for="allows_unconfirmed">Enable the + [%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status + in this product:</label> + </th> + <td><input type="checkbox" id="allows_unconfirmed" name="allows_unconfirmed" + [% ' checked="checked"' IF product.allows_unconfirmed %] + [% IF Param('usevotes') %] + onchange="bz_toggleClass('votes_to_confirm_container', + 'bz_default_hidden')" + [% END %]> + [% IF Param('usevotes') %] + <span id="votes_to_confirm_container" + [% ' class="bz_default_hidden"' IF !product.allows_unconfirmed %]> + ...and automatically confirm [% terms.bugs %] if they get + <input size="3" maxlength="5" name="votestoconfirm" id="votestoconfirm" + value="[% product.votes_to_confirm FILTER html %]"> + votes. (Setting this to 0 disables auto-confirming [% terms.bugs %] + by vote.) + </span> + [% END %] + </td> +</tr> + +[% IF Param('usevotes') %] + <tr> + <th align="right">Maximum votes per person:</th> + <td><input size="5" maxlength="5" name="votesperuser" id="votesperuser" + value="[% product.votesperuser FILTER html %]"> + </td> + </tr> + <tr> + <th align="right"> + Maximum votes a person can put on a single [% terms.bug %]: + </th> + <td><input size="5" maxlength="5" name="maxvotesperbug" id="maxvotesperbug" + value="[% product.maxvotesperbug FILTER html %]"> + </td> + </tr> +[% END %] diff --git a/template/en/default/admin/products/edit.html.tmpl b/template/en/default/admin/products/edit.html.tmpl new file mode 100644 index 0000000..976739f --- /dev/null +++ b/template/en/default/admin/products/edit.html.tmpl @@ -0,0 +1,149 @@ +[%# 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): Jack Nerad <jnerad@bellsouth.net> + # Tiago R. Mello <tiago@async.com.br> + # Gabriel S. Oliveira <gabriel@async.com.br> + #%] + +[%# INTERFACE: + # product: Bugzilla::Product object; The product + # + # (classification fields available if Param('useclassification') is enabled:) + # + # classification: Bugzilla::Classification object; The classification + # the product is in + #%] + +[% title = BLOCK %]Edit Product '[% product.name FILTER html %]'[% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] + javascript_urls = ['js/util.js'] +%] + +[% group_control = {${constants.CONTROLMAPNA} => 'NA', + ${constants.CONTROLMAPSHOWN} => 'Shown', + ${constants.CONTROLMAPDEFAULT} => 'Default', + ${constants.CONTROLMAPMANDATORY} => 'Mandatory'} + %] + +<form method="post" action="editproducts.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + + [% PROCESS "admin/products/edit-common.html.tmpl" %] + + <tr> + <th align="right" valign="top"> + <a href="editcomponents.cgi?product=[% product.name FILTER url_quote %]"> + Edit components: + </a> + </th> + <td> + [% IF product.components.size -%] + [% FOREACH component = product.components %] + <b>[% component.name FILTER html %]:</b> + [% IF component.description %] + [% component.description FILTER html_light %] + [% ELSE %] + <font color="red">description missing</font> + [% END %] + <br> + [% END %] + [% ELSE %] + <font color="red">missing</font> + [% END %] + </td> + </tr> + <tr> + <th align="right" valign="top"> + <a href="editversions.cgi?product=[% product.name FILTER url_quote %]">Edit +versions:</a> + </th> + <td> + [%- IF product.versions.size -%] + [% FOREACH v = product.versions %] + [% v.name FILTER html %] + <br> + [% END %] + [% ELSE %] + <font color="red">missing</font> + [% END %] + </td> + </tr> + [% IF Param('usetargetmilestone') %] + <tr> + <th align="right" valign="top"> + <a href="editmilestones.cgi?product=[% product.name FILTER url_quote %]"> + Edit milestones:</a> + </th> + <td> + [%- IF product.milestones.size -%] + [%- FOREACH m = product.milestones -%] + [% m.name FILTER html %] + <br> + [% END %] + [% ELSE %] + <font color="red">missing</font> + [% END %] + </td> + </tr> + [% END %] + <tr> + <th align="right" valign="top"> + <a href="editproducts.cgi?action=editgroupcontrols&product= + [%- product.name FILTER url_quote %]"> + Edit Group Access Controls: + </a> + </th> + <td> + [% IF product.group_controls.size %] + [% FOREACH g = product.group_controls.values.sort("name") %] + <b>[% g.group.name FILTER html %]:</b> + [% IF g.group.isactive %] + [% group_control.${g.membercontrol} FILTER html %]/ + [% group_control.${g.othercontrol} FILTER html %] + [% IF g.entry %], ENTRY[% END %] + [% IF g.canedit %], CANEDIT[% END %] + [% IF g.editcomponents %], editcomponents[% END %] + [% IF g.canconfirm %], canconfirm[% END %] + [% IF g.editbugs %], editbugs[% END %] + [% ELSE %] + DISABLED + [% END %] + <br> + [% END %] + [% ELSE %] + no groups + [% END %] + </td> + </tr> + <tr> + <th align="right">[% terms.Bugs %]:</th> + <td><a href="buglist.cgi?product=[% product.name FILTER url_quote %]"> + [% product.bug_count FILTER html %]</a></td> + </tr> + </table> + + <input type="hidden" name="product_old_name" + value="[% product.name FILTER html %]"> + <input type="hidden" name="action" value="update"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" name="submit" value="Save Changes"> +</form> + +[% PROCESS "admin/products/footer.html.tmpl" + no_add_product_link = 1 + no_edit_product_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/footer.html.tmpl b/template/en/default/admin/products/footer.html.tmpl new file mode 100644 index 0000000..661829b --- /dev/null +++ b/template/en/default/admin/products/footer.html.tmpl @@ -0,0 +1,86 @@ +[%# 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: + # product: Bugzilla::Product Object; the product + # + # classification: Bugzilla::Classification object ; If classifications + # are enabled, then this is the currently + # selected classification + # + # no_XXX_link: boolean; if defined, then don't show the corresponding + # link. Supported parameters are: + # + # no_edit_product_link + # no_edit_other_products_link + # no_add_product_link + #%] + +[% IF Param('useclassification') && classification %] + [% classification_url_part = BLOCK %]&classification= + [%- classification.name FILTER url_quote %] + [% END %] + [% classification_url_part_start = BLOCK %]classification= + [%- classification.name FILTER url_quote %] + [% END %] + [% classification_text = BLOCK %] + of classification '[% classification.name FILTER html %]' + [% END %] +[% END %] + +<hr> + +<p> +[% UNLESS no_add_product_link || !user.in_group("editcomponents") %] + <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 %] + [% IF Param('useclassification') && classification %] + (<a title="Add a product to classification ' + [%- classification.name FILTER html %]'" + href="editproducts.cgi?action=add + [%- classification_url_part %]">to + classification '[% classification.name FILTER html %]'</a>) + [% END %]. +[% END %] + +[% IF product && !no_edit_product_link %] + Edit product <a + title="Edit Product '[% product.name FILTER html %]' + [%- classification_text %]" + href="editproducts.cgi?action=edit&product=[% product.name FILTER url_quote %]"> + '[% product.name FILTER html %]'</a>. +[% END %] + + +[%# Edit other products (in a classification if specified): %] +[% UNLESS no_edit_other_products_link %] + Edit <a + href="editproducts.cgi? + [%- classification_url_part_start FILTER none %]">other products + [% classification_text %]</a>. + +[% END %] + +[% IF Param('useclassification') && classification + && user.in_group('editclassifications') %] + Edit classification <a href="editclassifications.cgi?action=edit + [%- classification_url_part %]">' + [%- classification.name FILTER html %]'</a>. + +[% END %] + +</p> diff --git a/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl b/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl new file mode 100644 index 0000000..1fc92c9 --- /dev/null +++ b/template/en/default/admin/products/groupcontrol/confirm-edit.html.tmpl @@ -0,0 +1,58 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Joel Peshkin <bugreport@peshkin.net> + # + #%] + +[% PROCESS global/variables.none.tmpl %] +[% title = BLOCK %] + Confirm Group Control Change for product '[%- product.name FILTER html %]' +[% END %] + +[% PROCESS global/header.html.tmpl title = title %] +[% FOREACH group = mandatory_groups %] +<P> +group '[% group.name FILTER html %]' impacts [% group.count %] +[%+ terms.bugs %] for +which the group is newly mandatory and will be added. +[% END %] + +[% FOREACH group = na_groups %] +<P> +group '[% group.name FILTER html %]' impacts [% group.count %] +[% terms.bugs %] for which the group is no longer applicable and will +be removed.[% END %] +<form action="editproducts.cgi" method="post" > + + [% PROCESS "global/hidden-fields.html.tmpl" exclude="^Bugzilla_(login|password)$" %] + + <br> + Click "Continue" to proceed with the change including the changes + indicated above. If you do not want these changes, use "back" to + return to the previous page. + <p> + <input type="hidden" name="confirmed" value="confirmed"> + <input type="submit" id="update" value="Continue"> + </p> + +</form> + + +[% PROCESS global/footer.html.tmpl %] + + diff --git a/template/en/default/admin/products/groupcontrol/edit.html.tmpl b/template/en/default/admin/products/groupcontrol/edit.html.tmpl new file mode 100644 index 0000000..8c634eb --- /dev/null +++ b/template/en/default/admin/products/groupcontrol/edit.html.tmpl @@ -0,0 +1,325 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Joel Peshkin <bugreport@peshkin.net> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %] + Edit Group Controls for [% product.name FILTER html %] +[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +<form method="post" action="editproducts.cgi"> + <input type="hidden" name="action" value="updategroupcontrols"> + <input type="hidden" name="product" value="[% product.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + + <table id="form" cellspacing="0" cellpadding="4" border="1"> + <tr bgcolor="#6666ff"> + <th>Group</th> + <th>Entry</th> + <th>MemberControl</th> + <th>OtherControl</th> + <th>Canedit</th> + <th>editcomponents</th> + <th>canconfirm</th> + <th>editbugs</th> + <th>[% terms.Bugs %]</th> + </tr> + [% FOREACH group = product.group_controls(1).values.sort("name") %] + [% IF !group.group.isactive AND group.bug_count %] + <tr bgcolor="#bbbbbb"> + <td> + [% group.group.name FILTER html %] + </td> + <td align="center" colspan=7> + Disabled + </td> + <td> + [% group.bug_count FILTER html %] + </td> + <tr> + [% ELSIF group.group.is_active %] + <tr> + <td> + [% group.group.name FILTER html %] + </td> + <td> + <input type=checkbox value=1 name=entry_[% group.id %] + [% " checked=\"checked\"" IF group.entry %]> + </td> + <td> + <select name="membercontrol_[% group.id %]"> + <option value=[% constants.CONTROLMAPNA %] + [% " selected=\"selected\"" + IF group.membercontrol == constants.CONTROLMAPNA %] + >NA + </option> + <option value=[% constants.CONTROLMAPSHOWN %] + [% " selected=\"selected\"" + IF group.membercontrol == constants.CONTROLMAPSHOWN %] + >Shown + </option> + <option value=[% constants.CONTROLMAPDEFAULT %] + [% " selected=\"selected\"" + IF group.membercontrol == constants.CONTROLMAPDEFAULT %] + >Default + </option> + <option value=[% constants.CONTROLMAPMANDATORY %] + [% " selected=\"selected\"" + IF group.membercontrol == constants.CONTROLMAPMANDATORY %] + >Mandatory + </option> + </select> + </td> + <td> + <select name="othercontrol_[% group.id %]"> + <option value=[% constants.CONTROLMAPNA %] + [% " selected=\"selected\"" + IF group.othercontrol == constants.CONTROLMAPNA %] + >NA + </option> + <option value=[% constants.CONTROLMAPSHOWN %] + [% " selected=\"selected\"" + IF group.othercontrol == constants.CONTROLMAPSHOWN %] + >Shown + </option> + <option value=[% constants.CONTROLMAPDEFAULT %] + [% " selected=\"selected\"" + IF group.othercontrol == constants.CONTROLMAPDEFAULT %] + >Default + </option> + <option value=[% constants.CONTROLMAPMANDATORY %] + [% " selected=\"selected\"" + IF group.othercontrol == constants.CONTROLMAPMANDATORY %] + >Mandatory + </option> + </select> + </td> + <td> + <input type=checkbox value=1 name=canedit_[% group.id %] + [% " checked=\"checked\"" IF group.canedit %]> + </td> + <td> + <input type=checkbox value=1 name=editcomponents_[% group.id %] + [% " checked=\"checked\"" IF group.editcomponents %]> + </td> + <td> + <input type=checkbox value=1 name=canconfirm_[% group.id %] + [% " checked=\"checked\"" IF group.canconfirm %]> + </td> + <td> + <input type=checkbox value=1 name=editbugs_[% group.id %] + [% " checked=\"checked\"" IF group.editbugs %]> + </td> + <td> + [% group.bug_count || 0 FILTER html %] + </td> + </tr> + [% END %] + [% END %] + + </table> + <br> + <input type=submit name="submit" value="submit"> + <br> +</form> + + +<p> +These settings control the relationship of the groups to this +product. +</p> +<p> +If any group has <b>Entry</b> selected, then this product will +restrict [% terms.bug %] entry to only those users who are members of all the +groups with entry selected. +</p> +<p> +If any group has <b>Canedit</b> selected, then this product +will be read-only for any users who are not members of all of +the groups with Canedit selected. ONLY users who are members of +all the canedit groups will be able to edit. This is an additional +restriction that further restricts what can be edited by a user. +</p> +<p> +The following settings control let you choose privileges on a <b>per-product basis</b>. +This is a convenient way to give privileges to some users for some products +only, without having to give them global privileges which would affect all +products: +</p> +<p> +Any group having <b>editcomponents</b> selected allows users who are +in this group to edit all aspects of this product, including components, +milestones and versions. +</p> +<p> +Any group having <b>canconfirm</b> selected allows users who are +in this group to confirm [% terms.bugs %] in this product. +</p> +<p> +Any group having <b>editbugs</b> selected allows users who are +in this group to edit all fields of [% terms.bugs %] in this product. +</p> +<p> +The <b>MemberControl</b> and <b>OtherControl</b> fields +indicate which [% terms.bugs %] will be placed in +this group according to the following definitions. +</p> + +<table border=1> + <tr> + <th> + MemberControl + </th> + <th> + OtherControl + </th> + <th> + Interpretation + </th> + </tr> + <tr> + <td> + NA + </td> + <td> + NA + </td> + <td> + [% terms.Bugs %] in this product are never associated with this group. + </td> + </tr> + <tr> + <td> + Shown + </td> + <td> + NA + </td> + <td> + [% terms.Bugs %] in this product are permitted to be restricted to this + group. Users who are members of this group will be able to place [% terms.bugs %] in + this group. + </td> + </tr> + <tr> + <td> + Shown + </td> + <td> + Shown + </td> + <td> + [% terms.Bugs %] in this product can be placed in this group by anyone + with permission to edit the [% terms.bug %] even if they are not a member + of this group. + </td> + </tr> + <tr> + <td> + Shown + </td> + <td> + Default + </td> + <td> + [% terms.Bugs %] in this product can be placed in this group by anyone + with permission to edit the [% terms.bug %] even if they are not a member + of this group. Non-members place [% terms.bugs %] in this group by default. + </td> + </tr> + <tr> + <td> + Shown + </td> + <td> + Mandatory + </td> + <td> + [% terms.Bugs %] in this product are permitted to be restricted to this + group. Users who are members of this group will be able to place [% terms.bugs %] + in this group. Non-members will be forced to restrict [% terms.bugs %] to + this group when they initially enter [% terms.abug %] in this product. + </td> + </tr> + <tr> + <td> + Default + </td> + <td> + NA + </td> + <td> + [% terms.Bugs %] in this product are permitted to be restricted to this + group and are placed in this group by default. Users who are members of this + group will be able to place [% terms.bugs %] in this group. + </td> + </tr> + <tr> + <td> + Default + </td> + <td> + Default + </td> + <td> + [% terms.Bugs %] in this product are permitted to be restricted to this + group and are placed in this group by default. Users who are members of this group + will be able to place [% terms.bugs %] in this group. Non-members will be + able to restrict [% terms.bugs %] to this group on entry and will do so by default. + </td> + </tr> + <tr> + <td> + Default + </td> + <td> + Mandatory + </td> + <td> + [% terms.Bugs %] in this product are permitted to be restricted to this + group and are placed in this group by default. Users who are members of this group + will be able to place [% terms.bugs %] in this group. Non-members will be forced + to place [% terms.bugs %] in this group on entry. + </td> + </tr> + <tr> + <td> + Mandatory + </td> + <td> + Mandatory + </td> + <td> + [% terms.Bugs %] in this product are required to be restricted to this + group. Users are not given any option. + </td> + </tr> +</table> +<p> +Please note that the above table delineates the only allowable combinations +for the <b>MemberControl</b> and <b>OtherControl</b> field settings. +Attempting to submit a combination not listed there (e.g. Mandatory/NA, +Default/Shown, etc.) will produce an error message. +</p> +[% PROCESS global/footer.html.tmpl %] + diff --git a/template/en/default/admin/products/groupcontrol/updated.html.tmpl b/template/en/default/admin/products/groupcontrol/updated.html.tmpl new file mode 100644 index 0000000..2f59cae --- /dev/null +++ b/template/en/default/admin/products/groupcontrol/updated.html.tmpl @@ -0,0 +1,50 @@ +[%# 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): André Batosti <batosti@async.com.br> + # + #%] + +[%# INTERFACE: + # product: Bugzilla::Product object; the product. + # changes: Hashref with changes made to the product group controls. + #%] + +[% title = BLOCK %] + Update group access controls for [% product.name FILTER html %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = title +%] +<p> +[% IF changes.group_controls.now_na.size %] + [% FOREACH g = changes.group_controls.now_na %] + Removing [% terms.bugs %] from group '[% g.name FILTER html %]' which + no longer applies to this product<p> + [% g.bug_count FILTER html %] [%+ terms.bugs %] removed<p> + [% END %] +[% END %] + +[% IF changes.group_controls.now_mandatory.size %] + [% FOREACH g = changes.group_controls.now_mandatory %] + Adding [% terms.bugs %] to group '[% g.name FILTER html %]' which is + mandatory for this product<p> + [% g.bug_count FILTER html %] [%+ terms.bugs %] added<p> + [% END %] +[% END %] + +Group control updates done<p> + +[% PROCESS admin/products/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] 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 0000000..4eddad3 --- /dev/null +++ b/template/en/default/admin/products/list-classifications.html.tmpl @@ -0,0 +1,72 @@ +[%# 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" + } + ] +%] + +[% IF user.in_group('editcomponents') %] + [% columns.push({ + heading => "Action..." + content => "Add product" + contentlink => add_contentlink }) + %] +[% END %] + +[% 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 %] diff --git a/template/en/default/admin/products/list.html.tmpl b/template/en/default/admin/products/list.html.tmpl new file mode 100644 index 0000000..57d75d8 --- /dev/null +++ b/template/en/default/admin/products/list.html.tmpl @@ -0,0 +1,121 @@ +[%# 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: + # products: array of Bugzilla::Product objects + # + # classification: Bugzilla::Classification object; If classifications + # are enabled, then this is + # the currently selected classification + # showbugcounts: boolean; true if bug counts should be included in the table + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% IF classification %] + [% classification_url_part = BLOCK %]&classification= + [%- classification.name FILTER url_quote %] + [%- END %] + [% classification_title = BLOCK %] + in classification '[% classification.name FILTER html %]' + [% END %] +[% END %] + +[% PROCESS global/header.html.tmpl + title = "Select product $classification_title" +%] + +[% edit_contentlink = BLOCK %] + editproducts.cgi?action=edit&product=%%name%% +[% END %] +[% delete_contentlink = BLOCK %] + editproducts.cgi?action=del&product=%%name%% +[% END %] +[% bug_count_contentlink = BLOCK %] + buglist.cgi?product=%%name%% +[% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit product..." + contentlink => edit_contentlink + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + }, + { + name => "is_active" + heading => "Open For New $terms.Bugs" + yesno_field => 1 + }, + { + name => "votesperuser" + heading => "Votes Per User" + align => 'right' + }, + { + name => "maxvotesperbug" + heading => "Maximum Votes Per $terms.Bug" + align => 'right' + }, + { + name => "votestoconfirm" + heading => "Votes To Confirm" + align => 'right' + } ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => "bug_count" + heading => "$terms.Bug Count" + align => 'right' + contentlink => bug_count_contentlink + }) + %] + +[% END %] + +[% columns.push({ + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + }) +%] + +[% Hook.process('before_table') %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = products +%] + +[% IF !showbugcounts %] + + <p><a href="editproducts.cgi?showbugcounts=1[% classification_url_part %]"> + Redisplay table with [% terms.bug %] counts (slower)</a></p> + +[% END %] + +[% PROCESS admin/products/footer.html.tmpl + no_edit_other_products_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/products/updated.html.tmpl b/template/en/default/admin/products/updated.html.tmpl new file mode 100644 index 0000000..c6e8710 --- /dev/null +++ b/template/en/default/admin/products/updated.html.tmpl @@ -0,0 +1,185 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # product : Bugzilla::Product Object; new product. + # classification: Bugzilla::Classification Object; The product classification (may be empty or missing) + # 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_text = BLOCK %] + of classification '[% classification.name FILTER html %]' + [% END %] +[% END %] + +[% title = BLOCK %]Updating Product '[% product.name FILTER html %]' + [% classification_text FILTER none %][% END %] +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css'] +%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% IF changes.name.defined %] + <p> + 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> +[% END %] + + +[% IF changes.description.defined %] + <p> + Updated description to: + </p> + <p style="margin: 1em 3em 1em 3em">[% product.description FILTER html_light %]</p> +[% END %] + +[% IF changes.isactive.defined %] + <p> + Product is now + [% IF product.is_active %] + open for + [% ELSE %] + closed to + [% END %] + new [% terms.bugs %]. + </p> +[% END %] + +[% IF changes.defaultmilestone.defined %] + <p> + Updated default milestone from '[% changes.defaultmilestone.0 FILTER html %]' to + '[% product.default_milestone FILTER html %]'. + </p> +[% END %] + +[% IF changes.votesperuser.defined %] + <p> + Updated votes per user from + [%+ changes.votesperuser.0 FILTER html %] to + [%+ product.votes_per_user FILTER html %]. + </p> + [% checkvotes = 1 %] +[% END %] + +[% IF changes.maxvotesperbug.defined %] + <p> + Updated maximum votes per [% terms.bug %] from + [%+ changes.maxvotesperbug.0 FILTER html %] to + [%+ product.max_votes_per_bug FILTER html %]. + </p> + [% checkvotes = 1 %] +[% END %] + +[% IF changes.votestoconfirm.defined %] + <p> + Updated number of votes needed to confirm a [% terms.bug %] from + [%+ changes.votestoconfirm.0 FILTER html %] to + [%+ product.votes_to_confirm FILTER html %]. + </p> + [% checkvotes = 1 %] +[% END %] + +[% IF changes.allows_unconfirmed.defined %] + <p> + [% IF product.allows_unconfirmed %] + The product now allows the + [%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status. + [% ELSE %] + The product no longer allows the + [%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status. + Note that any + <a href="buglist.cgi?product= + [%- product.name FILTER url_quote %]&bug_status=UNCONFIRMED"> + [%- terms.bugs %] that currently have the + [%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status</a> + will remain in that status until they are edited. + [% END %] + </p> +[% END %] + +[% IF !changes.keys.size %] + <p>Nothing changed for product '[% product.name FILTER html %]'.</p> +[% END %] + +[%# Note that this display of changed votes and/or confirmed bugs is + not very scalable. We could have a _lot_, and we just list them all. + One day we should limit this perhaps, or have a more scalable display %] + + +[% IF checkvotes %] + <hr> + + <p>Checking existing votes in this product for anybody who now + has too many votes for [% terms.abug %]...<br> + [% 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> + [% END %] + [% ELSE %] + →there were none. + [% END %] + </p> + + <p>Checking existing votes in this product for anybody + who now has too many total votes...<br> + [% 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> + [% END %] + [% ELSE %] + →there were none. + [% END %] + </p> + + <p>Checking unconfirmed [% terms.bugs %] in this product for any which now have + sufficient votes...<br> + [% 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' + header_done = 1 + sent_bugmail = changes.confirmed_bugs_sent_bugmail.$id + id = id + %] + [% END %] + [% ELSE %] + →there were none. + [% END %] + </p> + +[% END %] + +[% PROCESS admin/products/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/sanitycheck/list.html.tmpl b/template/en/default/admin/sanitycheck/list.html.tmpl new file mode 100644 index 0000000..4642972 --- /dev/null +++ b/template/en/default/admin/sanitycheck/list.html.tmpl @@ -0,0 +1,37 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Frédéric Buclin. + # + # Contributor(s): Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl title = "Sanity Check" + style_urls = ['skins/standard/admin.css'] %] + +<div> + <p> + [% terms.Bugzilla %] is checking the referential integrity of your database. + This may take several minutes to complete. + </p> + + <p> + Errors, if any, will be <span class="alert">emphasized like this</span>. + Depending on the errors found, some links will be displayed allowing you + to easily fix them. Fixing these errors will automatically run this script + again (so be aware that it may take an even longer time than the first run). + </p> +</div> + +<hr> diff --git a/template/en/default/admin/sanitycheck/messages.html.tmpl b/template/en/default/admin/sanitycheck/messages.html.tmpl new file mode 100644 index 0000000..c3d5daa --- /dev/null +++ b/template/en/default/admin/sanitycheck/messages.html.tmpl @@ -0,0 +1,352 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Frédéric Buclin. + # + # Contributor(s): Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% san_message = BLOCK %] + [% IF san_tag == "checks_start" %] + OK, now running sanity checks. + + [% ELSIF san_tag == "checks_completed" %] + Sanity check completed. + + [% ELSIF san_tag == "attachment_reference_deletion_start" %] + OK, now removing all references to deleted attachments. + + [% ELSIF san_tag == "attachment_reference_deletion_end" %] + All references to deleted attachments have been removed. + + [% ELSIF san_tag == "bug_check_alert" %] + [% errortext FILTER html %]: [% INCLUDE bug_list badbugs = badbugs %] + + [% ELSIF san_tag == "bug_check_repair" %] + <a href="sanitycheck.cgi?[% param FILTER url_quote %]=1">[% text FILTER html %]</a>. + + [% ELSIF san_tag == "bug_check_creation_date" %] + Checking for [% terms.bugs %] with no creation date (which makes them invisible). + + [% ELSIF san_tag == "bug_check_creation_date_error_text" %] + [% terms.Bugs %] with no creation date + + [% ELSIF san_tag == "bug_check_creation_date_repair_text" %] + Repair missing creation date for these [% terms.bugs %] + + [% ELSIF san_tag == "bug_check_bugs_fulltext" %] + Checking for [% terms.bugs %] with no entry for full text searching. + + [% ELSIF san_tag == "bug_check_bugs_fulltext_error_text" %] + [% terms.Bugs %] with no entry for full text searching + + [% ELSIF san_tag == "bug_check_bugs_fulltext_repair_text" %] + Repair missing full text search entries for these [% terms.bugs %] + + [% ELSIF san_tag == "bug_check_res_dupl" %] + Checking resolution/duplicates + + [% ELSIF san_tag == "bug_check_res_dupl_error_text" %] + [% terms.Bugs %] found on duplicates table that are not marked duplicate + + [% ELSIF san_tag == "bug_check_res_dupl_error_text2" %] + [% terms.Bugs %] found marked resolved duplicate and not on duplicates table + + [% ELSIF san_tag == "bug_check_status_res" %] + Checking statuses/resolutions + + [% ELSIF san_tag == "bug_check_status_res_error_text" %] + [% terms.Bugs %] with open status and a resolution + + [% ELSIF san_tag == "bug_check_status_res_error_text2" %] + [% terms.Bugs %] with non-open status and no resolution + + [% ELSIF san_tag == "bug_check_status_everconfirmed" %] + Checking statuses/everconfirmed + + [% ELSIF san_tag == "bug_check_status_everconfirmed_error_text" %] + [% terms.Bugs %] that are UNCONFIRMED but have everconfirmed set + + [% ELSIF san_tag == "bug_check_status_everconfirmed_error_text2" %] + [% terms.Bugs %] with confirmed status but don't have everconfirmed set + + [% ELSIF san_tag == "bug_check_votes_everconfirmed" %] + Checking votes/everconfirmed + + [% ELSIF san_tag == "bug_check_votes_everconfirmed_error_text" %] + [% terms.Bugs %] that have enough votes to be confirmed but haven't been + + [% ELSIF san_tag == "bug_check_control_values" %] + Checking for bad values in group_control_map + + [% ELSIF san_tag == "bug_check_control_values_alert" %] + Found [% entries FILTER html %] bad group_control_map entries + + [% ELSIF san_tag == "bug_check_control_values_violation" %] + Checking for [% terms.bugs %] with groups violating their product's group controls + + [% ELSIF san_tag == "bug_check_control_values_error_text" %] + Have groups not permitted for their products + + [% ELSIF san_tag == "bug_check_control_values_repair_text" %] + Permit the missing groups for the affected products + (set member control to <code>SHOWN</code>) + + [% ELSIF san_tag == "bug_check_control_values_error_text2" %] + Are missing groups required for their products + + [% ELSIF san_tag == "bug_creation_date_start" %] + OK, now fixing missing [% terms.bug %] creation dates. + + [% ELSIF san_tag == "bug_creation_date_fixed" %] + [% bug_count FILTER html %] [%+ terms.bugs %] have been fixed. + + [% ELSIF san_tag == "bugs_fulltext_start" %] + OK, now fixing [% terms.bug %] entries for full text searching. + + [% ELSIF san_tag == "bugs_fulltext_fixed" %] + [% bug_count FILTER html %] [%+ terms.bugs %] have been fixed. + + [% ELSIF san_tag == "bug_reference_deletion_start" %] + OK, now removing all references to deleted [% terms.bugs %]. + + [% ELSIF san_tag == "bug_reference_deletion_end" %] + All references to deleted [% terms.bugs %] have been removed. + + [% ELSIF san_tag == "cross_check_to" %] + Checking references to [% table FILTER html %].[% field FILTER html %]... + + [% ELSIF san_tag == "cross_check_from" %] + ... from [% table FILTER html %].[% field FILTER html %]. + + [% ELSIF san_tag == "cross_check_alert" %] + Bad value '[% value FILTER html %]' found in + [%+ table FILTER html %].[% field FILTER html %] + [% IF keyname %] + [% IF keyname == "bug_id" %] + ([% PROCESS bug_link bug_id = key %]) + [% ELSE %] + ([% keyname FILTER html %] == '[% key FILTER html %]') + [% END %] + [% END %] + + [% ELSIF san_tag == "cross_check_attachment_has_references" %] + <a href="sanitycheck.cgi?remove_invalid_attach_references=1">Remove + invalid references to non existent attachments.</a> + + [% ELSIF san_tag == "cross_check_bug_has_references" %] + <a href="sanitycheck.cgi?remove_invalid_bug_references=1">Remove + invalid references to non existent [% terms.bugs %].</a> + + [% ELSIF san_tag == "double_cross_check_to" %] + Checking references to [% table FILTER html %].[% field1 FILTER html %] / + [%+ table FILTER html %].[% field2 FILTER html %]... + + [% ELSIF san_tag == "double_cross_check_from" %] + ... from [% table FILTER html %].[% field1 FILTER html %] / + [%+ table FILTER html %].[% field2 FILTER html %]. + + [% ELSIF san_tag == "double_cross_check_alert" %] + Bad values '[% value1 FILTER html %]', '[% value2 FILTER html %]' found + in [% table FILTER html %].[% field1 FILTER html %] / + [%+ table FILTER html %].[% field2 FILTER html %]. + [% IF keyname %] + [% IF keyname == "bug_id" %] + ([% PROCESS bug_link bug_id = key %]) + [% ELSE %] + ([% keyname FILTER html %] == '[% key FILTER html %]') + [% END %] + [% END %] + + [% ELSIF san_tag == "everconfirmed_start" %] + OK, now fixing everconfirmed. + + [% ELSIF san_tag == "everconfirmed_end" %] + everconfirmed fixed. + + [% ELSIF san_tag == "flag_check_start" %] + Checking for flags being in the wrong product/component. + + [% ELSIF san_tag == "flag_deletion_start" %] + OK, now deleting invalid flags. + + [% ELSIF san_tag == "flag_deletion_end" %] + Invalid flags deleted. + + [% ELSIF san_tag == "flag_alert" %] + Invalid flag [% flag_id FILTER html %] for + [% IF attach_id %] + attachment [% attach_id FILTER html %] in + [% END %] + [%+ PROCESS bug_link bug_id = bug_id %]. + + [% ELSIF san_tag == "flag_fix" %] + <a href="sanitycheck.cgi?remove_invalid_flags=1">Click + here to delete invalid flags</a> + + [% ELSIF san_tag == "group_control_map_entries_creation" %] + OK, now creating <code>SHOWN</code> member control entries + for product/group combinations lacking one. + + [% ELSIF san_tag == "group_control_map_entries_update" %] + Updating <code>NA/<em>xxx</em></code> group control setting + for group <em>[% group_name FILTER html %]</em> to + <code>SHOWN/<em>xxx</em></code> in product + <em>[% product_name FILTER html %]</em>. + + [% ELSIF san_tag == "group_control_map_entries_generation" %] + Generating <code>SHOWN/NA</code> group control setting + for group <em>[% group_name FILTER html %]</em> in product + <em>[% product_name FILTER html %]</em>. + + [% ELSIF san_tag == "group_control_map_entries_repaired" %] + Repaired [% counter FILTER html %] defective group control settings. + + [% ELSIF san_tag == "keyword_check_start" %] + Checking keywords table. + + [% ELSIF san_tag == "keyword_check_alert" %] + Duplicate entry in keyworddefs for id [% id FILTER html %]. + + [% ELSIF san_tag == "keyword_check_invalid_name" %] + Bogus name in keyworddefs for id [% id FILTER html %]. + + [% ELSIF san_tag == "keyword_check_invalid_id" %] + Bogus keywordids [% id FILTER html %] found in keywords table. + + [% ELSIF san_tag == "keyword_check_duplicated_ids" %] + Duplicate keyword IDs found in [% PROCESS bug_link bug_id = id %]. + + [% ELSIF san_tag == "keyword_cache_start" %] + Checking cached keywords. + + [% ELSIF san_tag == "keyword_cache_alert" %] + [% badbugs.size FILTER none %] [%+ terms.bugs %] found with + incorrect keyword cache: [% INCLUDE bug_list badbugs = badbugs %] + + [% ELSIF san_tag == "keyword_cache_fixing" %] + OK, now fixing keyword cache. + + [% ELSIF san_tag == "keyword_cache_fixed" %] + Keyword cache fixed. + + [% ELSIF san_tag == "keyword_cache_rebuild" %] + <a href="sanitycheck.cgi?rebuildkeywordcache=1">Click here to + rebuild the keyword cache</a>. + + [% ELSIF san_tag == "profile_login_start" %] + Checking profile logins. + + [% ELSIF san_tag == "profile_login_alert" %] + Bad profile email address, id=[% id FILTER html %], + <[% email FILTER html %]>. + + [% ELSIF san_tag == "repair_bugs" %] + Repair these [% terms.bugs %]. + + [% ELSIF san_tag == "send_bugmail_start" %] + OK, now attempting to send unsent mail. + + [% ELSIF san_tag == "send_bugmail_status" %] + [% bug_count FILTER html %] [%+ terms.bugs %] found with + possibly unsent mail. + + [% ELSIF san_tag == "send_bugmail_end" %] + Unsent mail has been sent. + + [% ELSIF san_tag == "unsent_bugmail_check" %] + Checking for unsent mail + + [% ELSIF san_tag == "unsent_bugmail_alert" %] + [% terms.Bugs %] that have changes but no mail sent for at least + half an hour: [% INCLUDE bug_list badbugs = badbugs %] + + [% ELSIF san_tag == "unsent_bugmail_fix" %] + <a href="sanitycheck.cgi?rescanallBugMail=1">Send these mails</a>. + + [% ELSIF san_tag == "vote_cache_rebuild_start" %] + OK, now rebuilding vote cache. + + [% ELSIF san_tag == "vote_cache_rebuild_end" %] + Vote cache has been rebuilt. + + [% ELSIF san_tag == "vote_cache_rebuild_fix" %] + <a href="sanitycheck.cgi?rebuildvotecache=1">Click here to + rebuild the vote cache</a> + + [% ELSIF san_tag == "vote_cache_alert" %] + Bad vote cache for [% PROCESS bug_link bug_id = id %] + + [% ELSIF san_tag == "vote_count_start" %] + Checking cached vote counts. + + [% ELSIF san_tag == "vote_count_alert" %] + Bad vote sum for [% terms.bug %] [%+ id FILTER html %]. + + [% ELSIF san_tag == "whines_obsolete_target_deletion_start" %] + OK, now removing non-existent users/groups from whines. + + [% ELSIF san_tag == "whines_obsolete_target_deletion_end" %] + Non-existent users/groups have been removed from whines. + + [% ELSIF san_tag == "whines_obsolete_target_start" %] + Checking for whines with non-existent users/groups. + + [% ELSIF san_tag == "whines_obsolete_target_alert" %] + [% FOREACH schedule = schedules %] + Non-existent [% (type == constants.MAILTO_USER) ? "user" : "group" FILTER html %] + [%+ schedule.1 FILTER html %] for whine schedule [% schedule.0 FILTER html %]<br> + [% END %] + + [% ELSIF san_tag == "whines_obsolete_target_fix" %] + <a href="sanitycheck.cgi?remove_old_whine_targets=1">Click here to + remove old users/groups</a> + + [% ELSE %] + [% message = Hook.process("statuses") %] + + [% IF message %] + [% message FILTER none %] + [% ELSE %] + The status message string <code>[% san_tag FILTER html %]</code> + was not found. Please send email to [% Param("maintainer") %] describing + the steps taken to obtain this message. + [% END %] + + [% END %] +[% END %] + +[% USE Bugzilla %] +[% IF Bugzilla.usage_mode == constants.USAGE_MODE_CMDLINE %] + [% san_message FILTER none %] +[% ELSE %] + [%# Avoid the txt filter in message.txt.tmpl. %] + [% san_message FILTER html %] +[% END %] + +[% BLOCK bug_list %] + [% FOREACH bug_id = badbugs %] + [%# Do not use FILTER bug_link() here, because bug_link() calls get_text() + # which itself calls this template again, generating a recursion error. + # I doubt having a tooltip with the bug status and summary is so + # important here anyway, as you can click the "(as buglist)" link. %] + <a href="show_bug.cgi?id=[% bug_id FILTER url_quote %]">[% bug_id FILTER html %]</a> + [% ", " IF !loop.last %] + [% END %] + (<a href="buglist.cgi?bug_id=[% badbugs.join(",") FILTER url_quote %]">as [% terms.bug %] list</a>). +[% END %] + +[% BLOCK bug_link %] + <a href="show_bug.cgi?id=[% bug_id FILTER url_quote %]">[% terms.bug %] [%+ bug_id FILTER html %]</a> +[% END %] diff --git a/template/en/default/admin/settings/edit.html.tmpl b/template/en/default/admin/settings/edit.html.tmpl new file mode 100644 index 0000000..7f95f88 --- /dev/null +++ b/template/en/default/admin/settings/edit.html.tmpl @@ -0,0 +1,101 @@ +[%# 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): Shane H. W. Travis <travis@sedsystems.ca> + # + #%] + +[%# INTERFACE: + # settings: a hash of hashes, keyed by setting name. + # Each hash contains: + # is_enabled - boolean + # default_value - string (global default for this setting) + # value - string (user-defined preference) + # is_default - boolean (true if user has no preference) + #%] + +[% PROCESS global/header.html.tmpl + title = "Default Preferences" + %] + +[% PROCESS "global/setting-descs.none.tmpl" %] + +<p> +This lets you edit the default preferences values. +</p> +<p> +The Default Value displayed for each preference will apply to all users who +do not choose their own value, and to anyone who is not logged in. +</p> +<p> +The 'Enabled' checkbox controls whether or not this preference is available +to users.<br> +If it is checked, users will see this preference on their User Preferences page, +and will be allowed to choose their own value if they desire.<br> +If it is not checked, this preference will not appear on the User Preference +page, and the Default Value will automatically apply to everyone. +</p> +<hr> + +[% IF settings.size %] + <form name="adminsettingform" method="post" action="editsettings.cgi"> + <table border="1" cellpadding="4"> + <tr> + <th>Preference Text</th> + <th>Default Value</th> + <th>Enabled</th> + </tr> + + [% FOREACH name = settings.keys %] + [% checkbox_name = name _ '-enabled' %] + <tr> + <td align="right"> + [% setting_descs.$name OR name FILTER html %] + </td> + <td> + <select name="[% name FILTER html %]" id="[% name FILTER html %]"> + [% FOREACH x = settings.${name}.legal_values %] + <option value="[% x FILTER html %]" + [% " selected=\"selected\"" IF x == settings.${name}.default_value %]> + [% setting_descs.${x} OR x FILTER html %] + </option> + [% END %] + </select> + </td> + <td align="center"> + <input type="checkbox" + name="[% checkbox_name FILTER html %]" + id="[% checkbox_name FILTER html %]" + [% " checked=\"checked\"" IF settings.${name}.is_enabled %]> + <br> + </td> + </tr> + [% END %] + </table> + + <input type="hidden" name="action" value="update"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <table> + <tr> + <td width="150"></td> + <td> + <input type="submit" id="update" value="Submit Changes"> + </td> + </tr> + </table> + + </form> +[% ELSE %] + There are no preferences to edit. +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/sudo.html.tmpl b/template/en/default/admin/sudo.html.tmpl new file mode 100644 index 0000000..680bcfb --- /dev/null +++ b/template/en/default/admin/sudo.html.tmpl @@ -0,0 +1,105 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 2005 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): A. Karl Kornel <karl@kornel.name> + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Begin sudo session" + style_urls = ['skins/standard/admin.css'] + doc_section = "useradmin.html#impersonatingusers" + %] + +[% DEFAULT target_login = "" %] + +<p> + The <b>sudo</b> feature of [% terms.Bugzilla %] allows you to impersonate a + user for a short time While an sudo session is in progress, every action you + perform will be taking place as if you had logged in as the user whom will be + impersonating. +</p> + +<p class="areyoureallyreallysure"> + This is a very powerful feature; you should be very careful while using it. + Your actions may be logged more carefully than normal. +</p> + +<form action="relogin.cgi" method="POST"> + <p> + To begin, + [% IF Param('usemenuforusers') %] + select + [% ELSE %] + enter the login of + [% END %] + <label for="target_login">the <u>u</u>ser to impersonate</label>: + [% INCLUDE global/userselect.html.tmpl + id => "target_login" + name => "target_login" + value => target_login_default + accesskey => "u" + size => 30 + %] + </p> + + [% IF !Param('usemenuforusers') %] + <p> + The username must be entered exactly. No matching will be performed. + </p> + [% END %] + + <p> + Next, please take a moment to explain <label for="reason">why you are doing + this:<br> + <input type="text" id="reason" name="reason" size="80" maxlength="200" + value="[% reason_default FILTER html %]"> + </p> + + <p> + The message you enter here will be sent to the impersonated user by email. + You may leave this empty if you wish, but they will still know that you + are impersonating them. + </p> + + [% IF user.authorizer.can_login %] + <p> + Finally, enter <label for="Bugzilla_password">your [% terms.Bugzilla %] + password</label>: + <input type="hidden" name="Bugzilla_login" value=" + [%- user.login FILTER html %]"> + <input type="password" id="Bugzilla_password" name="Bugzilla_password" + maxlength="20" size="20"> + <br> + This is done for two reasons. First of all, it is done to reduce + the chances of someone doing large amounts of damage using your + already-logged-in account. Second, it is there to force you to take the + time to consider if you really need to use this feature. + </p> + [% END %] + + <p> + Click the button to begin the session: + <input type="submit" value="Begin Session"> + <input type="hidden" name="action" value="begin-sudo"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + </p> + +</form> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/table.html.tmpl b/template/en/default/admin/table.html.tmpl new file mode 100644 index 0000000..ce5e985 --- /dev/null +++ b/template/en/default/admin/table.html.tmpl @@ -0,0 +1,194 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Jouni Heikniemi <jouni@heikniemi.net> + # + #%] + +[%# INTERFACE: + # + # columns: + # array of hashes representing the columns in the table. + # Each hash contains data for a single column. Hash keys: + # name: Name of the field in the data param + # heading: The text to print at the header cell + # contentlink: URI to which the content of a data cell shall be linked to. + # Expressions of format %%xxx%% are replaced with value + # with the key xxx in data hash of the current row. + # content: If specified, the content of this variable is used + # instead of the data pulled from the current row. + # NOTE: This value is only partially HTML filtered! + # content_use_field: If defined and true, then each value in the + # column corresponds with a key in the + # field_descs field, and that value from the + # field_descs hash will be used instead of "content." + # See fieldvalues/select-field for an example of use. + # This content WILL be HTML-filtered in this case. + # align: left/center/right. Controls the horizontal alignment of the + # text in the column. + # allow_html_content: if defined, then this column allows some html content + # and so it will be only partially filtered. + # yesno_field: Turn the data from 0/!0 into Yes/No + # + # data: + # array of hashes representing the data for the table. + # Each hash contains data for a single row of data. The + # keys are column names from columns subhashes name field. + # + # overrides: + # Example: + # overrides { # first hash + # column_name_to_be_overwriten => { # second hash + # name_of_row_to_match_against => { # third hash + # value_to_match_against => { # fourth hash + # content => "some contents" + # override_content => 1 + # } + # } + # } + # } + # + # Provides a method for overriding individual table cells. This is a hash + # (1), whose key is the column name, so the column must be named for + # one of it's cells to be overwritten. The hash value is another hash + # (2). The keys of that second hash are the name of the row to match + # against. The second hash then again points to another hash. Within this + # third hash (3), the keys represent values to match against. The item + # contains a fourth hash (4) specifying overridden values. + # + # Each column value mentioned in the 'columns' documentation above + # can be overwritten (apart from name and heading). To override a + # table-cell value 'xxx', specify a new 'xxx' value, and specify a + # 'override_xxx' value as well. See + # admin/milestones/list.html.tmpl for example + # + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[%################### TABLE HEADER ######################%] + +<table id="admin_table" border="1" cellpadding="4" cellspacing="0"> + <tr bgcolor="#6666FF"> + [% FOREACH c = columns %] + [%# Default to align left for headers %] + <th align="[% (c.align || 'left') FILTER html %]"> + [% c.heading FILTER html %] + </th> + [% END %] + </tr> + + +[%################### TABLE CONTENT ######################%] + +[% FOREACH row = data %] + + <tr> + [% FOREACH c = columns %] + + [%# Copy to local variables, as we may update these %] + [% contentlink = c.contentlink + content = c.content + content_use_field = c.content_use_field + align = c.align + class = c.class + allow_html_content = c.allow_html_content + yesno_field = c.yesno_field + %] + + [%# Get any specific "important" overrides for this c.name and row.name ? %] + [% SET important = overrides.${c.name}.name.${row.name} %] + + [% IF important %] + + [% FOREACH key IN important.keys %] + [% SET ${key} = important.${key} %] + [% END %] + + [% ELSE %] + + [%# Are there any specific overrides for this column? %] + [% FOREACH match_field = overrides.${c.name}.keys %] + + [% override = overrides.${c.name}.${match_field}.${row.$match_field} %] + [% NEXT UNLESS override %] + + [% FOREACH key IN override.keys %] + [% SET ${key} = override.${key} %] + [% END %] + + [% LAST %] + + [% END %] + [% END %] + + <td [% IF align %] align="[% align FILTER html %]" [% END %] + [% IF class %] class="[% class FILTER html %]" [% END %]> + + [% IF contentlink %] + [% link_uri = contentlink %] + [% WHILE link_uri.search('%%(.+?)%%')%] + [% FOREACH m = link_uri.match('%%(.+?)%%') %] + [% IF row.$m %] + [% replacement_value = FILTER url_quote; row.$m; END %] + [% ELSE %] + [% replacement_value = "" %] + [% END %] + [% link_uri = link_uri.replace("%%$m%%", replacement_value) %] + [% END %] + [% END %] + <a href="[% link_uri %]"> + [% END %] + + [% IF content_use_field %] + [% colname = row.${c.name} %] + [% field_descs.${colname} FILTER html %] + [% ELSIF content %] + [% content FILTER html_light %] + [% ELSE %] + [% IF yesno_field %] + [% IF row.${c.name} %] + Yes + [% ELSE %] + No + [% END %] + [% ELSE %] + [% IF allow_html_content %] + [% row.${c.name} FILTER html_light %] + [% ELSE %] + [% row.${c.name} FILTER html %] + [% END %] + [% END %] + [% END %] + + [% IF contentlink %] + </a> + [% END %] + + </td> + [% END %] + </tr> +[% END %] + +[% IF data.size == 0 %] + <tr><td colspan="[% columns.size %]" align="center"><i><none></i></td></tr> +[% END %] + + +[%################### TABLE FOOTER ######################%] + +</table> diff --git a/template/en/default/admin/users/confirm-delete.html.tmpl b/template/en/default/admin/users/confirm-delete.html.tmpl new file mode 100644 index 0000000..b61a995 --- /dev/null +++ b/template/en/default/admin/users/confirm-delete.html.tmpl @@ -0,0 +1,486 @@ +[%# 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): Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # + # listselectionvalues: selection values to recreate the current user + # list. + # editusers: is viewing user member of editusers? + # otheruser: Bugzilla::User object of the viewed user. + # reporter: number of bugs reported by the user + # assignee_or_qa: number of bugs the user is either the assignee + # or the QA contact + # bugs_activity: number of bugs the viewed user has activity + # entries on + # cc number of bugs the viewed user is cc list member + # of + # flags.requestee: number of flags the viewed user is being asked for + # flags.setter: number of flags the viewed user has set + # longdescs: number of bug comments the viewed user has written + # namedqueries: number of named queries the user has created + # namedquery_group_map: number of named queries the user has shared + # profiles_activity: number of changes made to other users' profiles + # series: number of series the viewed user has created + # votes: number of bugs the viewed user has voted on + # watch.watched: number of users the viewed user is being watched + # by + # watch.watcher: number of users the viewed user is watching + # whine_events: number of whine events the viewed user has created + # whine_schedules: number of whine schedules the viewed user has + # created + #%] + +[% title = BLOCK %]Confirm deletion of user [% otheruser.login FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = ['skins/standard/admin.css', + 'skins/standard/editusers.css'] + doc_section = "useradmin.html#user-account-deletion" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +<table class="main"> + <tr> + <th>Login name:</th> + <td>[% otheruser.login FILTER html %]</td> + </tr> + <tr> + <th>Real name:</th> + <td>[% otheruser.name FILTER html %]</td> + </tr> + <tr> + <th>Group set:</th> + <td> + [% IF otheruser.groups.size %] + <ul> + [% FOREACH group = otheruser.groups %] + <li>[% group.name FILTER html %]</li> + [% END %] + </ul> + [% ELSE %] + None + [% END %] + </td> + </tr> + [% IF otheruser.product_responsibilities.size %] + <tr> + <th>Product responsibilities:</th> + <td> + [% PROCESS admin/users/responsibilities.html.tmpl otheruser = otheruser %] + </td> + </tr> + [% END %] +</table> + +[% IF otheruser.product_responsibilities.size %] + <p> + You can't delete this user at this time because + [%+ otheruser.login FILTER html %] has got responsibilities for at least + one product. + </p> + <p> + [% IF user.in_group("editcomponents", component.product_id) %] + Change this by clicking the product editing links above, + [% ELSE %] + For now, you can + [% END %] +[% ELSE %] + [% accept_deletion = 1 %] + + [% IF attachments || reporter || bugs_activity || flags.setter || longdescs || profiles_activity %] + <div class="criticalmessages"> + <p>The following deletions are <b>unsafe</b> and would generate referential + integrity inconsistencies!</p> + + <ul> + [% IF attachments %] + <li> + [% otheruser.login FILTER html %] + <a href="buglist.cgi?field0-0-0=attachments.submitter&type0-0-0=equals&value0-0-0= + [%- otheruser.login FILTER url_quote %]">has submitted + [% IF attachments == 1 %] + one attachment + [% ELSE %] + [%+ attachments %] attachments + [% END %]</a>. + If you delete the user account, the database records will be + inconsistent, resulting in + [% IF attachments == 1 %] + this attachment + [% ELSE %] + these attachments + [% END %] + not appearing in [% terms.bugs %] any more. + </li> + [% END %] + [% IF reporter %] + <li> + [% otheruser.login FILTER html %] + <a href="buglist.cgi?emailreporter1=1&emailtype1=exact&email1= + [%- otheruser.login FILTER url_quote %]">has reported + [% IF reporter == 1 %] + one [% terms.bug %] + [% ELSE %] + [%+ reporter %] [%+ terms.bugs %] + [% END %]</a>. + If you delete the user account, the database records will be + inconsistent, resulting in + [% IF reporter == 1 %] + this [% terms.bug %] + [% ELSE %] + these [% terms.bugs %] + [% END %] + not appearing in [% terms.bug %] lists any more. + </li> + [% END %] + [% IF bugs_activity %] + <li> + [% otheruser.login FILTER html %] has made + [% IF bugs_activity == 1 %] + a change on [% terms.abug %] + [% ELSE %] + changes on [% terms.bugs %] + [% END %]. + If you delete the user account, the [% terms.bugs %] activity table in + the database will be inconsistent, resulting in + [% IF bugs_activity == 1 %] + this change + [% ELSE %] + these changes + [% END %] + not showing up in [% terms.bug %] activity logs any more. + </li> + [% END %] + [% IF flags.setter %] + <li> + [% otheruser.login FILTER html %] has + <a href="buglist.cgi?field0-0-0=setters.login_name&type0-0-0=equals&value0-0-0= + [%- otheruser.login FILTER url_quote %]">set + or requested + [% IF flags.setter == 1 %] + a flag + [% ELSE %] + [%+ flags.setter %] flags + [% END %]</a>. + If you delete the user account, the flags table in the database + will be inconsistent, resulting in + [% IF flags.setter == 1 %] + this flag + [% ELSE %] + these flags + [% END %] + not displaying correctly any more. + </li> + [% END %] + [% IF longdescs %] + <li> + [% otheruser.login FILTER html %] has + <a href="buglist.cgi?emaillongdesc1=1&emailtype1=exact&email1= + [%- otheruser.login FILTER url_quote %]">commented + [% IF longdescs == 1 %] + once on [% terms.abug %] + [% ELSE %] + [%+ longdescs %] times on [% terms.bugs %] + [% END %]</a>. + If you delete the user account, the comments table in the database + will be inconsistent, resulting in + [% IF longdescs == 1 %] + this comment + [% ELSE %] + these comments + [% END %] + not being visible any more. + </li> + [% END %] + [% IF profiles_activity %] + <li> + [% otheruser.login FILTER html %] has made + [% IF bugs_activity == 1 %] + a change on a other user's profile + [% ELSE %] + changes on other users' profiles + [% END %]. + If you delete the user account, the user profiles activity table in + the database will be inconsistent. + </li> + [% END %] + </ul> + </div> + [% accept_deletion = 0 %] + [% END %] + + [% IF assignee_or_qa || cc || component_cc || email_setting || flags.requestee || + namedqueries || profile_setting || quips || series || votes || watch.watched || + watch.watcher || whine_events || whine_schedules %] + <div class="warningmessages"> + <p>The following deletions are <b>safe</b> and will not generate + referential integrity inconsistencies.</p> + + <ul> + [% IF assignee_or_qa %] + <li> + [% otheruser.login FILTER html %] + <a href="buglist.cgi?emailassigned_to1=1&emailqa_contact1=1&emailtype1=exact&email1= + [%- otheruser.login FILTER url_quote %]">is + the assignee or the QA contact of + [% IF assignee_or_qa == 1 %] + one [% terms.bug %] + [% ELSE %] + [%+ assignee_or_qa %] [%+ terms.bugs %] + [% END %]</a>. + If you delete the user account, these roles will fall back to + the default assignee or default QA contact. + </li> + [% END %] + [% IF cc %] + <li> + [% otheruser.login FILTER html %] + <a href="buglist.cgi?emailcc1=1&emailtype1=exact&email1= + [%- otheruser.login FILTER url_quote %]">is + on the CC list of + [% IF cc == 1 %] + [%+ terms.abug %] + [% ELSE %] + [%+ cc %] [%+ terms.bugs %] + [% END %]</a>. + If you delete the user account, it will be removed from these CC lists. + </li> + [% END %] + [% IF component_cc %] + <li> + [% otheruser.login FILTER html %] is on the default CC list of + [% IF component_cc == 1 %] + one component + [% ELSE %] + [%+ component_cc %] components + [% END %]. + If you delete the user account, it will be removed from these CC lists. + </li> + [% END %] + [% IF email_setting %] + <li> + The user's e-mail settings will be deleted along with the user + account. + </li> + [% END %] + [% IF flags.requestee %] + <li> + [% otheruser.login FILTER html %] has been + <a href="buglist.cgi?field0-0-0=requestees.login_name&type0-0-0=equals&value0-0-0= + [%- otheruser.login FILTER url_quote %]">asked + to set + [% IF flags.requestee == 1 %] + a flag + [% ELSE %] + [% flags.requestee %] flags + [% END %]</a>. + If you delete the user account, + [% IF flags.requestee == 1 %] + this flag + [% ELSE %] + these flags + [% END %] + will change to be unspecifically requested. + </li> + [% END %] + [% IF namedqueries %] + <li> + [% otheruser.login FILTER html %] has + [% IF namedqueries == 1 %] + a [% 'shared' IF namedquery_group_map %] named search + [% ELSE %] + [%+ namedqueries FILTER html %] named searches + [% END %]. + [% IF namedqueries == 1 %] + This named search + [% ELSE %] + These named searches + [% END %] + will be deleted along with the user account. + [% IF namedquery_group_map %] + [% IF namedqueries > 1 %] + Of these, + [% IF namedquery_group_map > 1 %] + [%+ namedquery_group_map FILTER html %] are + [% ELSE %] + one is + [% END %] + shared. + [% END %] + Other users will not be able to use + [% IF namedquery_group_map > 1 %] + these shared named searches + [% ELSE %] + this shared named search + [% END %] + any more. + [% END %] + </li> + [% END %] + [% IF profile_setting %] + <li> + The user's preference settings will be deleted along with the user + account. + </li> + [% END %] + [% IF series %] + <li> + [% otheruser.login FILTER html %] has created + [% IF series == 1 %] + a series + [% ELSE %] + [%+ series %] series + [% END %]. + [% IF series == 1 %] + This series + [% ELSE %] + These series + [% END %] + will be deleted along with the user account. + </li> + [% END %] + [% IF quips %] + <li> + [% otheruser.login FILTER html %] has submitted + [% IF quips == 1 %] + a quip + [% ELSE %] + [%+ quips %] quips + [% END %]. + If you delete the user account, + [% IF quips == 1 %] + this quip + [% ELSE %] + these quips + [% END %] + will have no author anymore, but will remain available. + </li> + [% END %] + [% IF votes %] + <li> + [% otheruser.login FILTER html %] has voted on + [% IF votes == 1 %] + [%+ terms.abug %] + [% ELSE %] + [%+ votes %] [%+ terms.bugs %] + [% END %]. + If you delete the user account, + [% IF votes == 1 %] + this vote + [% ELSE %] + these votes + [% END %] + will be deleted along with the user account. + </li> + [% END %] + [% IF watch.watched || watch.watcher %] + <li> + [% otheruser.login FILTER html %] + [% IF watch.watched %] + is being watched by + [% IF watch.watched == 1 %] + a user + [% ELSE %] + [%+ watch.watched %] users + [% END %] + [% END %] + [% IF watch.watcher %] + [%+ 'and' IF watch.watched %] + watches + [% IF watch.watcher == 1 %] + a user + [% ELSE %] + [%+ watch.watcher %] users + [% END %] + [% END %]. + [% IF watch.watched + watch.watcher == 1 %] + This watching + [% ELSE %] + These watchings + [% END %] + will cease along with the deletion of the user account. + </li> + [% END %] + [% IF whine_events %] + <li> + [% otheruser.login FILTER html %] has scheduled + [% IF whine_events == 1 %] + a whine + [% ELSE %] + [%+ whine_events %] whines + [% END %]. + [% IF whine_events == 1 %] + This whine + [% ELSE %] + These whines + [% END %] + will be deleted along with the user account. + </li> + [% END %] + [% IF whine_schedules %] + <li> + [% otheruser.login FILTER html %] is on the receiving end of + [% IF whine_schedules == 1 %] + a whine + [% ELSE %] + [%+ whine_schedules %] whines + [% END %]. + The corresponding schedules will be deleted along with the user account, + but the whines themselves will be left unaltered. + </li> + [% END %] + </ul> + </div> + + [% IF accept_deletion %] + <p class="areyoureallyreallysure"> + Please be aware of the consequences of this before continuing. + </p> + <p>Do you really want to delete this user account?</p> + + <form method="post" action="editusers.cgi"> + <p> + <input type="submit" id="delete" value="Yes, delete"/> + <input type="hidden" name="action" value="delete" /> + <input type="hidden" name="userid" value="[% otheruser.id %]" /> + <input type="hidden" name="token" value="[% token FILTER html %]"> + [% INCLUDE listselectionhiddenfields %] + </p> + </form> + <p>If you do not want to delete the user account at this time, + [% ELSE %] + <p><b>You cannot delete this user account</b> due to unsafe actions reported above. You can + [% END %] + + [% END %] +[% END %] + + <a href="editusers.cgi?action=edit&userid=[% otheruser.id %] + [% INCLUDE listselectionurlparams %]">edit the user</a>, + go + <a href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">back + to the user list</a>, + [% IF editusers %] + <a href="editusers.cgi?action=add[% INCLUDE listselectionurlparams %]">add + a new user</a>, + [% END %] + or <a href="editusers.cgi">find other users</a>. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/create.html.tmpl b/template/en/default/admin/users/create.html.tmpl new file mode 100644 index 0000000..6fd5b67 --- /dev/null +++ b/template/en/default/admin/users/create.html.tmpl @@ -0,0 +1,58 @@ +[%# 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): Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # + # listselectionvalues: selection values to recreate the current user list. + # editusers: is viewing user member of editusers? + #%] + +[% PROCESS global/header.html.tmpl + title = "Add user" + style_urls = ['skins/standard/editusers.css'] + onload = "document.forms['f'].login.focus()" + doc_section = "useradmin.html#createnewusers" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +<form name="f" method="post" action="editusers.cgi"> +<table class="main"> + [% PROCESS admin/users/userdata.html.tmpl + editform = 0 + editusers = editusers + otheruser = [] + %] +</table> +<p> + <input type="submit" id="add" value="Add"/> + <input type="hidden" name="action" value="new" /> + <input type="hidden" name="token" value="[% token FILTER html %]"> + [% INCLUDE listselectionhiddenfields %] +</p> +</form> + +<p> + You can also <a href="editusers.cgi">find a user</a> + [% IF listselectionvalues %], + or + <a href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">go + back to the user list</a> + [% END %]. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/edit.html.tmpl b/template/en/default/admin/users/edit.html.tmpl new file mode 100644 index 0000000..3efa4b8 --- /dev/null +++ b/template/en/default/admin/users/edit.html.tmpl @@ -0,0 +1,168 @@ +[%# 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): Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # + # message: message tag specifying a global/messages.html.tmpl + # message + # listselectionvalues: selection values to recreate the current user list. + # editusers: is viewing user member of editusers? + # otheruser: Bugzilla::User object of viewed user. + # groups: array of group information (name, grant type, + # canbless) for viewed user. + #%] + +[% title = BLOCK %]Edit user [% otheruser.identity FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + message = message + style_urls = ['skins/standard/admin.css', 'skins/standard/editusers.css'] + doc_section = "useradmin.html#modifyusers" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +<form method="post" action="editusers.cgi"> +<table class="main"> + [% PROCESS admin/users/userdata.html.tmpl + editform = 1 + editusers = editusers + otheruser = otheruser + %] + [% IF groups.size %] + <tr> + <th>Group access:</th> + <td> + <table class="groups"> + <tr> + [% IF editusers %] + <th colspan="3"> + Can turn these bits on for other users + </th> + [% END %] + </tr> + <tr> + [% IF editusers %] + <td style="text-align: center; font-weight: bold">|</td> + [% END %] + <th colspan="2">User is a member of these groups</th> + </tr> + [% FOREACH group = groups %] + [% perms = permissions.${group.id} %] + <tr class="[% 'in' IF perms.regexpmember || perms.derivedmember %]direct"> + [% IF editusers %] + <td class="checkbox"> + [% '[' IF perms.indirectbless %] + [% %]<input type="checkbox" + name="bless_[% group.id %]" + value="1" + [% ' checked="checked"' IF perms.directbless %] /> + [% ']' IF perms.indirectbless %]</td> + [% END %] + <td class="checkbox"> + [% '[' IF perms.derivedmember %] + [% '*' IF perms.regexpmember %] + [%%]<input type="checkbox" + id="group_[% group.id %]" + name="group_[% group.id %]" + value="1" + [% ' checked="checked"' IF perms.directmember %] /> + [% '*' IF perms.regexpmember %] + [% ']' IF perms.derivedmember %]</td> + <td class="groupname"> + <label for="group_[% group.id %]"> + <strong>[% group.name FILTER html %]:</strong> + [%+ group.description FILTER html_light %] + </label> + </td> + </tr> + [% END %] + </table> + </td> + </tr> + [% END %] + + <tr> + <th>Product responsibilities:</th> + <td> + [% IF otheruser.product_responsibilities.size %] + [% PROCESS admin/users/responsibilities.html.tmpl otheruser = otheruser %] + [% ELSE %] + <em>none</em> + [% END %] + </td> + </tr> +</table> + +<p> + <input type="submit" id="update" value="Save Changes" /> + <input type="hidden" name="userid" value="[% otheruser.id %]" /> + <input type="hidden" name="action" value="update" /> + <input type="hidden" name="token" value="[% token FILTER html %]"> + [% INCLUDE listselectionhiddenfields %] + + or <a href="editusers.cgi?action=activity&userid=[% otheruser.id %]" + title="View Account History for ' + [%- otheruser.login FILTER html %]'">View Account History</a> +</p> +</form> +<p> + User is a member of any groups shown with a check or grey bar. + A grey bar indicates indirect membership, either derived from other + groups (marked with square brackets) or via regular expression + (marked with '*'). +</p> +[% IF editusers %] + <p> + Square brackets around the bless checkbox indicate the ability + to bless users (grant them membership in the group) as a result + of membership in another group. + </p> +[% END %] + +[% IF Param('allowuserdeletion') && editusers %] + <form method="post" action="editusers.cgi"> + <p> + <input type="submit" id="delete" value="Delete User" /> + <input type="hidden" name="action" value="del" /> + <input type="hidden" name="userid" value="[% otheruser.id %]" /> + [% INCLUDE listselectionhiddenfields %] + </p> + </form> +[% END %] + +<p> + You can also + [% IF editusers %] + <a href="editusers.cgi?action=add[% INCLUDE listselectionurlparams %]">add + a new user</a> + [% IF listselectionvalues %], + [% END %] + [% END %] + [% IF listselectionvalues.matchtype != 'exact' %] + go + <a href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">back + to the user list</a>, + [% END %] + [% IF editusers OR listselectionvalues %] + or + [% END %] + <a href="editusers.cgi">find other users</a>. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/list.html.tmpl b/template/en/default/admin/users/list.html.tmpl new file mode 100644 index 0000000..cb05e82 --- /dev/null +++ b/template/en/default/admin/users/list.html.tmpl @@ -0,0 +1,115 @@ +[%# 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): Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # + # listselectionvalues: selection values to recreate the current user list. + # editusers: is viewing user member of editusers? + # users: list of user information (id, login_name, realname, + # disabledtext). + #%] + +[% PROCESS global/header.html.tmpl + title = "Select user" + style_urls = ['skins/standard/editusers.css'] + doc_section = "useradmin.html" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +[% listselectionurlparams = INCLUDE listselectionurlparams %] + +[% columns = + [{name => 'login_name' + heading => 'Edit user...' + contentlink => 'editusers.cgi?action=edit&userid=%%userid%%' _ + listselectionurlparams + } + {name => 'realname' + heading => 'Real name' + } + {heading => 'Account History' + content => 'View' + contentlink => 'editusers.cgi?action=activity' _ + '&userid=%%userid%%' _ + listselectionurlparams + } + ] +%] + +[% IF Param('allowuserdeletion') && editusers %] + [% columns.push({heading => 'Action' + content => 'Delete' + contentlink => 'editusers.cgi?action=del' _ + '&userid=%%userid%%' _ + listselectionurlparams + } + ) + %] +[% END %] + +[%# Disabled users are crossed out. Missing realnames are noticed in red. %] +[% overrides.login_name = {} %] +[% overrides.realname = {} %] + +[% FOREACH thisuser = users %] + [% IF !thisuser.realname %] + [%# We cannot pass one class now and one class later. %] + [% SET classes = (thisuser.disabledtext ? "bz_inactive missing" : "missing") %] + [% overrides.realname.login_name.${thisuser.login_name} = { + content => "missing" + override_content => 1 + class => "$classes" + override_class => 1 + } + %] + [% ELSIF thisuser.disabledtext %] + [% overrides.realname.login_name.${thisuser.login_name} = { + class => "bz_inactive" + override_class => 1 + } + %] + [% END %] + + [% IF thisuser.disabledtext %] + [% overrides.login_name.login_name.${thisuser.login_name} = { + class => "bz_inactive" + override_class => 1 + } + %] + [% END %] +[% END %] + +<p>[% users.size %] user[% "s" UNLESS users.size == 1 %] found.</p> + +[% PROCESS admin/table.html.tmpl + columns = columns + data = users + overrides = overrides +%] + +<p> + If you do not wish to modify a user account at this time, you can + <a href="editusers.cgi">find other users</a> + [% IF editusers %] + or + <a href="editusers.cgi?action=add[% INCLUDE listselectionurlparams %]">add + a new user</a> + [% END %]. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/listselectvars.html.tmpl b/template/en/default/admin/users/listselectvars.html.tmpl new file mode 100644 index 0000000..a6eae57 --- /dev/null +++ b/template/en/default/admin/users/listselectvars.html.tmpl @@ -0,0 +1,33 @@ +[%# 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): Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # + # listselectionvalues: selection values to recreate the current user list. + #%] + +[% BLOCK listselectionurlparams %] + [% FOREACH field = listselectionvalues.keys %]& + [% field FILTER url_quote %]= + [% listselectionvalues.$field FILTER url_quote %] + [% END %] +[% END %] + +[% BLOCK listselectionhiddenfields %] + [% FOREACH field = listselectionvalues.keys %] + <input type="hidden" name="[% field FILTER html %]" + value="[% listselectionvalues.$field FILTER html %]" /> + [% END %] +[% END %] diff --git a/template/en/default/admin/users/responsibilities.html.tmpl b/template/en/default/admin/users/responsibilities.html.tmpl new file mode 100644 index 0000000..bbf121a --- /dev/null +++ b/template/en/default/admin/users/responsibilities.html.tmpl @@ -0,0 +1,61 @@ +[%# 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): Marc Schumann <wurblzap@gmail.com> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% hidden_products = 0 %] +<table id="user_responsibilities" border="0"> + [% FOREACH item = otheruser.product_responsibilities %] + [% IF !user.can_see_product(item.product.name) %] + [% hidden_products = 1 %] + [% NEXT %] + [% END %] + <tbody> + <tr> + <th colspan="3" class="product">Product: [% item.product.name FILTER html %]</th> + </tr> + <tr> + <th>Component</th> + <th>Default Assignee</th> + <th>Default QA Contact</th> + </tr> + [% FOREACH component = item.components %] + <tr> + <td> + [% IF user.in_group("editcomponents", component.product_id) %] + <a href="editcomponents.cgi?action=edit&product= + [% item.product.name FILTER url_quote %]&component= + [% component.name FILTER url_quote %]"> + [% END %] + [% component.name FILTER html %] + [% IF user.in_group("editcomponents", component.product_id) %] + </a> + [% END %] + </td> + [% FOREACH responsibility = ['default_assignee', 'default_qa_contact'] %] + <td class="center"> + [% component.$responsibility.id == otheruser.id ? "X" : " " %] + </td> + [% END %] + </tr> + [% END %] + </tbody> + [% END %] +</table> + +[% IF hidden_products %] + <p class="criticalmessages">The user is involved in at least one product which you cannot + see (and so is not listed above). You have to ask an administrator with enough + privileges to edit this user's roles for these products.</p> +[% END %] diff --git a/template/en/default/admin/users/search.html.tmpl b/template/en/default/admin/users/search.html.tmpl new file mode 100644 index 0000000..82e0afd --- /dev/null +++ b/template/en/default/admin/users/search.html.tmpl @@ -0,0 +1,78 @@ +[%# 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): Marc Schumann <wurblzap@gmail.com> + # David Lawrence <dkl@redhat.com> + #%] + +[%# INTERFACE: + # + # editusers: is viewing user member of editusers? + # restrictablegroups: list of groups visible to the user: + # id: group id + # name: group name + #%] + + +[% PROCESS global/header.html.tmpl + title = "Search users" + style_urls = ['skins/standard/editusers.css'] + onload = "document.forms['f'].matchstr.focus()" + doc_section = "useradmin.html#user-account-search" +%] + +[% PROCESS admin/users/listselectvars.html.tmpl + listselectionvalues = listselectionvalues +%] + +<form name="f" method="get" action="editusers.cgi"> +<input type="hidden" name="action" value="list" /> +<p><label for="matchvalue">List users with</label> +<select id="matchvalue" name="matchvalue"> + <option value="login_name">login name</option> + <option value="realname">real name</option> + <option value="userid">user id</option> +</select> +<label for="matchstr">matching</label> +<input size="32" name="matchstr" id="matchstr" /> +<select name="matchtype"> + <option value="substr" selected="selected">case-insensitive substring</option> + <option value="regexp">case-insensitive regexp</option> + <option value="notregexp">not (case-insensitive regexp)</option> + <option value="exact">exact (find this user)</option> +</select> +<input type="submit" id="search" value="Search" /></p> + +[% IF restrictablegroups.size %] + <p><input type="checkbox" name="grouprestrict" value="1" id="grouprestrict" /> + <label for="grouprestrict">Restrict to users belonging to group</label> + <select name="groupid" + onchange="document.forms['f'].grouprestrict.checked=true"> + [% FOREACH group = restrictablegroups %] + <option value="[% group.id FILTER html %]">[% group.name FILTER html %]</option> + [% END %] + </select></p> +[% END %] +</form> + +[% IF editusers %] + <p> + You can also <a href="editusers.cgi?action=add">add a new user</a> + [%- IF listselectionvalues %], + or + <a href="editusers.cgi?action=list[% INCLUDE listselectionurlparams %]">show + the user list again</a> + [%- END %]. + </p> +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/users/userdata.html.tmpl b/template/en/default/admin/users/userdata.html.tmpl new file mode 100644 index 0000000..f23aa1b --- /dev/null +++ b/template/en/default/admin/users/userdata.html.tmpl @@ -0,0 +1,98 @@ +[%# 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): Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # + # editform: is this an edit form? (It's a create form otherwise) + # editusers: is viewing user member of editusers? + # otheruser: Bugzilla::User object of user to edit + #%] + +<tr> + <th><label for="login">Login name:</label></th> + <td> + [% IF editusers %] + <input size="64" maxlength="255" name="login" + id="login" value="[% otheruser.login FILTER html %]" /> + [% IF editform %] + [% IF !otheruser.in_group('bz_sudo_protect') %] + <br /> + <a href="relogin.cgi?action=prepare-sudo&target_login= + [%- otheruser.login FILTER url_quote %]">Impersonate this user</a> + [% END %] + [% END %] + [% ELSE %] + [% otheruser.login FILTER html %] + [% END %] + </td> +</tr> +<tr> + <th><label for="name">Real name:</label></th> + <td> + [% IF editusers %] + <input size="64" maxlength="255" name="name" + autocomplete="off" + id="name" value="[% otheruser.name FILTER html %]" /> + [% ELSE %] + [% otheruser.name FILTER html %] + [% END %] + </td> +</tr> + +[%# XXX This condition (can_change_password) will cause a problem + # if we ever have a login system that can create accounts through + # createaccount.cgi but can't change passwords. + #%] + +[% IF editusers %] + [% IF user.authorizer.can_change_password %] + <tr> + <th><label for="password">Password:</label></th> + <td> + <input type="password" size="16" maxlength="16" name="password" + autocomplete="off" + id="password" value="" /> + [% IF editform %]<br /> + (Enter new password to change.) + [% END %] + </td> + </tr> + [% END %] + <tr> + <th><label for="disable_mail">[% terms.Bug %]mail Disabled:</label></th> + <td> + <input type="checkbox" name="disable_mail" id="disable_mail" value="1" + [% IF otheruser.email_disabled %] checked="checked" [% END %] /> + (This affects [% terms.bug %]mail and whinemail, not password-reset or other + non-[% terms.bug %]-related emails) + </td> + </tr> + <tr> + <th><label for="disabledtext">Disable text:</label></th> + <td> + [% INCLUDE global/textarea.html.tmpl + name = 'disabledtext' + id = 'disabledtext' + minrows = 2 + maxrows = 10 + defaultrows = 10 + cols = 60 + defaultcontent = otheruser.disabledtext + %]<br> + (If non-empty, then the account will be disabled, and this text should + explain why.) + </td> + </tr> +[% END %] diff --git a/template/en/default/admin/versions/confirm-delete.html.tmpl b/template/en/default/admin/versions/confirm-delete.html.tmpl new file mode 100644 index 0000000..88ffceb --- /dev/null +++ b/template/en/default/admin/versions/confirm-delete.html.tmpl @@ -0,0 +1,101 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the version belongs. + # version: object; Bugzilla::Version object representing the + # version the user wants to delete. + #%] + +[% title = BLOCK %]Delete Version of Product '[% product.name FILTER html %]' + [% END %] + +[% PROCESS global/header.html.tmpl + title = title +%] + +<table border="1" cellpadding="4" cellspacing="0"> +<tr bgcolor="#6666FF"> + <th valign="top" align="left">Field</th> + <th valign="top" align="left">Value</th> +</tr> +<tr> + <td valign="top">Version:</td> + <td valign="top">[% version.name FILTER html %]</td> +</tr> +<tr> + <td valign="top">Version of Product:</td> + <td valign="top">[% product.name FILTER html %]</td> +</tr> +<tr> + <td valign="top">[% terms.Bugs %]:</td> + <td valign="top"> +[% IF version.bug_count %] + <a title="List of [% terms.bugs %] targetted at version ' + [%- version.name FILTER html %]'" + href="buglist.cgi?version=[% version.name FILTER url_quote %]&product= + [%- product.name FILTER url_quote %]"> + [%- version.bug_count FILTER none %]</a> +[% ELSE %] + None +[% END %] + </td> +</tr> +</table> + +<h2>Confirmation</h2> + +[% IF version.bug_count %] + <p> + Sorry, there + [% IF version.bug_count > 1 %] + are [% version.bug_count FILTER none %] [%+ terms.bugs %] + [% ELSE %] + is [% version.bug_count FILTER none %] [%+ terms.bug %] + [% END %] + + outstanding for this version. You must move + + [% IF version.bug_count > 1 %] + those [% terms.bugs %] + [% ELSE %] + that [% terms.bug %] + [% END %] + to another version before you can delete this one. + </p> +[% ELSE %] + + <p>Do you really want to delete this version?</p> + + <form method="post" action="editversions.cgi"> + <input type="submit" id="delete" value="Yes, delete"> + <input type="hidden" name="action" value="delete"> + <input type="hidden" name="product" value="[% product.name FILTER html %]"> + <input type="hidden" name="version" value="[% version.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + </form> + +[% END %] + +[% PROCESS admin/versions/footer.html.tmpl %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/versions/create.html.tmpl b/template/en/default/admin/versions/create.html.tmpl new file mode 100644 index 0000000..8b4ba64 --- /dev/null +++ b/template/en/default/admin/versions/create.html.tmpl @@ -0,0 +1,52 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the version is being created for + #%] + +[% title = BLOCK %]Add Version to Product '[% product.name FILTER html %]'[% END %] +[% subheader = BLOCK %]This page allows you to add a new version to product + '[% product.name FILTER html %]'.[% END %] +[% PROCESS global/header.html.tmpl + title = title + subheader = subheader +%] + +<form method="post" action="editversions.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + <tr> + <th align="right"><label for="version">Version:</label></th> + <td><input id="version" size="64" maxlength="64" name="version" + value=""></td> + </tr> + </table> + <input type="submit" id="create" value="Add"> + <input type="hidden" name="action" value="new"> + <input type="hidden" name='product' value="[% product.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> +</form> + +[% PROCESS admin/versions/footer.html.tmpl + no_add_version_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/versions/edit.html.tmpl b/template/en/default/admin/versions/edit.html.tmpl new file mode 100644 index 0000000..2a7c784 --- /dev/null +++ b/template/en/default/admin/versions/edit.html.tmpl @@ -0,0 +1,57 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the version belongs. + # version: object; Bugzilla::Version object representing the + # version the user wants to edit. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Edit Version '[% version.name FILTER html %]' of product ' + [%- product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +<form method="post" action="editversions.cgi"> + <table border="0" cellpadding="4" cellspacing="0"> + + <tr> + <th valign="top"><label for="version">Version:</label></th> + <td><input id="version" size="64" maxlength="64" name="version" value=" + [%- version.name FILTER html %]"></td> + </tr> + + </table> + + <input type="hidden" name="versionold" value="[% version.name FILTER html %]"> + <input type="hidden" name="action" value="update"> + <input type="hidden" name="product" value="[% product.name FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" id="update" value="Save Changes"> +</form> + +[% PROCESS admin/versions/footer.html.tmpl + no_edit_version_link = 1 %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/versions/footer.html.tmpl b/template/en/default/admin/versions/footer.html.tmpl new file mode 100644 index 0000000..8d96a12 --- /dev/null +++ b/template/en/default/admin/versions/footer.html.tmpl @@ -0,0 +1,65 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the version belongs. + # version: object; Bugzilla::Version object representing the version + # + # no_XXX_link: boolean; if defined, then don't show the corresponding + # link. Supported parameters are: + # + # no_edit_version_link + # no_edit_other_versions_link + # no_add_version_link + #%] + +<hr> + +<p> + +[% UNLESS no_add_version_link %] + <a title="Add a version to product '[% product.name FILTER html %]'" + href="editversions.cgi?action=add&product= + [%- product.name FILTER url_quote %]">Add</a> a version. +[% END %] + +[% IF version.name && !no_edit_version_link %] + Edit version <a + title="Edit Version '[% version.name FILTER html %]' of product ' + [%- product.name FILTER html %]'" + href="editversions.cgi?action=edit&product= + [%- product.name FILTER url_quote %]&version= + [%- version.name FILTER url_quote %]"> + '[% version.name FILTER html %]'</a>. +[% END %] + +[% UNLESS no_edit_other_versions_link %] + Edit other versions of product <a + href="editversions.cgi?product= + [%- product.name FILTER url_quote %]">'[% product.name FILTER html %]'</a>. + +[% END %] + + Edit product <a + href="editproducts.cgi?action=edit&product= + [%- product.name FILTER url_quote %]">'[% product.name FILTER html %]'</a>. + +</p> diff --git a/template/en/default/admin/versions/list.html.tmpl b/template/en/default/admin/versions/list.html.tmpl new file mode 100644 index 0000000..401ee51 --- /dev/null +++ b/template/en/default/admin/versions/list.html.tmpl @@ -0,0 +1,89 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[%# INTERFACE: + # product: object; Bugzilla::Product object representing the product to + # which the versions belongs. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% title = BLOCK %]Select version of product + '[% product.name FILTER html %]'[% END %] +[% PROCESS global/header.html.tmpl + title = title +%] + +[% edit_contentlink = BLOCK %]editversions.cgi?action=edit&product= + [%- product.name FILTER url_quote %]&version=%%name%%[% END %] +[% delete_contentlink = BLOCK %]editversions.cgi?action=del&product= + [%- product.name FILTER url_quote %]&version=%%name%%[% END %] +[% bug_count_contentlink = BLOCK %]buglist.cgi?version=%%name%%&product= + [%- product.name FILTER url_quote %][% END %] + + +[% columns = [ + { + name => "name" + heading => "Edit version..." + contentlink => edit_contentlink + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => "bug_count" + heading => "$terms.Bugs" + align => "right" + contentlink => bug_count_contentlink + }) + %] + +[% END %] + +[% columns.push({ + heading => "Action" + content => "Delete" + contentlink => delete_contentlink + }) +%] + +[% Hook.process('before_table') %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = product.versions +%] + +[% IF ! showbugcounts %] + + <p><a href="editversions.cgi?product=[% product.name FILTER url_quote %]&showbugcounts=1"> + Redisplay table with [% terms.bug %] counts (slower)</a></p> + +[% END %] + +[% PROCESS admin/versions/footer.html.tmpl + no_edit_other_versions_link = 1 + %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/versions/select-product.html.tmpl b/template/en/default/admin/versions/select-product.html.tmpl new file mode 100644 index 0000000..7fded47 --- /dev/null +++ b/template/en/default/admin/versions/select-product.html.tmpl @@ -0,0 +1,70 @@ +[%# 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. + # + # The Initial Developer of the Original Code is Netscape Communications + # Corporation. Portions created by Netscape are + # Copyright (C) 1998 Netscape Communications Corporation. All + # Rights Reserved. + # + # Contributor(s): Gavin Shelley <bugzilla@chimpychompy.org> + # Frédéric Buclin <LpSolit@gmail.com> + # + #%] + +[%# INTERFACE: + # products: array of product objects + # showbugcounts: if defined, then bug counts should be included in the table + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Edit versions for which product?" +%] + +[% columns = [ + { + name => "name" + heading => "Edit versions of..." + contentlink => "editversions.cgi?product=%%name%%" + }, + { + name => "description" + heading => "Description" + allow_html_content => 1 + } + ] +%] + +[% IF showbugcounts %] + + [% columns.push({ + name => 'bug_count' + heading => "$terms.Bugs" + align => "right" + contentlink => "buglist.cgi?product=%%name%%" + }) + %] + +[% END %] + +[% PROCESS admin/table.html.tmpl + columns = columns + data = products +%] + +[% IF !showbugcounts %] + <p><a href="editversions.cgi?showbugcounts=1"> + Redisplay table with [% terms.bug %] counts (slower)</a></p> +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/admin/workflow/comment.html.tmpl b/template/en/default/admin/workflow/comment.html.tmpl new file mode 100644 index 0000000..a7a6a74 --- /dev/null +++ b/template/en/default/admin/workflow/comment.html.tmpl @@ -0,0 +1,92 @@ +[%# 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): Frédéric Buclin <LpSolit@gmail.com> + # Gervase Markham <gerv@mozilla.org> + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% INCLUDE global/header.html.tmpl + title = "Comments Required on Status Transitions" + style_urls = ['skins/standard/admin.css'] +%] + +<script type="text/javascript"> +<!-- + function toggle_cell(cell) { + if (cell.checked) + cell.parentNode.className = "checkbox-cell checked"; + else + cell.parentNode.className = "checkbox-cell"; + } +//--> +</script> + +<p> + This page allows you to define which status transitions require a comment + by the user doing the change. +</p> + +<form id="workflow_form" method="POST" action="editworkflow.cgi"> +<table> + <tr> + <th colspan="2"> </th> + <th colspan="[% statuses.size FILTER html %]" class="title">To</th> + </tr> + + <tr> + <th rowspan="[% statuses.size + 2 FILTER html %]" class="title">From</th> + <th> </th> + [% FOREACH status = statuses %] + <th class="col-header[% status.is_open ? " open-status" : " closed-status" %]"> + [% display_value("bug_status", status.name) FILTER html %] + </th> + [% END %] + </tr> + + [%# This defines the entry point in the workflow %] + [% p = [{id => 0, name => "{Start}", is_open => 1}] %] + [% FOREACH status = p.merge(statuses) %] + <tr class="highlight"> + <th align="right" class="[% status.is_open ? "open-status" : "closed-status" %]"> + [% display_value("bug_status", status.name) FILTER html %] + </th> + + [% FOREACH new_status = statuses %] + [% IF workflow.${status.id}.${new_status.id}.defined %] + <td align="center" class="checkbox-cell + [% " checked" IF workflow.${status.id}.${new_status.id} %]" + title="From [% status.name FILTER html %] to [% new_status.name FILTER html %]"> + <input type="checkbox" name="c_[% status.id %]_[% new_status.id %]" + id="c_[% status.id %]_[% new_status.id %]" onclick="toggle_cell(this)" + [% " checked='checked'" IF workflow.${status.id}.${new_status.id} %]> + </td> + [% ELSE %] + <td class="checkbox-cell forbidden"> </td> + [% END %] + [% END %] + </tr> + [% END %] +</table> + +<p align="center"> + <input type="hidden" name="action" value="update_comment"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" value="Commit Changes"> - + <a href="editworkflow.cgi?action=edit_comment">Cancel Changes</a> - + <a href="editworkflow.cgi">View Current Workflow</a> +</p> + +</form> + +[% INCLUDE global/footer.html.tmpl %] diff --git a/template/en/default/admin/workflow/edit.html.tmpl b/template/en/default/admin/workflow/edit.html.tmpl new file mode 100644 index 0000000..406c08a --- /dev/null +++ b/template/en/default/admin/workflow/edit.html.tmpl @@ -0,0 +1,110 @@ +[%# 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): Frédéric Buclin <LpSolit@gmail.com> + # Gervase Markham <gerv@mozilla.org> + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% INCLUDE global/header.html.tmpl + title = "Edit Workflow" + style_urls = ['skins/standard/admin.css'] +%] + +<script type="text/javascript"> +<!-- + function toggle_cell(cell) { + if (cell.checked) + cell.parentNode.className = "checkbox-cell checked"; + else + cell.parentNode.className = "checkbox-cell"; + } +//--> +</script> + +<p> + This page allows you to define which status transitions are valid in your workflow. + For compatibility with older versions of [% terms.Bugzilla %], reopening [% terms.abug %] + will only display either [% display_value("bug_status", "UNCONFIRMED") FILTER html %] or + [%+ display_value("bug_status", "REOPENED") FILTER html %] (if allowed by your workflow) but not + both. The decision depends on whether the [% terms.bug %] has ever been confirmed or not. + So it is a good idea to allow both transitions and let [% terms.Bugzilla %] select the + correct one. +</p> + +<form id="workflow_form" method="POST" action="editworkflow.cgi"> +<table> + <tr> + <th colspan="2"> </th> + <th colspan="[% statuses.size FILTER html %]" class="title">To</th> + </tr> + + <tr> + <th rowspan="[% statuses.size + 2 FILTER html %]" class="title">From</th> + <th> </th> + [% FOREACH status = statuses %] + <th class="col-header[% status.is_open ? " open-status" : " closed-status" %]"> + [% display_value("bug_status", status.name) FILTER html %] + </th> + [% END %] + </tr> + + [%# This defines the entry point in the workflow %] + [% p = [{id => 0, name => "{Start}", is_open => 1}] %] + [% FOREACH status = p.merge(statuses) %] + <tr class="highlight"> + <th align="right" class="[% status.is_open ? "open-status" : "closed-status" %]"> + [% display_value("bug_status", status.name) FILTER html %] + </th> + + [% FOREACH new_status = statuses %] + [% IF status.id != new_status.id && (status.id || new_status.is_open) %] + [% checked = workflow.${status.id}.${new_status.id}.defined ? 1 : 0 %] + [% mandatory = (status.id && new_status.name == Param("duplicate_or_move_bug_status")) ? 1 : 0 %] + <td align="center" class="checkbox-cell[% " checked" IF checked || mandatory %]" + title="From [% status.name FILTER html %] to [% new_status.name FILTER html %]"> + <input type="checkbox" name="w_[% status.id %]_[% new_status.id %]" + id="w_[% status.id %]_[% new_status.id %]" onclick="toggle_cell(this)" + [%+ "checked='checked'" IF checked || mandatory %] + [%+ "disabled='disabled'" IF mandatory %]> + </td> + [% ELSE %] + <td class="checkbox-cell forbidden"> </td> + [% END %] + [% END %] + </tr> + [% END %] +</table> + +<p> + When [% terms.abug %] is marked as a duplicate of another one or is moved + to another installation, the [% terms.bug %] status is automatically set to + <b>[% display_value("bug_status", Param("duplicate_or_move_bug_status")) FILTER html %]</b>. All transitions to + this [% terms.bug %] status must then be valid (this is the reason why you cannot edit + them above).<br> + Note: you can change this setting by visiting the + <a href="editparams.cgi?section=bugchange#duplicate_or_move_bug_status">Parameters</a> + page and editing the <i>duplicate_or_move_bug_status</i> parameter. +</p> + +<p align="center"> + <input type="hidden" name="action" value="update"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + <input type="submit" value="Commit Changes"> - + <a href="editworkflow.cgi">Cancel Changes</a> - + <a href="editworkflow.cgi?action=edit_comment">View Comments Required on Status Transitions</a> +</p> + +</form> + +[% INCLUDE global/footer.html.tmpl %] |