Commit 794419ca authored by wurblzap%gmail.com's avatar wurblzap%gmail.com

Bug 281691: Misused <label>'s cause screen reader problems.

Patch by Marc Schumann <wurblzap@gmail.com>, r=LpSolit, a=justdave
parent 6ec3903c
......@@ -130,7 +130,8 @@
<input type="checkbox" name="isprivate-[% count %]" value="1"
onClick="updateCommentPrivacy(this, [% count %])"
id="isprivate-[% count %]"
[% " checked=\"checked\"" IF comment.isprivate %]> Private
[% " checked=\"checked\"" IF comment.isprivate %]>
<label for="isprivate-[% count %]">Private</label>
</i>
[% END %]
[% IF UserInGroup(Param('timetrackinggroup')) &&
......
......@@ -157,34 +157,29 @@
[% IF Param("usebugaliases") %]
<tr>
<td align="right">
<b>Alias:</b>
<label for="alias" title="a name for the [% terms.bug %] that can be used in place of its ID number, f.e. when adding it to a list of dependencies"><b>Alias</b></label>:
</td>
<td>
<label for="alias" title="a name for the [% terms.bug %] that can be used in place of its ID number, f.e. when adding it to a list of dependencies">
<input id="alias" name="alias" value="[% bug.alias FILTER html %]"
size="20" maxlength="20">
</label>
<input id="alias" name="alias" value="[% bug.alias FILTER html %]"
size="20" maxlength="20">
</td>
</tr>
[% END %]
<tr>
<td align="right">
<b><u>P</u>roduct:</b>
<label for="product" accesskey="p"><b><u>P</u>roduct</b></label>:
</td>
[% PROCESS select selname => "product" accesskey => "p" %]
[% PROCESS select selname => "product" %]
</tr>
[%# *** Component Version CC Priority Severity AssignedTo Milestone *** %]
<tr>
<td align="right">
<b>
<a href="describecomponents.cgi?product=[% bug.product FILTER url_quote %]">
Co<u>m</u>ponent</a>:
</b>
<label for="component" accesskey="m"><b><a href="describecomponents.cgi?product=[% bug.product FILTER url_quote %]">Co<u>m</u>ponent</a></b></label>:
</td>
[% PROCESS select selname => "component" accesskey => "m" %]
[% PROCESS select selname => "component" %]
</tr>
<tr>
......@@ -228,35 +223,35 @@
<tr>
<td align="right">
<b><u>H</u>ardware:</b>
<label for="rep_platform" accesskey="h"><b><u>H</u>ardware</b></label>:
</td>
[% PROCESS select selname => "rep_platform" accesskey => "h" %]
[% PROCESS select selname => "rep_platform" %]
</tr>
<tr>
<td align="right">
<b><u>O</u>S:</b>
<label for="op_sys" accesskey="o"><b><u>O</u>S</b></label>:
</td>
[% PROCESS select selname => "op_sys" accesskey => "o" %]
[% PROCESS select selname => "op_sys" %]
</tr>
<tr>
<td align="right">
<b>Version:</b>
<label for="version"><b>Version</b></label>:
</td>
[% PROCESS select selname => "version" %]
</tr>
<tr>
<td align="right">
<b><a href="page.cgi?id=fields.html#priority">Pr<u>i</u>ority</a>:</b>
<label for="priority" accesskey="i"><b><a href="page.cgi?id=fields.html#priority">Pr<u>i</u>ority</a></b></label>:
</td>
[% PROCESS select selname => "priority" accesskey => "i" %]
[% PROCESS select selname => "priority" %]
</tr>
<tr>
<td align="right">
<b><a href="page.cgi?id=fields.html#bug_severity">Severity</a>:</b>
<label for="bug_severity"><b><a href="page.cgi?id=fields.html#bug_severity">Severity</a></b></label>:
</td>
[% PROCESS select selname = "bug_severity" %]
</tr>
......@@ -264,12 +259,12 @@
[% IF Param("usetargetmilestone") && bug.target_milestone %]
<tr>
<td align="right">
<b>
<label for="target_milestone"><b>
[% IF bug.milestoneurl %]
<a href="[% bug.milestoneurl FILTER html %]">
[% END %]
Target Milestone[% "</a>" IF bug.milestoneurl %]:
</b>
Target Milestone[% "</a>" IF bug.milestoneurl %]
[%%]</b></label>:
</td>
[% PROCESS select selname = "target_milestone" %]
</tr>
......@@ -294,13 +289,13 @@
<tr>
<td align="right" valign="top">
<b><u>A</u>dd&nbsp;CC:</b>
<label for="newcc" accesskey="a"><b><u>A</u>dd&nbsp;CC</b></label>:
</td>
<td>
[% INCLUDE global/userselect.html.tmpl
id => "newcc"
name => "newcc"
value => ""
accesskey => "a"
size => 30
multiple => 5
%]
......@@ -308,23 +303,24 @@
</tr>
<tr>
<td align="right" valign="top">
<b>CC:</b>
</td>
<td valign="top">
[% IF bug.cc %]
<select name="cc" multiple="multiple" size="5">
[% FOREACH c = bug.cc %]
<option value="[% c FILTER html %]">[% c FILTER html %]</option>
[% END %]
</select>
<br>
<input type="checkbox" name="removecc">Remove selected CCs
<br>
<td align="right" valign="top">
<label for="cc"><b>CC</b></label>:
</td>
<td valign="top">
<select id="cc" name="cc" multiple="multiple" size="5">
[% FOREACH c = bug.cc %]
<option value="[% c FILTER html %]">[% c FILTER html %]</option>
[% END %]
</select>
<br>
<input type="checkbox" id="removecc" name="removecc">
[%%]<label for="removecc">Remove selected CCs</label>
<br>
</td>
[% ELSE %]
<input type="hidden" name="cc" value="">
<td colspan="2"><input type="hidden" name="cc" value=""></td>
[% END %]
</td>
</tr>
</table>
......@@ -341,13 +337,13 @@
[% IF Param('useqacontact') %]
<tr>
<td align="right">
<b><u>Q</u>A Contact:</b>
<label for="qa_contact" accesskey="q"><b><u>Q</u>A Contact</b></label>:
</td>
<td colspan="7">
[% INCLUDE global/userselect.html.tmpl
id => "qa_contact"
name => "qa_contact"
value => bug.qa_contact.login
accesskey => "q"
size => 60
emptyok => 1
%]
......@@ -357,27 +353,27 @@
<tr>
<td align="right">
<b>
<label for="bug_file_loc" accesskey="u"><b>
[% IF bug.bug_file_loc
AND NOT bug.bug_file_loc.match("^(javascript|data)") %]
<a href="[% bug.bug_file_loc FILTER html %]"><u>U</u>RL</a>:
<a href="[% bug.bug_file_loc FILTER html %]"><u>U</u>RL</a>
[% ELSE %]
<u>U</u>RL:
<u>U</u>RL
[% END %]
</b>
[%%]</b></label>:
</td>
<td colspan="5">
<input name="bug_file_loc" accesskey="u"
<input name="bug_file_loc" id="bug_file_loc"
value="[% bug.bug_file_loc FILTER html %]" size="60">
</td>
</tr>
<tr>
<td align="right">
<b><u>S</u>ummary:</b>
<label for="short_desc" accesskey="s"><b><u>S</u>ummary</b></label>:
</td>
<td colspan="5">
<input name="short_desc" accesskey="s"
<input name="short_desc" id="short_desc"
value="[% bug.short_desc FILTER html %]" size="60">
</td>
</tr>
......@@ -385,10 +381,11 @@
[% IF Param('usestatuswhiteboard') %]
<tr>
<td align="right">
<b>Status <u>W</u>hiteboard:</b>
<label for="status_whiteboard" accesskey="w"><b>Status
<u>W</u>hiteboard</b></label>:
</td>
<td colspan="5">
<input name="status_whiteboard" accesskey="w"
<input name="status_whiteboard" id="status_whiteboard"
value="[% bug.status_whiteboard FILTER html %]" size="60">
</td>
</tr>
......@@ -397,11 +394,9 @@
[% IF use_keywords %]
<tr>
<td align="right">
<b>
<a href="describekeywords.cgi"><u>K</u>eywords</a>:
</b>
<label for="keywords" accesskey="k"><b><a href="describekeywords.cgi"><u>K</u>eywords</a></b></label>:
<td colspan="5">
<input name="keywords" accesskey="k"
<input name="keywords" id="keywords"
value="[% bug.keywords.join(', ') FILTER html %]" size="60">
</td>
</tr>
......@@ -431,16 +426,16 @@
<table cellspacing="0" cellpadding="4" border="1">
<tr>
<th align="center" bgcolor="#cccccc">
Orig. Est.
<label for="estimated_time">Orig. Est.</label>
</th>
<th align="center" bgcolor="#cccccc">
Current Est.
</th>
<th align="center" bgcolor="#cccccc">
Hours Worked
<label for="work_time">Hours Worked</label>
</th>
<th align="center" bgcolor="#cccccc">
Hours Left
<label for="remaining_time">Hours Left</label>
</th>
<th align="center" bgcolor="#cccccc">
%Complete
......@@ -449,12 +444,12 @@
Gain
</th>
<th align="center" bgcolor="#cccccc">
Deadline
<label for="deadline">Deadline</label>
</th>
</tr>
<tr>
<td align="center">
<input name="estimated_time"
<input name="estimated_time" id="estimated_time"
value="[% PROCESS formattimeunit
time_unit=bug.estimated_time %]"
size="6" maxlength="6">
......@@ -465,11 +460,12 @@
</td>
<td align="center">
[% PROCESS formattimeunit time_unit=bug.actual_time %] +
<input name="work_time" value="0" size="3" maxlength="6"
<input name="work_time" id="work_time"
value="0" size="3" maxlength="6"
onchange="adjustRemainingTime();">
</td>
<td align="center">
<input name="remaining_time"
<input name="remaining_time" id="remaining_time"
value="[% PROCESS formattimeunit
time_unit=bug.remaining_time %]"
size="6" maxlength="6" onchange="updateRemainingTime();">
......@@ -482,7 +478,7 @@
[% PROCESS formattimeunit time_unit=bug.estimated_time - (bug.actual_time + bug.remaining_time) %]
</td>
<td align="center">
<input name="deadline" value="[% bug.deadline %]"
<input name="deadline" id="deadline" value="[% bug.deadline %]"
size="10" maxlength="10"><br />
<small>(YYYY-MM-DD)</small>
</td>
......@@ -559,11 +555,12 @@
[%# *** Comments Groups *** %]
<br>
<b>Additional <u>C</u>omments:</b>
<label for="comment" accesskey="c"><b>Additional <u>C</u>omments</b></label>:
[% IF Param("insidergroup") && UserInGroup(Param("insidergroup")) %]
<input type="checkbox" name="commentprivacy" value="1"
id="newcommentprivacy"
onClick="updateCommentTagControl(this, form)"> Private
onClick="updateCommentTagControl(this, form)">
<label for="newcommentprivacy">Private</label>
[% END %]
<br>
<a name="add_comment"></a>
......@@ -573,15 +570,12 @@
minrows = 10
maxrows = 25
cols = constants.COMMENT_COLS
accesskey = 'c'
%]
[% IF NOT bug.cc || NOT bug.cc.contains(user.login) %]
<br>
<label for="addselfcc">
<input type="checkbox" id="addselfcc" name="addselfcc">
Add [% user.login FILTER html %] to CC list
</label>
<input type="checkbox" id="addselfcc" name="addselfcc">
<label for="addselfcc">Add [% user.login FILTER html %] to CC list</label>
[% END %]
<br>
......@@ -606,10 +600,11 @@
[% END %]
&nbsp;&nbsp;&nbsp;&nbsp;
<input type="checkbox" name="bit-[% group.bit %]" value="1"
[% " checked=\"checked\"" IF group.ison %]
[% " disabled=\"disabled\"" IF NOT group.ingroup %]>
[% group.description %]
<input type="checkbox" value="1"
name="bit-[% group.bit %]" id="bit-[% group.bit %]"
[% " checked=\"checked\"" IF group.ison %]
[% " disabled=\"disabled\"" IF NOT group.ingroup %]>
<label for="bit-[% group.bit %]">[% group.description %]</label>
<br>
[% END %]
[% END %]
......@@ -637,10 +632,14 @@
</p>
<p>
<input type="checkbox" name="reporter_accessible" value="1"
[% " checked" IF bug.reporter_accessible %]>Reporter
<input type="checkbox" name="cclist_accessible" value="1"
[% " checked" IF bug.cclist_accessible %]>CC List
<input type="checkbox" value="1"
name="reporter_accessible" id="reporter_accessible"
[% " checked" IF bug.reporter_accessible %]>
<label for="reporter_accessible">Reporter</label>
<input type="checkbox" value="1"
name="cclist_accessible" id="cclist_accessible"
[% " checked" IF bug.cclist_accessible %]>
<label for="cclist_accessible">CC List</label>
</p>
[% END %]
[% END %]
......@@ -663,14 +662,17 @@
[%############################################################################%]
[% BLOCK dependencies %]
<th align="right">[% terms.Bug %] [%+ bug.bug_id %] [%+ dep.title %]:</th>
<th align="right">
<label for="[% dep.fieldname %]"[% " accesskey=\"$accesskey\"" IF accesskey %]>
[% terms.Bug %] [%+ bug.bug_id %] [%+ dep.title %]</label>:
</th>
<td>
[% FOREACH depbug = bug.${dep.fieldname} %]
[% depbug FILTER bug_link(depbug) %][% " " %]
[% END %]
</td>
<td>
<input name="[% dep.fieldname %]" accesskey="[% accesskey %]"
<input name="[% dep.fieldname %]" id="[% dep.fieldname %]"
value="[% bug.${dep.fieldname}.join(', ') %]">
</td>
[% END %]
......@@ -682,14 +684,12 @@
[% BLOCK select %]
<td>
<label for="[% selname %]" accesskey="[% accesskey %]">
<select name="[% selname %]" id="[% selname %]">
[% FOREACH x = bug.choices.${selname} %]
<option value="[% x FILTER html %]"
[% " selected" IF x == bug.${selname} %]>[% x FILTER html %]
</option>
[% END %]
</select>
</label>
<select id="[% selname %]" name="[% selname %]">
[% FOREACH x = bug.choices.${selname} %]
<option value="[% x FILTER html %]"
[% " selected" IF x == bug.${selname} %]>[% x FILTER html %]
</option>
[% END %]
</select>
</td>
[% END %]
......@@ -258,8 +258,8 @@
<table>
<tr>
<td align="right">
<b>Period <label accesskey="s"
for="start_date"><u>s</u>tarting</label></b>:
<b><label accesskey="s"
for="start_date">Period <u>s</u>tarting</label></b>:
</td><td colspan="3">
<input type="text" id="start_date" name="start_date" size="11"
align="right" value="[% start_date FILTER html %]" maxlength="10">
......@@ -286,26 +286,24 @@
%]><label
for="owner" accesskey="d"><u>D</u>eveloper</label>
</td><td colspan="2">
<b>Format</b>: <select name="ctype">
<label for="ctype"><b>Format</b></label>: <select name="ctype" id="ctype">
<option value="html">HTML Report</option>
</select>
</td></tr><tr>
<td>&nbsp;</td><td colspan="4">
<label for="monthly" accesskey="m">
<input type="checkbox" name="monthly" [% 'checked="checked"' IF
monthly %] id="monthly">
Split by <u>m</u>onth</label>
<label for="monthly" accesskey="m">Split by <u>m</u>onth</label>
[%# XXX: allow splitting by other intervals %]
&nbsp;
<label for="detailed" accesskey="t">
<input type="checkbox" name="detailed" [% 'checked="checked"' IF
detailed %] id="detailed">
De<u>t</u>ailed summaries</label>
<label for="detailed" accesskey="t">De<u>t</u>ailed summaries</label>
&nbsp;
<label for="inactive" accesskey="i">
<input type="checkbox" name="inactive" [% 'checked="checked"' IF
inactive %] id="inactive">
Also show <u>i</u>nactive [% terms.bugs %]</label>
<label for="inactive" accesskey="i">Also show <u>i</u>nactive
[%+ terms.bugs %]</label>
</td>
</tr></table>
......
......@@ -79,7 +79,6 @@
'field.description',
'field.accesskey',
'sel.name',
'sel.accesskey',
],
'search/search-specific.html.tmpl' => [
......@@ -169,7 +168,6 @@
'reports/series-common.html.tmpl' => [
'sel.name',
'sel.accesskey',
'"onchange=\"$sel.onchange\"" IF sel.onchange',
],
......@@ -325,11 +323,11 @@
'group.description',
'dep.title',
'dep.fieldname',
'accesskey',
'bug.${dep.fieldname}.join(\', \')',
'selname',
'depbug FILTER bug_link(depbug)',
'"${bug.dup_id}" FILTER bug_link(bug.dup_id)',
'" accesskey=\"$accesskey\"" IF accesskey',
],
'bug/knob.html.tmpl' => [
......
......@@ -98,8 +98,9 @@
[% flag.setter.nick FILTER html %]:
</td>
<td>
<label title="[% type.description FILTER html %]">
[%- type.name FILTER html FILTER no_break %]</label>
<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 %]"
......@@ -140,7 +141,8 @@
<tr>
<td>&nbsp;</td>
<td>
<label title="[% type.description FILTER html %]">
<label title="[% type.description FILTER html %]"
for="flag_type-[% type.id %]">
[%- type.name FILTER html FILTER no_break %]</label>
</td>
<td>
......@@ -179,7 +181,8 @@
[% END %]
<tr>
<td colspan="2">
addl. <label title="[% type.description FILTER html %]">
addl. <label title="[% type.description FILTER html %]"
for="flag_type-[% type.id %]">
[%- type.name FILTER html FILTER no_break %]</label>
</td>
<td>
......
......@@ -70,11 +70,11 @@ function subcatSelected() {
</tr>
[% ELSE %]
<tr>
<th>Category:</th>
<th><label for="category">Category</label>:</th>
<th></th>
<th>Sub-category:</th>
<th><label for="subcategory">Sub-category</label>:</th>
<th></th>
<th>Name:</th>
<th><label for="name" accesskey="N">Name</label>:</th>
<th><br>
</th>
</tr>
......@@ -102,19 +102,17 @@ function subcatSelected() {
</td>
<td align="left">
<label for="name" accesskey="N">
<select name="name" id="name" style="width: 15em"
size="5" multiple="multiple"
[%+ "disabled=\"disabled\"" UNLESS name.keys.size %]>
[% FOREACH x = name.keys.sort %]
<option value="[% name.$x FILTER html %]">
[% x FILTER html %]</option>
[% END %]
[% UNLESS name.keys.size %]
<option value="" disabled="disabled"></option>
[% END %]
</select>
</label>
<select name="name" id="name" style="width: 15em"
size="5" multiple="multiple"
[%+ "disabled=\"disabled\"" UNLESS name.keys.size %]>
[% FOREACH x = name.keys.sort %]
<option value="[% name.$x FILTER html %]">
[% x FILTER html %]</option>
[% END %]
[% UNLESS name.keys.size %]
<option value="" disabled="disabled"></option>
[% END %]
</select>
</td>
<td align="center" valign="middle">
......@@ -233,18 +231,18 @@ function subcatSelected() {
</td>
<td style="text-align: right; vertical-align: bottom;">
<b>Cumulate:</b>
<input type="checkbox" name="cumulate" value="1"
<label for="cumulate"><b>Cumulate</b></label>:
<input type="checkbox" name="cumulate" id="cumulate" value="1"
[% " checked" IF chart.cumulate %]>
</td>
<td></td>
<td valign="bottom">
<b>Date Range:</b>
<input type="text" size="12" name="datefrom"
<td valign="bottom">
<label for="datefrom"><b>Date Range</b></label>:
<input type="text" size="12" name="datefrom" id="datefrom"
value="[% time2str("%Y-%m-%d", chart.datefrom) IF chart.datefrom%]">
<b>to</b>
<input type="text" size="12" name="dateto"
<label for="dateto"><b>to</b></label>
<input type="text" size="12" name="dateto" id="dateto"
value="[% time2str("%Y-%m-%d", chart.dateto) IF chart.dateto %]">
</td>
......
......@@ -99,22 +99,20 @@ function checkNewState() {
[% BLOCK series_select %]
<td align="left">
<label for="[% sel.name %]" accesskey="[% sel.accesskey %]">
<select name="[% sel.name %]" id="[% sel.name %]"
size="[% sel.size %]" style="width: 15em"
[%+ "disabled=\"disabled\"" UNLESS ${sel.name}.keys.size || newtext %]
[%+ "onchange=\"$sel.onchange\"" IF sel.onchange %]>
[% FOREACH x = ${sel.name}.keys.sort %]
<option value="[% x FILTER html %]"
[% " selected" IF default.${sel.name} == x %]>
[% x FILTER html %]</option>
[% END %]
[% IF newtext %]
<option value="">[% newtext FILTER html %]</option>
[% ELSIF NOT ${sel.name}.keys.size %]
<option value="" disabled="disabled"></option>
[% END %]
</select>
</label>
<select name="[% sel.name %]" id="[% sel.name %]"
size="[% sel.size %]" style="width: 15em"
[%+ "disabled=\"disabled\"" UNLESS ${sel.name}.keys.size || newtext %]
[%+ "onchange=\"$sel.onchange\"" IF sel.onchange %]>
[% FOREACH x = ${sel.name}.keys.sort %]
<option value="[% x FILTER html %]"
[% " selected" IF default.${sel.name} == x %]>
[% x FILTER html %]</option>
[% END %]
[% IF newtext %]
<option value="">[% newtext FILTER html %]</option>
[% ELSIF NOT ${sel.name}.keys.size %]
<option value="" disabled="disabled"></option>
[% END %]
</select>
</td>
[% END %]
......@@ -124,7 +124,9 @@ function doOnSelectProduct(selectmode) {
<table>
<tr>
<th align="right"><u>S</u>ummary:</th>
<th align="right">
<label for="short_desc" accesskey="s"><u>S</u>ummary</label>:
</th>
<td>
<select name="short_desc_type">
[% FOREACH qv = query_variants %]
......@@ -134,7 +136,7 @@ function doOnSelectProduct(selectmode) {
</select>
</td>
<td>
<input name="short_desc" size="40" accesskey="s"
<input name="short_desc" id="short_desc" size="40"
value="[% default.short_desc.0 FILTER html %]">
<script type="text/javascript"> <!--
document.forms[queryform].short_desc.focus();
......@@ -157,21 +159,21 @@ function doOnSelectProduct(selectmode) {
<td valign="top">
<table>
<tr valign="bottom">
<th align="left"><u>C</u>lassification:</th>
<th align="left">
<label for="classification">Classification</label>:
</th>
</tr>
<tr valign="top">
<td align="left">
<label for="classification">
<select name="classification" multiple="multiple" size="5" id="classification"
onchange="doOnSelectProduct(1);">
<select name="classification" multiple="multiple" size="5" id="classification"
onchange="doOnSelectProduct(1);">
[% FOREACH cat = classification %]
<option value="[% cat.name FILTER html %]"
[% " selected" IF lsearch(default.classification, cat.name) != -1 %]>
[% cat.name FILTER html %]
</option>
[% END %]
</select>
</label>
</select>
</td>
</tr>
</table>
......@@ -180,21 +182,21 @@ function doOnSelectProduct(selectmode) {
<td valign="top">
<table>
<tr valign="bottom">
<th align="left"><u>P</u>roduct:</th>
<th align="left">
<label for="product" accesskey="p"><u>P</u>roduct</label>:
</th>
</tr>
<tr valign="top">
[%# Can't use the select block here because of the onChange %]
<td align="left">
<label for="product" accesskey="p">
<select name="product" multiple="multiple" size="5" id="product"
onchange="doOnSelectProduct(2);">
<select name="product" multiple="multiple" size="5" id="product"
onchange="doOnSelectProduct(2);">
[% FOREACH p = product %]
<option value="[% p.name FILTER html %]"
[% " selected" IF lsearch(default.product, p.name) != -1 %]>
[% p.name FILTER html %]</option>
[% END %]
</select>
</label>
</select>
</td>
</tr>
</table>
......@@ -203,23 +205,21 @@ function doOnSelectProduct(selectmode) {
<table>
<tr valign="bottom">
<th align="left">
<a href="describecomponents.cgi">Co<u>m</u>ponent</a>:
<label for="component" accesskey="m"><a href="describecomponents.cgi">Co<u>m</u>ponent</a></label>:
</th>
</tr>
<tr valign="top">
[%# Can't use the select block here because 'component' is a toolkit
reserved word - we use 'component_' instead. %]
<td align="left">
<label for="component" accesskey="m">
<select name="component" id="component"
multiple="multiple" size="5">
<select name="component" id="component"
multiple="multiple" size="5">
[% FOREACH c = component_ %]
<option value="[% c FILTER html %]"
[% " selected" IF lsearch(default.component, c) != -1 %]>
[% c FILTER html %]</option>
[% END %]
</select>
</label>
</select>
</td>
</tr>
</table>
......@@ -227,12 +227,13 @@ function doOnSelectProduct(selectmode) {
<td valign="top">
<table>
<tr valign="bottom">
<th align="left"><u>V</u>ersion:</th>
<th align="left">
<label for="version">Version</label>:
</th>
</tr>
<tr valign="top">
[% PROCESS select sel = { name => 'version',
size => 5,
accesskey => 'v' } %]
size => 5 } %]
</tr>
</table>
</td>
......@@ -240,12 +241,13 @@ function doOnSelectProduct(selectmode) {
<td valign="top">
<table>
<tr valign="bottom">
<th align="left"><u>T</u>arget:</th>
<th align="left">
<label for="target_milestone">Target</label>:
</th>
</tr>
<tr valign="top">
[% PROCESS select sel = { name => 'target_milestone',
size => 5,
accesskey => 't' } %]
size => 5 } %]
</tr>
</table>
</td>
......@@ -267,7 +269,9 @@ function doOnSelectProduct(selectmode) {
[% UNLESS field.name == 'status_whiteboard' AND NOT Param('usestatuswhiteboard') %]
<tr>
<th align="right">[% field.description %]:</th>
<th align="right">
<label for="[% field.name %]" accesskey="[% field.accesskey %]">[% field.description %]</label>:
</th>
<td>
<select name="[% field.name %]_type">
[% FOREACH qv = query_variants %]
......@@ -277,8 +281,7 @@ function doOnSelectProduct(selectmode) {
[% END %]
</select>
</td>
<td><input name="[% field.name %]" size="40"
accesskey="[% field.accesskey %]"
<td><input name="[% field.name %]" id="[% field.name %]" size="40"
value="[% default.${field.name}.0 FILTER html %]">
</td>
<td></td>
......@@ -289,7 +292,7 @@ function doOnSelectProduct(selectmode) {
[% IF have_keywords %]
<tr>
<th align="right">
<a href="describekeywords.cgi"><u>K</u>eywords</a>:
<label for="keywords" accesskey="k"><a href="describekeywords.cgi"><u>K</u>eywords</a></label>:
</th>
<td>
<select name="keywords_type">
......@@ -305,7 +308,7 @@ function doOnSelectProduct(selectmode) {
</select>
</td>
<td>
<input name="keywords" size="40" accesskey="k"
<input name="keywords" id="keywords" size="40"
value="[% default.keywords.0 FILTER html %]">
</td>
</tr>
......@@ -315,11 +318,11 @@ function doOnSelectProduct(selectmode) {
[% IF UserInGroup(Param("timetrackinggroup")) %]
<tr>
<th align="right">
Dead<u>l</u>ine:
<label for="deadlinefrom" accesskey="l">Dead<u>l</u>ine</label>:
</th>
<td>
from&nbsp;
<input name="deadlinefrom" size="10" maxlength="10" accesskey="l">&nbsp;
<input name="deadlinefrom" id="deadlinefrom" size="10" maxlength="10">&nbsp;
to&nbsp;
<input name="deadlineto" size="10" maxlength="10">
</td>
......@@ -340,12 +343,13 @@ function doOnSelectProduct(selectmode) {
<td>
<table>
<tr>
<th align="left">St<u>a</u>tus:</th>
<th align="left">
<label for="bug_status" accesskey="a">St<u>a</u>tus</label>:
</th>
</tr>
<tr valign="top">
[% PROCESS select sel = { name => 'bug_status',
size => 7,
accesskey => 'a' } %]
size => 7 } %]
</tr>
</table>
</td>
......@@ -353,61 +357,64 @@ function doOnSelectProduct(selectmode) {
<table>
<tr>
<th align="left">
<u>R</u>esolution:
<label for="resolution" accesskey="r"><u>R</u>esolution</label>:
</th>
</tr>
<tr valign="top">
[% PROCESS select sel = { name => 'resolution',
size => 7,
accesskey => 'r' } %]
size => 7 } %]
</tr>
</table>
</td>
<td>
<table>
<tr>
<th align="left">S<u>e</u>verity:</th>
<th align="left">
<label for="bug_severity">Severity</label>:
</th>
</tr>
<tr valign="top">
[% PROCESS select sel = { name => 'bug_severity',
size => 7,
accesskey => 'e' } %]
size => 7 }%]
</tr>
</table>
</td>
<td>
<table>
<tr>
<th align="left">Pr<u>i</u>ority:</th>
<th align="left">
<label for="priority" accesskey="i">Pr<u>i</u>ority</label>:
</th>
</tr>
<tr valign="top">
[% PROCESS select sel = { name => 'priority',
size => 7,
accesskey => 'i' } %]
size => 7 } %]
</tr>
</table>
</td>
<td>
<table>
<tr>
<th align="left"><u>H</u>ardware:</th>
<th align="left">
<label for="rep_platform" accesskey="h"><u>H</u>ardware</label>:
</th>
</tr>
<tr valign="top">
[% PROCESS select sel = { name => 'rep_platform',
size => 7,
accesskey => 'h' } %]
size => 7 } %]
</tr>
</table>
</td>
<td>
<table>
<tr>
<th align="left"><u>O</u>S:</th>
<th align="left">
<label for="op_sys" accesskey="o"><u>O</u>S</label>:
</th>
</tr>
<tr valign="top">
[% PROCESS select sel = { name => 'op_sys',
size => 7,
accesskey => 'o' } %]
size => 7 } %]
</tr>
</table>
</td>
......@@ -528,10 +535,11 @@ function doOnSelectProduct(selectmode) {
<option value="include"[% " selected" IF default.bugidtype.0 == "include" %]>Only include</option>
<option value="exclude"[% " selected" IF default.bugidtype.0 == "exclude" %]>Exclude</option>
</select>
[% terms.bugs %] numbered:
<label for="bug_id">[% terms.bugs %] numbered</label>:
</td>
<td>
<input type="text" name="bug_id" value="[% default.bug_id.0 FILTER html %]" size="20">
<input type="text" name="bug_id" id="bug_id"
value="[% default.bug_id.0 FILTER html %]" size="20">
</td>
</tr>
<tr>
......@@ -541,10 +549,12 @@ function doOnSelectProduct(selectmode) {
[% IF Param('usevotes') %]
<tr>
<td align="right">
Only [% terms.bugs %] with at least:
<label for="votes">Only [% terms.bugs %] with at least</label>:
</td>
<td>
<input name="votes" size="3" value="[% default.votes.0 FILTER html %]"> votes
<input name="votes" id="votes" size="3"
value="[% default.votes.0 FILTER html %]">
votes
</td>
</tr>
[% END %]
......@@ -562,15 +572,20 @@ function doOnSelectProduct(selectmode) {
<dl class="bug_changes">
<dt>Only [% terms.bugs %] changed between:</dt>
<dt>
<label for="chfieldfrom">Only [% terms.bugs %] changed between</label>:
</dt>
<dd>
<input name="chfieldfrom" size="10" value="[% default.chfieldfrom.0 FILTER html %]">
<input name="chfieldfrom" id="chfieldfrom"
size="10" value="[% default.chfieldfrom.0 FILTER html %]">
and <input name="chfieldto" size="10" value="[% default.chfieldto.0 FILTER html %]">
<br>(YYYY-MM-DD or relative dates)
</dd>
<dt>where one or more of the following changed:</dt>
<dt>
<label for="chfield">where one or more of the following changed</label>:
</dt>
<dd>
<select name="chfield" multiple="multiple" size="4">
<select name="chfield" id="chfield" multiple="multiple" size="4">
[% FOREACH field = chfield %]
<option value="[% field FILTER html %]"
[% " selected" IF lsearch(default.chfield, field) != -1 %]>
......@@ -578,9 +593,10 @@ function doOnSelectProduct(selectmode) {
[% END %]
</select>
</dd>
<dt>and the new value was:</dt>
<dt>and <label for="chfieldvalue">the new value was</label>:</dt>
<dd>
<input name="chfieldvalue" size="20" value="[% default.chfieldvalue.0 FILTER html %]">
<input name="chfieldvalue" id="chfieldvalue"
size="20" value="[% default.chfieldvalue.0 FILTER html %]">
</dd>
</dl>
......@@ -595,9 +611,8 @@ function doOnSelectProduct(selectmode) {
[% BLOCK select %]
<td align="left">
<label for="[% sel.name %]" accesskey="[% sel.accesskey %]">
<select name="[% sel.name %]" id="[% sel.name %]"
multiple="multiple" size="[% sel.size %]">
<select name="[% sel.name %]" id="[% sel.name %]"
multiple="multiple" size="[% sel.size %]">
[% FOREACH name = ${sel.name} %]
<option value="[% name FILTER html %]"
[% " selected" IF lsearch(default.${sel.name}, name) != -1 %]>
......@@ -609,7 +624,6 @@ function doOnSelectProduct(selectmode) {
[% name FILTER html %]</option>
[% END %]
[% END %]
</select>
</label>
</select>
</td>
[% END %]
......@@ -43,8 +43,8 @@
<input type="hidden" name="cmdtype" value="doit">
<p>
Sort results by:
<select name="order">
<label for="order">Sort results by</label>:
<select name="order" id="order">
[% FOREACH order = orders %]
<option value="[% order FILTER html %]"
[% " selected" IF default.order.0 == order %]>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment