summaryrefslogtreecommitdiffstats
path: root/template/en/default/flag
diff options
context:
space:
mode:
authorDexter Morgan <dmorgan@mageia.org>2010-11-26 14:56:29 +0000
committerColin Guthrie <colin@mageia.org>2014-09-15 20:44:39 +0100
commit80fc05854135e575e7811b55f521e8bb9855a2ee (patch)
tree72b18ca48983a3ebb7fe2f0d658d099f5854f3db /template/en/default/flag
downloadbugzilla-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/flag')
-rw-r--r--template/en/default/flag/list.html.tmpl213
1 files changed, 213 insertions, 0 deletions
diff --git a/template/en/default/flag/list.html.tmpl b/template/en/default/flag/list.html.tmpl
new file mode 100644
index 0000000..1110fb6
--- /dev/null
+++ b/template/en/default/flag/list.html.tmpl
@@ -0,0 +1,213 @@
+[%# 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>
+ #%]
+
+[% IF user.id AND !read_only_flags %]
+
+[%# We list flags by looping twice over the flag types relevant for the bug.
+ # In the first loop, we display existing flags and then, for active types,
+ # we display UI for adding new flags. In the second loop, we display UI
+ # for adding additional new flags for those types for which a flag already
+ # exists but which are multiplicable (can have multiple flags of the type
+ # on a single bug/attachment).
+ #%]
+
+[% DEFAULT flag_table_id = "flags" %]
+
+<script type="text/javascript" src="js/flag.js"></script>
+
+<table id="[% flag_table_id FILTER html %]">
+ [% UNLESS flag_no_header %]
+ <tr>
+ <th colspan="3">
+ Flags:
+ </th>
+ [% IF any_flags_requesteeble %]
+ <th>
+ Requestee:
+ </th>
+ [% END %]
+ </tr>
+ [% END %]
+
+ [%# Step 1: Display every flag type (except inactive types with no flags). %]
+ [% FOREACH type = flag_types %]
+
+ [%# Step 1a: Display existing flag(s). %]
+ [% FOREACH flag = type.flags %]
+ <tr>
+ <td>
+ [% flag.setter.nick FILTER html %]:
+ </td>
+ <td>
+ <label title="[% type.description FILTER html %]"
+ for="flag-[% flag.id %]">
+ [%- type.name FILTER html FILTER no_break -%]</label>
+ </td>
+ <td>
+ <select id="flag-[% flag.id %]" name="flag-[% flag.id %]"
+ title="[% type.description FILTER html %]"
+ onchange="toggleRequesteeField(this);"
+ class="flag_select flag_type-[% type.id %]">
+ [%# Only display statuses the user is allowed to set. %]
+ [% IF user.can_request_flag(type) || flag.setter_id == user.id %]
+ <option value="X"></option>
+ [% END %]
+ [% IF type.is_active %]
+ [% IF (type.is_requestable && user.can_request_flag(type)) || flag.status == "?" %]
+ <option value="?" [% "selected" IF flag.status == "?" %]>?</option>
+ [% END %]
+ [% IF user.can_set_flag(type) || flag.status == "+" %]
+ <option value="+" [% "selected" IF flag.status == "+" %]>+</option>
+ [% END %]
+ [% IF user.can_set_flag(type) || flag.status == "-" %]
+ <option value="-" [% "selected" IF flag.status == "-" %]>-</option>
+ [% END %]
+ [% ELSE %]
+ <option value="[% flag.status %]" selected="selected">[% flag.status %]</option>
+ [% END %]
+ </select>
+ </td>
+ [% IF any_flags_requesteeble %]
+ <td>
+ [% IF (type.is_active && type.is_requestable && type.is_requesteeble) || flag.requestee %]
+ <span style="white-space: nowrap;">
+ [% IF Param('usemenuforusers') %]
+ [% flag_custom_list = flag.type.grant_list %]
+ [% IF !(type.is_active && type.is_requestable && type.is_requesteeble) %]
+ [%# We are here only because there was already a requestee. In this case,
+ the only valid action is to remove the requestee or leave it alone;
+ nothing else. %]
+ [% flag_custom_list = [flag.requestee] %]
+ [% END %]
+ [% INCLUDE global/userselect.html.tmpl
+ name => "requestee-$flag.id"
+ id => "requestee-$flag.id"
+ value => flag.requestee.login
+ multiple => 0
+ emptyok => 1
+ custom_userlist => flag_custom_list
+ %]
+ [% ELSE %]
+ (<input type="text" class="requestee" maxlength="255"
+ id="requestee-[% flag.id %]"
+ name="requestee-[% flag.id %]"
+ [% IF flag.status == "?" && flag.requestee %]
+ value="[% flag.requestee.login FILTER html %]"
+ [% END %]>)
+ [% END %]
+ </span>
+ [% END %]
+ </td>
+ [% END %]
+ </tr>
+ [% END %]
+
+ [%# Step 1b: Display UI for setting flag. %]
+ [% IF (!type.flags || type.flags.size == 0) && type.is_active %]
+
+ [% PROCESS flag_row first_cell_empty = 1 addl_text = "" %]
+ [% END %]
+ [% END %]
+
+ [%# Step 2: Display flag type again (if type is multiplicable). %]
+ [% FOREACH type = flag_types %]
+ [% NEXT UNLESS type.flags && type.flags.size > 0 && type.is_multiplicable && type.is_active %]
+ [% IF !separator_displayed %]
+ <tr><td colspan="3"><hr></td></tr>
+ [% separator_displayed = 1 %]
+ [% END %]
+
+ [% PROCESS flag_row first_cell_empty = 0 addl_text = "addl." %]
+ [% END %]
+</table>
+
+[% ELSE %]
+ [%# The user is logged out. Display flags as read-only. %]
+ [% header_displayed = 0 %]
+ [% FOREACH type = flag_types %]
+ [% FOREACH flag = type.flags %]
+ [% IF !flag_no_header AND !header_displayed %]
+ <p><b>Flags:</b></p>
+ [% header_displayed = 1 %]
+ [% END %]
+ [% flag.setter.nick FILTER html %]:
+ [%+ type.name FILTER html FILTER no_break %][% flag.status %]
+ [% IF flag.requestee %]
+ ([% flag.requestee.nick FILTER html %])
+ [% END %]<br>
+ [% END %]
+ [% END %]
+[% END %]
+
+[%# Display a table row for unset flags %]
+
+[% BLOCK flag_row %]
+ <tr>
+ [% IF first_cell_empty %]
+ <td>&nbsp;</td>
+ <td>
+ [% ELSE %]
+ <td colspan="2">
+ [% END %]
+
+ [% addl_text FILTER html %]
+ <label title="[% type.description FILTER html %]" for="flag_type-[% type.id %]">
+ [%- type.name FILTER html FILTER no_break %]</label>
+ </td>
+ <td>
+ <select id="flag_type-[% type.id %]" name="flag_type-[% type.id %]"
+ title="[% type.description FILTER html %]"
+ [% " disabled=\"disabled\"" UNLESS (type.is_requestable && user.can_request_flag(type)) || user.can_set_flag(type) %]
+ onchange="toggleRequesteeField(this);"
+ class="flag_select flag_type-[% type.id %]">
+ <option value="X"></option>
+ [% IF type.is_requestable && user.can_request_flag(type) %]
+ <option value="?">?</option>
+ [% END %]
+ [% IF user.can_set_flag(type) %]
+ <option value="+">+</option>
+ <option value="-">-</option>
+ [% END %]
+ </select>
+ </td>
+ [% IF any_flags_requesteeble %]
+ <td>
+ [% IF type.is_requestable && type.is_requesteeble %]
+ <span style="white-space: nowrap;">
+ [% IF Param('usemenuforusers') %]
+ [% INCLUDE global/userselect.html.tmpl
+ name => "requestee_type-$type.id"
+ id => "requestee_type-$type.id"
+ multiple => type.is_multiplicable * 3
+ emptyok => !type.is_multiplicable
+ value => ""
+ custom_userlist => type.grant_list
+ %]
+ [% ELSE %]
+ (<input type="text" class="requestee" maxlength="255"
+ id="requestee_type-[% type.id %]"
+ name="requestee_type-[% type.id %]">)
+ [% END %]
+ </span>
+ [% END %]
+ </td>
+ [% END %]
+ </tr>
+[% END %]