aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'template/en/custom/admin/flag-type/edit.html.tmpl')
-rw-r--r--template/en/custom/admin/flag-type/edit.html.tmpl262
1 files changed, 262 insertions, 0 deletions
diff --git a/template/en/custom/admin/flag-type/edit.html.tmpl b/template/en/custom/admin/flag-type/edit.html.tmpl
new file mode 100644
index 000000000..17f852271
--- /dev/null
+++ b/template/en/custom/admin/flag-type/edit.html.tmpl
@@ -0,0 +1,262 @@
+[%# This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ #
+ # This Source Code Form is "Incompatible With Secondary Licenses", as
+ # defined by the Mozilla Public License, v. 2.0.
+ #%]
+
+[% PROCESS "global/js-products.html.tmpl" %]
+
+[% IF action == "insert" %]
+ [% title = BLOCK %]
+ Create Flag Type for [% type.target_type == "bug" ? terms.Bugs : "Attachments" %]
+ [% IF type.id %]
+ Based on [% type.name FILTER html %]
+ [% END %]
+ [% END %]
+[% ELSE %]
+ [% title = BLOCK %]Edit Flag Type [% type.name FILTER html %][% END %]
+[% END %]
+
+[% PROCESS global/header.html.tmpl
+ title = title
+ style_urls = ['skins/standard/admin.css']
+ onload="var f = document.forms['flagtype_properties'];
+ selectProduct(f.product, f.component, '__Any__');"
+ javascript_urls=["js/productform.js"]
+ doc_section = "administering/flags.html"
+%]
+
+<form id="flagtype_properties" method="post" action="editflagtypes.cgi">
+ <input type="hidden" name="action" value="[% action FILTER html %]">
+ <input type="hidden" name="can_fully_edit" value="[% can_fully_edit FILTER html %]">
+ <input type="hidden" name="id" value="[% type.id FILTER html %]">
+ <input type="hidden" name="token" value="[% token FILTER html %]">
+ <input type="hidden" name="target_type" value="[% type.target_type FILTER html %]">
+ <input type="hidden" name="check_clusions" value="[% check_clusions FILTER none %]">
+ [% FOREACH category = inclusions.values %]
+ <input type="hidden" name="inclusions" value="[% category FILTER html %]">
+ [% END %]
+ [% FOREACH category = exclusions.values %]
+ <input type="hidden" name="exclusions" value="[% category 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" class="bz_default_hidden">
+
+ <table id="admin_table_edit">
+ <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" [%- ' disabled="disabled"' UNLESS can_fully_edit %] required>
+ </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
+ disabled = !can_fully_edit
+ mandatory = 1
+ %]
+ </td>
+ </tr>
+
+ <tr>
+ <th>Category:</th>
+
+ <td>
+ the products/components to which [% type.target_type == "bug" ? terms.bugs : "attachments" %]
+ must (inclusions) or must not (exclusions) belong in order for users
+ to be able to set flags of this type for them.
+ [% UNLESS can_fully_edit %]
+ <p class="warning">This flagtype also applies to some products you are not allowed
+ to edit (and so which are not displayed in the lists below). Your limited privileges
+ means you are only allowed to add and remove this flagtype to/from products you can
+ edit, but not to edit other properties of the flagtype.</p>
+ [% END %]
+ <table>
+ <tr>
+ <th class="top left">
+ Product/Component:<br>
+ [% INCLUDE "global/product-select.html.tmpl"
+ id => "product"
+ name => "product"
+ add => "__Any__"
+ onchange => "selectProduct(this, this.form.component, '__Any__');"
+ products => products
+ %]<br>
+ <select name="component" class="form-control selectwidthauto">
+ <option value="">__Any__</option>
+ [% FOREACH comp = components %]
+ <option value="[% comp FILTER html %]">[% comp FILTER html %]</option>
+ [% END %]
+ </select><br>
+ <input type="submit" class="btn btn-default" id="categoryAction-include"
+ name="categoryAction-include" value="Include">
+ <input type="submit" class="btn btn-default" id="categoryAction-exclude"
+ name="categoryAction-exclude" value="Exclude">
+ </th>
+ <th class="top left">
+ Inclusions:<br>
+ [% PROCESS category_select name="inclusion_to_remove" categories = inclusions %]<br>
+ <input type="submit" class="btn btn-default" id="categoryAction-removeInclusion"
+ name="categoryAction-removeInclusion" value="Remove Inclusion">
+ </th>
+ <th class="top left">
+ Exclusions:<br>
+ [% PROCESS category_select name="exclusion_to_remove" categories = exclusions %]<br>
+ <input type="submit" class="btn btn-default" id="categoryAction-removeExclusion"
+ name="categoryAction-removeExclusion" value="Remove Exclusion">
+ </th>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <th>Sort Key:</th>
+ <td>
+ a number between 0 and [% constants.MAX_SMALLINT FILTER none %] 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 || 0 FILTER html %]" size="5"
+ maxlength="5" [% ' disabled="disabled"' UNLESS can_fully_edit %] required>
+ </td>
+ </tr>
+
+ <tr>
+ <th>&nbsp;</th>
+ <td>
+ <input type="checkbox" id="is_active" name="is_active"
+ [%- ' disabled="disabled"' UNLESS can_fully_edit %]
+ [% " 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>&nbsp;</th>
+ <td>
+ <input type="checkbox" id="is_requestable" name="is_requestable"
+ [%- ' disabled="disabled"' UNLESS can_fully_edit %]
+ [% " 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" [%- ' disabled="disabled"' UNLESS can_fully_edit %]>
+ </td>
+ </tr>
+
+ <tr>
+ <th>&nbsp;</th>
+ <td>
+ <input type="checkbox" id="is_requesteeble" name="is_requesteeble"
+ [%- ' disabled="disabled"' UNLESS can_fully_edit %]
+ [% " 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>&nbsp;</th>
+ <td>
+ <input type="checkbox" id="is_multiplicable" name="is_multiplicable"
+ [%- ' disabled="disabled"' UNLESS can_fully_edit %]
+ [% " 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 [% type.target_type == "bug" ? terms.bug : "attachment" %])</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 group_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 group_select selname = "request_group" %]
+ </td>
+ </tr>
+
+ <tr>
+ <th>&nbsp;</th>
+ <td>
+ <input type="submit" id="save" class="btn btn-primary" value="[% action == "insert" ? "Create" : "Save Changes" %]">
+ </td>
+ </tr>
+
+ </table>
+
+</form>
+
+[% PROCESS global/footer.html.tmpl %]
+
+
+[%############################################################################%]
+[%# Block for SELECT fields #%]
+[%############################################################################%]
+
+[% BLOCK group_select %]
+ <select name="[% selname %]" id="[% selname %]" [%- ' disabled="disabled"' UNLESS can_fully_edit %] class="form-control selectwidthauto">
+ <option value="">(no group)</option>
+ [% group_found = 0 %]
+ [% FOREACH group = groups %]
+ <option value="[% group.name FILTER html %]"
+ [% IF type.${selname} && type.${selname}.name == group.name %]
+ [% ' selected="selected"' %]
+ [% group_found = 1 %]
+ [% END %]>
+ [%- group.name FILTER html ~%]
+ </option>
+ [% END %]
+ [% IF !group_found && type.${selname}.name %]
+ <option value="[% type.${selname}.name FILTER html %]" selected="selected">
+ [%- type.${selname}.name FILTER html ~%]
+ </option>
+ [% END %]
+ </select>
+[% END %]
+
+[% BLOCK category_select %]
+ <select name="[% name FILTER html %]" multiple="multiple" size="7">
+ [% FOREACH option = categories.keys.sort %]
+ <option value="[% categories.$option FILTER html %]">
+ [% option FILTER html %]
+ </option>
+ [% END %]
+ </select>
+[% END %]