</th>
<td>
<select name="component" id="component" onchange="showCompDesc(this);">
- [%- FOREACH c = product.components %]
- [% NEXT IF NOT c.is_active %]
- <option value="[% c.name FILTER html %]"
- id="v[% c.id FILTER html %]_component"
- [% IF c.name == default.component_ %]
+ [%- FOREACH comp = product.components %]
+ [% NEXT IF NOT comp.is_active %]
+ <option value="[% comp.name FILTER html %]"
+ id="v[% comp.id FILTER html %]_component"
+ [% IF comp.name == default.component_ %]
selected="selected"
[% END %]>
- [% c.name FILTER html -%]
+ [% comp.name FILTER html -%]
</option>
[%- END %]
</select
<td>
<select id="component" name="component" required="required">
<option value="">Select One</option>
- [%- FOREACH c = product.components %]
- [% NEXT IF NOT c.is_active %]
- [% NEXT IF hide_components.contains(c.name) %]
- <option value="[% c.name FILTER html %]"
- [% ' selected="selected"' IF c.name == "General" %]>
- [% c.name FILTER html -%]
+ [%- FOREACH comp = product.components %]
+ [% NEXT IF NOT comp.is_active %]
+ [% NEXT IF hide_components.contains(comp.name) %]
+ <option value="[% comp.name FILTER html %]"
+ [% ' selected="selected"' IF comp.name == "General" %]>
+ [% comp.name FILTER html -%]
</option>
[%- END %]
</select>
<p>
<strong class="required">Component</strong><br>
<select name="component" id="component" size="7" aria-required="true" class="required">
- [% FOREACH c = product.components %]
- [% NEXT IF NOT c.is_active %]
- <option value="[% c.name FILTER html %]" title="[% c.description FILTER html %]"
- [%- IF c.name == default.component_ %]
+ [% FOREACH comp = product.components %]
+ [% NEXT IF NOT comp.is_active %]
+ <option value="[% comp.name FILTER html %]" title="[% comp.description FILTER html %]"
+ [%- IF comp.name == default.component_ %]
selected="selected"
[% END %]>
- [% c.name FILTER html -%]
+ [% comp.name FILTER html -%]
</option>
[%- END %]
</select>
[% ELSE %]
<table>
- [% FOREACH c = classifications %]
- [% IF c.object %]
+ [% FOREACH cls = classifications %]
+ [% IF cls.object %]
<tr>
- <td align="right"><h2>[% c.object.name FILTER html %]</h2></td>
- <td><strong>[%+ c.object.description FILTER html_light %]</strong></td>
+ <td align="right"><h2>[% cls.object.name FILTER html %]</h2></td>
+ <td><strong>[%+ cls.object.description FILTER html_light %]</strong></td>
</tr>
[% END %]
- [% FOREACH p = c.products %]
+ [% FOREACH p = cls.products %]
[% class = "" %]
[% has_entry_groups = 0 %]
[% FOREACH gid = p.group_controls.keys %]
[%###########################################################################%]
[% BLOCK easyproduct %]
- [% FOREACH c = classifications %]
- [% FOREACH p = c.products %]
+ [% FOREACH cls = classifications %]
+ [% FOREACH p = cls.products %]
[% IF p.name == name %]
<section class="product major">
<h3>
<tr>
<th>[% r.product FILTER html %]</th>
<th>Owner</th>
- [% FOREACH c IN r.bug_counts %]
+ [% FOREACH count IN r.bug_counts %]
<th class="count">
- [% IF c.key == "total"%]
+ [% IF count.key == "total"%]
Total
[% ELSE %]
- <span class="bug-type-label iconic" title="[% c.key FILTER html %]"
- aria-label="[% c.key FILTER html %]" data-type="[% c.key FILTER html %]">
+ <span class="bug-type-label iconic" title="[% count.key FILTER html %]"
+ aria-label="[% count.key FILTER html %]" data-type="[% count.key FILTER html %]">
<span class="icon" aria-hidden="true"></span>
</span>
[% END %]
<em>None</em>
[% END %]
</td>
- [% FOREACH c IN r.bug_counts %]
+ [% FOREACH count IN r.bug_counts %]
<td class="count">
- [% IF c.value %]
+ [% IF count.value %]
<a href="[% basepath FILTER none %]buglist.cgi?product=
[%~ r.product FILTER uri %]&component=[% r.component FILTER uri %]
- [%~ IF c.key != "total" %]&bug_type=[% c.key FILTER html; END %]&
+ [%~ IF count.key != "total" %]&bug_type=[% count.key FILTER html; END %]&
[%~ r.buglist_url FILTER html %]">
[% END %]
- [%~ c.value FILTER html ~%]
- [% IF c.value %]
+ [%~ count.value FILTER html ~%]
+ [% IF count.value %]
</a>
[% END %]
</td>
[% n = 1 %]
[% FOREACH p = user.get_selectable_products %]
cpts['[% n FILTER js %]'] = [
- [%- FOREACH c = p.components %]'[% c.name FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ];
+ [%- FOREACH comp = p.components %]'[% comp.name FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ];
[% n = n+1 %]
[% END %]
var selected_components = [
- [%- FOREACH c = input.component %]'[% c FILTER js %]'
+ [%- FOREACH comp = input.component %]'[% comp FILTER js %]'
[%- ',' UNLESS loop.last %] [%- END ~%] ];
[% END %]
[% caption = name %]
[% END %]
[% IF !desc %]
- [% FOREACH c = classifications %]
- [% FOREACH p = c.products %]
+ [% FOREACH cls = classifications %]
+ [% FOREACH p = cls.products %]
[% IF p.name == name %]
[% desc = p.description %]
[% LAST %]
%]
<table id="other_products">
-[% FOREACH c = classifications %]
- [% IF c.object %]
+[% FOREACH cls = classifications %]
+ [% IF cls.object %]
<tr class="classification">
<th align="right" valign="top">
- [% c.object.name FILTER html %]:
+ [% cls.object.name FILTER html %]:
</th>
<td>
- [% c.object.description FILTER html_light %]
+ [% cls.object.description FILTER html_light %]
</td>
</tr>
[% END %]
- [% FOREACH p = c.products %]
+ [% FOREACH p = cls.products %]
<tr>
<th align="right" valign="top">
<a href="javascript:void(0)" onclick="product.select('[% p.name FILTER js %]')">
],
[% ELSE %]
[%# all components (create bug) %]
- [% FOREACH c = product_obj.components %]
- [% NEXT UNLESS c.reviewers %]
- '[% c.name FILTER js %]': [
- [% FOREACH u = c.reviewers_objs %]
+ [% FOREACH comp = product_obj.components %]
+ [% NEXT UNLESS comp.reviewers %]
+ '[% comp.name FILTER js %]': [
+ [% FOREACH u = comp.reviewers_objs %]
[% NEXT IF u.id == user.id %]
[% PROCESS reviewer %][% "," UNLESS loop.last %]
[% END %]
[% n = 1 %]
[% FOREACH p = user.get_selectable_products %]
cpts['[% n FILTER js %]'] = [
- [%- FOREACH c = p.components %]'[% c.name FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ];
+ [%- FOREACH comp = p.components %]'[% comp.name FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%] ];
[% n = n+1 %]
[% END %]
var selected_components = [
- [%- FOREACH c = input.component %]'[% c FILTER js %]'
+ [%- FOREACH comp = input.component %]'[% comp FILTER js %]'
[%- ',' UNLESS loop.last %] [%- END ~%] ];
[% END %]
</div>
<script [% script_nonce FILTER none %]>
var user_story_exclude_components = [];
- [% FOREACH c = default.user_story_visible.1 %]
- user_story_exclude_components.push('[% c FILTER js %]');
+ [% FOREACH comp = default.user_story_visible.1 %]
+ user_story_exclude_components.push('[% comp FILTER js %]');
[% END %]
function toggleUserStory() {
if (YAHOO.util.Dom.get('user_story').value != '') {
<td>
[% IF product.components.size > 0 %]
<table>
- [% FOREACH c = product.components %]
+ [% FOREACH comp = product.components %]
<tr>
- <th align="right">[% c.name FILTER html %]:</th>
+ <th align="right">[% comp.name FILTER html %]:</th>
[%# descriptions are intentionally not filtered to allow html content %]
<td>
- [% IF c.description %]
- [% c.description FILTER html_light %]
+ [% IF comp.description %]
+ [% comp.description FILTER html_light %]
[% ELSE %]
<span style="color: red">missing</span>
[% END %]
<table id="admin_table" border="1" cellpadding="4" cellspacing="0">
<tr bgcolor="#6666FF">
- [% FOREACH c = columns %]
+ [% FOREACH col = columns %]
[%# Default to align left for headers %]
- <th align="[% (c.align || 'left') FILTER html %]">
- [% c.heading FILTER html %]
+ <th align="[% (col.align || 'left') FILTER html %]">
+ [% col.heading FILTER html %]
</th>
[% END %]
</tr>
[% FOREACH row = data %]
<tr>
- [% FOREACH c = columns %]
+ [% FOREACH col = 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
+ [% contentlink = col.contentlink
+ content = col.content
+ content_use_field = col.content_use_field
+ align = col.align
+ class = col.class
+ allow_html_content = col.allow_html_content
+ yesno_field = col.yesno_field
%]
- [%# Get any specific "important" overrides for this c.name and row.name ? %]
- [% SET important = overrides.${c.name}.name.${row.name} %]
+ [%# Get any specific "important" overrides for this col.name and row.name ? %]
+ [% SET important = overrides.${col.name}.name.${row.name} %]
[% IF important %]
[% ELSE %]
[%# Are there any specific overrides for this column? %]
- [% FOREACH match_field = overrides.${c.name}.keys %]
+ [% FOREACH match_field = overrides.${col.name}.keys %]
- [% override = overrides.${c.name}.${match_field}.${row.$match_field} %]
+ [% override = overrides.${col.name}.${match_field}.${row.$match_field} %]
[% NEXT UNLESS override %]
[% FOREACH key IN override.keys %]
<a href="[% basepath FILTER none %][% link_uri %]">
[% END %]
- [% IF content_use_field && field_descs.exists(row.${c.name}) %]
- [% colname = row.${c.name} %]
+ [% IF content_use_field && field_descs.exists(row.${col.name}) %]
+ [% colname = row.${col.name} %]
[% field_descs.${colname} FILTER html %]
[% ELSIF content %]
[% content FILTER html_light %]
[% ELSE %]
[% IF yesno_field %]
- [% IF row.${c.name} %]
+ [% IF row.${col.name} %]
Yes
[% ELSE %]
No
[% END %]
[% ELSE %]
[% IF allow_html_content %]
- [% row.${c.name} FILTER html_light %]
+ [% row.${col.name} FILTER html_light %]
[% ELSE %]
- [% row.${c.name} FILTER html %]
+ [% row.${col.name} FILTER html %]
[% END %]
[% END %]
[% END %]
[%# This script displays the descriptions for selected components. %]
<script [% script_nonce FILTER none %]>
var descriptions = [
-[% FOREACH c = product.components %]
- '[% c.description FILTER js %]',
+[% FOREACH comp = product.components %]
+ '[% comp.description FILTER js %]',
[% END %]
];
which is a useful default. %]
[% default.component_ = "General" %]
[% END %]
- [% FOREACH c = product.components %]
- <option value="[% c.name FILTER html %]"
- [% " selected=\"selected\"" IF c.name == default.component_ %]>
- [% c.name FILTER html %]
+ [% FOREACH comp = product.components %]
+ <option value="[% comp.name FILTER html %]"
+ [% " selected=\"selected\"" IF comp.name == default.component_ %]>
+ [% comp.name FILTER html %]
</option>
[% END %]
</select>
var last_initialqacontact;
[% END %]
[% count = 0 %]
-[%- FOREACH c = product.components %]
- [% NEXT IF NOT c.is_active %]
- components[[% count %]] = "[% c.name FILTER js %]";
- comp_desc[[% count %]] = "[% c.description FILTER html_light FILTER js %]";
- initialowners[[% count %]] = "[% c.default_assignee.login FILTER js %]";
- default_bug_types[[% count %]] = "[% c.default_bug_type FILTER js %]";
+[%- FOREACH comp = product.components %]
+ [% NEXT IF NOT comp.is_active %]
+ components[[% count %]] = "[% comp.name FILTER js %]";
+ comp_desc[[% count %]] = "[% comp.description FILTER html_light FILTER js %]";
+ initialowners[[% count %]] = "[% comp.default_assignee.login FILTER js %]";
+ default_bug_types[[% count %]] = "[% comp.default_bug_type FILTER js %]";
[% flag_list = [] %]
- [% FOREACH f = c.flag_types.bug %]
+ [% FOREACH f = comp.flag_types.bug %]
[% flag_list.push(f.id) %]
[% END %]
- [% FOREACH f = c.flag_types.attachment %]
+ [% FOREACH f = comp.flag_types.attachment %]
[% flag_list.push(f.id) %]
[% END %]
flags[[% count %]] = [[% flag_list.join(",") FILTER js %]];
[% IF Param("useqacontact") %]
- initialqacontacts[[% count %]] = "[% c.default_qa_contact.login FILTER js %]";
+ initialqacontacts[[% count %]] = "[% comp.default_qa_contact.login FILTER js %]";
[% END %]
[% SET initial_cc_list = [] %]
- [% FOREACH cc_user = c.initial_cc %]
+ [% FOREACH cc_user = comp.initial_cc %]
[% initial_cc_list.push(cc_user.login) %]
[% END %]
initialccs[[% count %]] = "[% initial_cc_list.join(', ') FILTER js %]";
[% qa_contacts_list = user.get_userlist.clone %]
[% END %]
- [%- FOREACH c = product.components %]
- [% NEXT IF NOT c.is_active %]
- <option value="[% c.name FILTER html %]"
- id="v[% c.id FILTER html %]_component"
- [% IF c.name == default.component_ %]
+ [%- FOREACH comp = product.components %]
+ [% NEXT IF NOT comp.is_active %]
+ <option value="[% comp.name FILTER html %]"
+ id="v[% comp.id FILTER html %]_component"
+ [% IF comp.name == default.component_ %]
[%# This is for bug/field.html.tmpl, for visibility-related
# controls. %]
- [% default.component_id = c.id %]
+ [% default.component_id = comp.id %]
selected="selected"
[% END %]>
- [% c.name FILTER html -%]
+ [% comp.name FILTER html -%]
</option>
[% IF Param("usemenuforusers") %]
- [% INCLUDE build_userlist default_user = c.default_assignee,
+ [% INCLUDE build_userlist default_user = comp.default_assignee,
userlist = assignees_list %]
- [% INCLUDE build_userlist default_user = c.default_qa_contact,
+ [% INCLUDE build_userlist default_user = comp.default_qa_contact,
userlist = qa_contacts_list %]
[% END %]
[%- END %]
[% IF user.id && bug.cc.size %]
<br>
<ul class="cc_list_display">
- [% FOREACH c = bug.cc %]
- <li>[% c FILTER email FILTER html %]</li>
+ [% FOREACH cc_addr = bug.cc %]
+ <li>[% cc_addr FILTER email FILTER html %]</li>
[% END %]
</ul>
[% END %]
[% IF bug.cc %]
<select id="cc" multiple="multiple" size="5"
[% IF bug.user.canedit %]name="cc"[% END %]>
- [% FOREACH c = bug.cc %]
- <option value="[% c FILTER email FILTER html %]">
- [% c FILTER email FILTER html %]</option>
+ [% FOREACH cc_addr = bug.cc %]
+ <option value="[% cc_addr FILTER email FILTER html %]">
+ [% cc_addr FILTER email FILTER html %]</option>
[% END %]
</select>
[% IF user.id && !bug.user.canedit %]
[% IF name == "cc" %]
<th class="rightcell">[% field_descs.cc FILTER html %]:</th>
<td>
- [% FOREACH c = bug.cc %]
- [% c FILTER email FILTER html %][% ", " IF not loop.last() %]
+ [% FOREACH cc_addr = bug.cc %]
+ [% cc_addr FILTER email FILTER html %][% ", " IF not loop.last() %]
[% END %]
[% ELSIF name == "reporter" || name == "assigned_to"
|| name == "qa_contact" %]
[% PROCESS section_flags obj => bug %]
[% IF displayfields.long_desc %]
- [% FOREACH c = bug.comments %]
- [% NEXT IF c.is_private && !user.is_insider %]
- <long_desc isprivate="[% c.is_private FILTER xml %]">
- <commentid>[% c.id FILTER xml %]</commentid>
- [% IF c.is_about_attachment %]
- <attachid>[% c.extra_data FILTER xml %]</attachid>
+ [% FOREACH comment = bug.comments %]
+ [% NEXT IF comment.is_private && !user.is_insider %]
+ <long_desc isprivate="[% comment.is_private FILTER xml %]">
+ <commentid>[% comment.id FILTER xml %]</commentid>
+ [% IF comment.is_about_attachment %]
+ <attachid>[% comment.extra_data FILTER xml %]</attachid>
[% END %]
- <who name="[% c.author.name FILTER xml %]">[% c.author.email FILTER email FILTER xml %]</who>
- <bug_when>[% c.creation_ts FILTER time("%Y-%m-%d %T %z") FILTER xml %]</bug_when>
- [% IF user.is_timetracker && (c.work_time - 0 != 0) %]
- <work_time>[% PROCESS formattimeunit time_unit = c.work_time FILTER xml %]</work_time>
+ <who name="[% comment.author.name FILTER xml %]">[% comment.author.email FILTER email FILTER xml %]</who>
+ <bug_when>[% comment.creation_ts FILTER time("%Y-%m-%d %T %z") FILTER xml %]</bug_when>
+ [% IF user.is_timetracker && (comment.work_time - 0 != 0) %]
+ <work_time>[% PROCESS formattimeunit time_unit = comment.work_time FILTER xml %]</work_time>
[% END %]
- <thetext>[% c.body_full FILTER xml %]</thetext>
+ <thetext>[% comment.body_full FILTER xml %]</thetext>
</long_desc>
[% END %]
[% END %]
<table>
-[% FOREACH c = classifications %]
- [% IF c.object %]
+[% FOREACH cls = classifications %]
+ [% IF cls.object %]
<tr>
- <th colspan="2" align="left">[% c.object.name FILTER html %]:
- [%+ c.object.description FILTER html_light %]</th>
+ <th colspan="2" align="left">[% cls.object.name FILTER html %]:
+ [%+ cls.object.description FILTER html_light %]</th>
</tr>
[% END %]
- [% FOREACH p = c.products %]
+ [% FOREACH p = cls.products %]
<tr>
<th align="right" valign="top">
<a href="[% target %]?product=[% p.name FILTER uri -%]
<script [% script_nonce FILTER none %]>
[%# This structure holds details of the series the user can select from. %]
var series = {
-[% FOREACH c = category.keys.sort %]
- "[%+ c FILTER js %]" : {
- [% FOREACH s = category.$c.keys.sort %]
+[% FOREACH cat = category.keys.sort %]
+ "[%+ cat FILTER js %]" : {
+ [% FOREACH s = category.$cat.keys.sort %]
"[%+ s FILTER js %]" : {
[% IF donames %]
- [% FOREACH n = category.$c.$s.keys.sort %]
+ [% FOREACH n = category.$cat.$s.keys.sort %]
"[% n FILTER js %]":
- [% category.$c.$s.$n FILTER js %][% ", " UNLESS loop.last %]
+ [% category.$cat.$s.$n FILTER js %][% ", " UNLESS loop.last %]
[% END %]
[% END %]
}[% ", " UNLESS loop.last %]
<select name="product" onchange="selectProduct(this, this.form.component, null, null, 'Any');">
<option value="">Any</option>
[% IF Param('useclassification') %]
- [% FOREACH c = user.get_selectable_classifications %]
- <optgroup label="[% c.name FILTER html %]">
- [% FOREACH p = user.get_selectable_products(c.id) %]
+ [% FOREACH cls = user.get_selectable_classifications %]
+ <optgroup label="[% cls.name FILTER html %]">
+ [% FOREACH p = user.get_selectable_products(cls.id) %]
<option value="[% p.name FILTER html %]"
[% " selected" IF cgi.param('product') == p.name %]>
[% p.name FILTER html %]
[%# Create an array of products, indexed by the classification #%]
[% nclass = 0 %]
-[% FOREACH c = classification %]
+[% FOREACH cls = classification %]
prods[[% nclass FILTER js %]] = [
[% sep = '' %]
- [%- FOREACH item = user.get_selectable_products(c.id) -%]
+ [%- FOREACH item = user.get_selectable_products(cls.id) -%]
[%- IF item.components.size -%]
[%- sep FILTER js %]'[% item.name FILTER js %]'
[%- sep = ',' -%]
<td>
<select name="product" id="product">
[% IF Param('useclassification') %]
- [% FOREACH c = classification %]
- <optgroup label="[% c.name FILTER html %]">
- [% FOREACH p = user.get_selectable_products(c.id) %]
+ [% FOREACH cls = classification %]
+ <optgroup label="[% cls.name FILTER html %]">
+ [% FOREACH p = user.get_selectable_products(cls.id) %]
[% IF p.components.size %]
<option value="[% p.name FILTER html %]"
[% " selected" IF lsearch(default.product, p.name) != -1 %]>
<select name="product" id="product">
<option value="">All</option>
[% IF Param('useclassification') %]
- [% FOREACH c = classification %]
- <optgroup label="[% c.name FILTER html %]">
- [% FOREACH p = user.get_selectable_products(c.id) %]
+ [% FOREACH cls = classification %]
+ <optgroup label="[% cls.name FILTER html %]">
+ [% FOREACH p = user.get_selectable_products(cls.id) %]
[% IF p.components.size %]
<option value="[% p.name FILTER html %]"
[% " selected" IF default.product.contains(p.name) %]>