Commit ddb5db35 authored by Frédéric Buclin's avatar Frédéric Buclin

Bug 398701: Replace |FILTER url_quote| by |FILTER uri|

r/a=mkanat
parent 1ccdf145
......@@ -674,12 +674,6 @@ sub create {
xml => \&Bugzilla::Util::xml_quote ,
# This filter escapes characters in a variable or value string for
# use in a query string. It escapes all characters NOT in the
# regex set: [a-zA-Z0-9_\-.]. The 'uri' filter should be used for
# a full URL that may have characters that need encoding.
url_quote => \&Bugzilla::Util::url_quote ,
# This filter is similar to url_quote but used a \ instead of a %
# as prefix. In addition it replaces a ' ' by a '_'.
css_class_quote => \&Bugzilla::Util::css_class_quote ,
......
......@@ -207,21 +207,12 @@
This means that if the data can possibly contain special HTML characters
such as <, and the data was not intended to be HTML, they need to be
converted to entity form, i.e. <. You use the 'html' filter in the
Template Toolkit to do this. If you forget, you may open up
your installation to cross-site scripting attacks.
Template Toolkit to do this (or the 'uri' filter to encode special
characters in URLs). If you forget, you may open up your installation
to cross-site scripting attacks.
</para>
<para>
Also note that Bugzilla adds a few filters of its own, that are not
in standard Template Toolkit. In particular, the 'url_quote' filter
can convert characters that are illegal or have special meaning in URLs,
such as &amp;, to the encoded form, i.e. %26. This actually encodes most
characters (but not the common ones such as letters and numbers and so
on), including the HTML-special characters, so there's never a need to
HTML filter afterwards.
</para>
<para>
Editing templates is a good way of doing a <quote>poor man's custom
fields</quote>.
For example, if you don't use the Status Whiteboard, but want to have
......
......@@ -223,8 +223,8 @@ sub directive_ok {
# Things which are already filtered
# Note: If a single directive prints two things, and only one is
# filtered, we may not catch that case.
return 1 if $directive =~ /FILTER\ (html|csv|js|base64|url_quote|css_class_quote|
ics|quoteUrls|time|uri|xml|lower|html_light|
return 1 if $directive =~ /FILTER\ (html|csv|js|base64|css_class_quote|ics|
quoteUrls|time|uri|xml|lower|html_light|
obsolete|inactive|closed|unitconvert|
txt|html_linebreak|none)\b/x;
......
......@@ -30,12 +30,12 @@ for the account [% oldemailaddress %] to your address.
To confirm the change, visit the following link:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cfmem
[%+ urlbase %]token.cgi?t=[% token FILTER uri %]&a=cfmem
If you are not the person who made this request, or you wish to cancel
this request, visit the following link:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlem
[%+ urlbase %]token.cgi?t=[% token FILTER uri %]&a=cxlem
If you do nothing, the request will lapse after [% constants.MAX_TOKEN_AGE %] days
(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]).
......@@ -39,7 +39,7 @@ for your account to [%+ newemailaddress %].
If you are not the person who made this request, or you wish to cancel
this request, visit the following link:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlem
[%+ urlbase %]token.cgi?t=[% token FILTER uri %]&a=cxlem
If you do nothing, and [%+ newemailaddress %] confirms this request,
the change will be made permanent after [% constants.MAX_TOKEN_AGE %] days
......
......@@ -32,7 +32,7 @@ using your email address ([% email %]).
To continue creating an account using this email address, visit the
following link by [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %]:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=request_new_account
[%+ urlbase %]token.cgi?t=[% token FILTER uri %]&a=request_new_account
If you did not receive this email before [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z") %] or
you wish to create an account using a different email address you can begin
......@@ -50,7 +50,7 @@ Hotmail, or similar) to avoid receiving spam at your primary email address.
If you do not wish to create an account, or if this request was made in
error you can do nothing or visit the following link:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cancel_new_account
[%+ urlbase %]token.cgi?t=[% token FILTER uri %]&a=cancel_new_account
If the above links do not work, or you have any other issues regarding
your account, please contact administration at [% Param('maintainer') %].
......@@ -28,12 +28,12 @@ X-Bugzilla-Type: admin
You have (or someone impersonating you has) requested to change your
[%+ terms.Bugzilla %] password. To complete the change, visit the following link:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cfmpw
[%+ urlbase %]token.cgi?t=[% token FILTER uri %]&a=cfmpw
If you are not the person who made this request, or you wish to cancel
this request, visit the following link:
[%+ urlbase %]token.cgi?t=[% token FILTER url_quote %]&a=cxlpw
[%+ urlbase %]token.cgi?t=[% token FILTER uri %]&a=cxlpw
If you do nothing, the request will lapse after [% constants.MAX_TOKEN_AGE %] days
(on [% expiration_ts FILTER time("%B %e, %Y at %H:%M %Z", timezone) %]) or when you
......
......@@ -71,7 +71,7 @@
<tr>
<td>My [% terms.Bugs %]</td>
<td>
[% filtered_username = user.login FILTER url_quote %]
[% filtered_username = user.login FILTER uri %]
<a href="[% Param('mybugstemplate').replace('%userid%', filtered_username) %]">Run</a>
</td>
<td>
......@@ -96,20 +96,20 @@
<tr>
<td>[% q.name FILTER html %]</td>
<td>
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=[% q.name FILTER url_quote %]
[% IF q.shared_with_group.id %]&amp;sharer_id=[% user.id FILTER url_quote %][% END %]">Run</a>
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=[% q.name FILTER uri %]
[% IF q.shared_with_group.id %]&amp;sharer_id=[% user.id FILTER uri %][% END %]">Run</a>
</td>
<td>
<a href="query.cgi?[% q.edit_link FILTER html %]&amp;known_name=
[% q.name FILTER url_quote %]">Edit</a>
[% q.name FILTER uri %]">Edit</a>
</td>
<td>
[% IF q.used_in_whine %]
Remove from <a href="editwhines.cgi">whining</a> first
[% ELSE %]
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
[% q.name FILTER url_quote %]&amp;token=
[% issue_hash_token([q.id, q.name]) FILTER url_quote %]">Forget</a>
[% q.name FILTER uri %]&amp;token=
[% issue_hash_token([q.id, q.name]) FILTER uri %]">Forget</a>
[% END %]
</td>
<td align="center">
......@@ -187,12 +187,12 @@
<td>[% q.shared_with_group.name FILTER html %]</td>
<td>
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
[% q.name FILTER url_quote %]&amp;sharer_id=
[% q.user.id FILTER url_quote %]">Run</a>
[% q.name FILTER uri %]&amp;sharer_id=
[% q.user.id FILTER uri %]">Run</a>
</td>
<td>
<a href="query.cgi?[% q.edit_link FILTER html %]&amp;known_name=
[% q.name FILTER url_quote %]">Edit</a>
[% q.name FILTER uri %]">Edit</a>
</td>
<td align="center">
<input type="checkbox"
......
......@@ -73,7 +73,7 @@
%]
<p><a href="editusers.cgi?action=edit&amp;userid=
[%- otheruser.id FILTER url_quote %]"
[%- otheruser.id FILTER uri %]"
title="Edit user '[% otheruser.login FILTER html %]'">Edit this user</a> or
<a title="Search For Users" href="editusers.cgi">search for other accounts</a>
[% IF listselectionvalues.matchtype != 'exact' %]
......
......@@ -29,7 +29,7 @@
<tr valign=top>
<th align="right">
<a href="editproducts.cgi?classification=[% classification.name FILTER url_quote %]">
<a href="editproducts.cgi?classification=[% classification.name FILTER uri %]">
Edit Products</a>:
</th>
<td>
......
......@@ -33,7 +33,7 @@
[% FOREACH cl = classifications %]
<tr>
<td valign="top"><a href="editclassifications.cgi?action=edit&amp;classification=[% cl.name FILTER url_quote %]"><b>[% cl.name FILTER html %]</b></a></td>
<td valign="top"><a href="editclassifications.cgi?action=edit&amp;classification=[% cl.name FILTER uri %]"><b>[% cl.name FILTER html %]</b></a></td>
<td valign="top">
[% IF cl.description %]
[% cl.description FILTER html_light %]
......@@ -45,14 +45,14 @@
[% IF (cl.id == 1) %]
<td valign="top">[% cl.product_count FILTER html %]</td>
[% ELSE %]
<td valign="top"><a href="editclassifications.cgi?action=reclassify&amp;classification=[% cl.name FILTER url_quote %]">reclassify ([% cl.product_count FILTER html %])</a></td>
<td valign="top"><a href="editclassifications.cgi?action=reclassify&amp;classification=[% cl.name FILTER uri %]">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">&nbsp;</td>
[% ELSE %]
<td valign="top"><a href="editclassifications.cgi?action=del&amp;classification=[% cl.name FILTER url_quote %]">delete</a></td>
<td valign="top"><a href="editclassifications.cgi?action=del&amp;classification=[% cl.name FILTER uri %]">delete</a></td>
[% END %]
</tr>
[% END %]
......
......@@ -90,8 +90,8 @@ from '[% product.name FILTER html %]' product
<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 %]&amp;product=
[%- product.name FILTER url_quote %]">[% comp.bug_count %]</a>
href="buglist.cgi?component=[% comp.name FILTER uri %]&amp;product=
[%- product.name FILTER uri %]">[% comp.bug_count %]</a>
[% ELSE %]
None
[% END %]
......
......@@ -48,8 +48,8 @@
[% IF comp.bug_count > 0 %]
<a title="[% terms.Bugs %] in component '[% comp.name FILTER html %]'"
href="buglist.cgi?component=
[%- comp.name FILTER url_quote %]&amp;product=
[%- product.name FILTER url_quote %]">[% comp.bug_count %]</a>
[%- comp.name FILTER uri %]&amp;product=
[%- product.name FILTER uri %]">[% comp.bug_count %]</a>
[% ELSE %]
None
[% END %]
......@@ -64,8 +64,8 @@
<input type="hidden" name="token" value="[% token FILTER html %]">
<input type="submit" value="Save Changes" id="update"> or <a
href="editcomponents.cgi?action=del&amp;product=
[%- product.name FILTER url_quote %]&amp;component=
[%- comp.name FILTER url_quote %]">Delete</a> this component.
[%- product.name FILTER uri %]&amp;component=
[%- comp.name FILTER uri %]">Delete</a> this component.
</form>
......
......@@ -33,7 +33,7 @@ Edit
component <a
title="Edit Component '[% comp.name FILTER html %]'"
href="editcomponents.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]&amp;component=[% comp.name FILTER url_quote %]">
[%- product.name FILTER uri %]&amp;component=[% comp.name FILTER uri %]">
'[% comp.name FILTER html %]'</a>
or edit
[% END %]
......@@ -42,13 +42,13 @@ Edit
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>,
[%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>,
or edit
[% END %]
product <a
title="Edit Product '[% product.name FILTER html %]'"
href="editproducts.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]">'[% product.name FILTER html %]'</a>.
[%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
</p>
......@@ -34,11 +34,11 @@
%]
[% edit_contentlink = BLOCK %]editcomponents.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]&amp;component=%%name%%[% END %]
[%- product.name FILTER uri %]&amp;component=%%name%%[% END %]
[% delete_contentlink = BLOCK %]editcomponents.cgi?action=del&amp;product=
[%- product.name FILTER url_quote %]&amp;component=%%name%%[% END %]
[%- product.name FILTER uri %]&amp;component=%%name%%[% END %]
[% bug_count_contentlink = BLOCK %]buglist.cgi?component=%%name%%&amp;product=
[%- product.name FILTER url_quote %][% END %]
[%- product.name FILTER uri %][% END %]
[% columns = [
......@@ -111,12 +111,12 @@
overrides = overrides
%]
<p><a href="editcomponents.cgi?action=add&amp;product=[% product.name FILTER url_quote %]">Add</a>
<p><a href="editcomponents.cgi?action=add&amp;product=[% product.name FILTER uri %]">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 %]&amp;showbugcounts=1">
<p><a href="editcomponents.cgi?product=[% product.name FILTER uri %]&amp;showbugcounts=1">
Redisplay table with [% terms.bug %] counts (slower)</a></p>
[% END %]
......
......@@ -137,7 +137,7 @@
<tr>
<th>&nbsp;</th>
<td>
<a href="editvalues.cgi?field=[% field.name FILTER url_quote %]">Edit
<a href="editvalues.cgi?field=[% field.name FILTER uri %]">Edit
legal values for this field</a>.
</td>
......
......@@ -49,8 +49,8 @@
<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 %]">
href="buglist.cgi?[% field.name FILTER uri %]=
[%- value.name FILTER uri %]">
[%- value.bug_count FILTER html %]</a>
[% ELSE %]
None
......@@ -94,8 +94,8 @@
<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 %]">
href="buglist.cgi?[% field.name FILTER uri %]=
[%- value.name FILTER uri %]">
[% IF value.bug_count > 1 %]
those [% terms.bugs %]
[% ELSE %]
......@@ -116,7 +116,7 @@
<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.name FILTER uri %]">
[%- field.description FILTER html %]
([% field.name FILTER html %])</a><br>
[% END %]
......@@ -129,8 +129,8 @@
[% 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.name FILTER uri %]&value=
[%- controlled.name FILTER uri %]">
[% controlled.field.description FILTER html %]
([% controlled.field.name FILTER html %]):
[%+ controlled.name FILTER html %]</a><br>
......
......@@ -32,7 +32,7 @@
[% UNLESS no_add_link %]
<a title="Add a value for the '[% field.description FILTER html %]' field."
href="editvalues.cgi?action=add&amp;field=
[%- field.name FILTER url_quote %]">Add</a> a value.
[%- field.name FILTER uri %]">Add</a> a value.
[% END %]
[% IF value.defined && !no_edit_link %]
......@@ -40,15 +40,15 @@
title="Edit value '[% value.name FILTER html %]' for the '
[%- field.name FILTER html %]' field"
href="editvalues.cgi?action=edit&amp;field=
[%- field.name FILTER url_quote %]&amp;value=
[%- value.name FILTER url_quote %]">
[%- field.name FILTER uri %]&amp;value=
[%- value.name FILTER uri %]">
'[% 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.
[%- field.name FILTER uri %]">'[% field.description FILTER html %]'</a> field.
[% END %]
......
......@@ -35,9 +35,9 @@
%]
[% edit_contentlink = BLOCK %]editvalues.cgi?action=edit&amp;field=
[%- field.name FILTER url_quote %]&amp;value=%%name%%[% END %]
[%- field.name FILTER uri %]&amp;value=%%name%%[% END %]
[% delete_contentlink = BLOCK %]editvalues.cgi?action=del&amp;field=
[%- field.name FILTER url_quote %]&amp;value=%%name%%[% END %]
[%- field.name FILTER uri %]&amp;value=%%name%%[% END %]
[% columns = [
......
......@@ -55,7 +55,7 @@
users in it.</b>
<br><a href="editusers.cgi?action=list&amp;groupid=
[%- group.id FILTER url_quote %]&amp;grouprestrict=1">Show
[%- group.id FILTER uri %]&amp;grouprestrict=1">Show
me which users</a> - <label><input type="checkbox" name="removeusers">Remove
all users from this group for me.</label></p>
[% END %]
......@@ -75,7 +75,7 @@
[%+ terms.bugs %] are using it.</b>
<br><a href="buglist.cgi?field0-0-0=bug_group&amp;type0-0-0=equals&amp;value0-0-0=
[%- group.name FILTER url_quote %]">Show me
[%- group.name FILTER uri %]">Show me
which [% terms.bugs %]</a> -
<label><input type="checkbox" name="removebugs">Remove
all [% terms.bugs %] from this group restriction for me.</label></p>
......@@ -119,7 +119,7 @@
[% END %]
<li><a href="editproducts.cgi?action=editgroupcontrols&amp;product=
[%- data.product.name FILTER url_quote %]">
[%- data.product.name FILTER uri %]">
[%- data.product.name FILTER html %]</a>
([% active.join(', ') FILTER html %])
[% IF hidden %]
......@@ -139,7 +139,7 @@
You cannot delete this group while there are flag types using it.</b>
<br><a href="editflagtypes.cgi?action=list&amp;group=
[%- group.id FILTER url_quote %]">Show
[%- group.id FILTER uri %]">Show
me which types</a> -
<label><input type="checkbox" name="removeflags">Remove all
flag types from this group for me.</label></p>
......
......@@ -53,7 +53,7 @@
<th align="right">[% terms.Bugs %]:</th>
<td>
[% IF keyword.bug_count > 0 %]
<a href="buglist.cgi?keywords=[% keyword.name FILTER url_quote %]">
<a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]">
[% keyword.bug_count FILTER html %]</a>
[% ELSE %]
none
......
......@@ -52,8 +52,8 @@
[% 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 %]&amp;product=
[%- product.name FILTER url_quote %]">
href="buglist.cgi?target_milestone=[% milestone.name FILTER uri %]&amp;product=
[%- product.name FILTER uri %]">
[% milestone.bug_count FILTER none %]</a>
[% ELSE %]
None
......
......@@ -40,7 +40,7 @@
[% UNLESS no_add_milestone_link %]
<a title="Add a milestone to product '[% product.name FILTER html %]'"
href="editmilestones.cgi?action=add&amp;product=
[%- product.name FILTER url_quote %]">Add</a> a milestone.
[%- product.name FILTER uri %]">Add</a> a milestone.
[% END %]
[% IF milestone.name && !no_edit_milestone_link %]
......@@ -48,20 +48,20 @@
title="Edit Milestone '[% milestone.name FILTER html %]' of product '
[%- product.name FILTER html %]'"
href="editmilestones.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]&amp;milestone=
[%- milestone.name FILTER url_quote %]">
[%- product.name FILTER uri %]&amp;milestone=
[%- milestone.name FILTER uri %]">
'[% 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>.
[%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
[% END %]
Edit product <a
href="editproducts.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]">'[% product.name FILTER html %]'</a>.
[%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
</p>
......@@ -37,11 +37,11 @@
%]
[% edit_contentlink = BLOCK %]editmilestones.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]&amp;milestone=%%name%%[% END %]
[%- product.name FILTER uri %]&amp;milestone=%%name%%[% END %]
[% delete_contentlink = BLOCK %]editmilestones.cgi?action=del&amp;product=
[%- product.name FILTER url_quote %]&amp;milestone=%%name%%[% END %]
[%- product.name FILTER uri %]&amp;milestone=%%name%%[% END %]
[% bug_count_contentlink = BLOCK %]buglist.cgi?target_milestone=%%name%%&amp;product=
[%- product.name FILTER url_quote %][% END %]
[%- product.name FILTER uri %][% END %]
[% columns = [
......@@ -96,7 +96,7 @@
[% IF ! showbugcounts %]
<p><a href="editmilestones.cgi?product=[% product.name FILTER url_quote %]&amp;showbugcounts=1">
<p><a href="editmilestones.cgi?product=[% product.name FILTER uri %]&amp;showbugcounts=1">
Redisplay table with [% terms.bug %] counts (slower)</a></p>
[% END %]
......
......@@ -78,7 +78,7 @@
</td>
[% ELSE %]
<td>
<a href="editparams.cgi?section=[% panel.name FILTER url_quote %]"
<a href="editparams.cgi?section=[% panel.name FILTER uri %]"
title="[% panel.desc FILTER html %]">[% panel.title FILTER html %]</a>
</td>
[% END %]
......
......@@ -35,7 +35,7 @@
<tr>
<td>
<a href="editparams.cgi?section=
[%- panel.name FILTER url_quote %]#[% param.name FILTER url_quote %]_desc">
[%- panel.name FILTER uri %]#[% param.name FILTER uri %]_desc">
[% param.name FILTER html %]</a>
</td>
<td>
......
......@@ -58,7 +58,7 @@
<tr>
<td valign="top">Product:</td>
<td valign="top">
<a href="editproducts.cgi?product=[% product.name FILTER url_quote %]">
<a href="editproducts.cgi?product=[% product.name FILTER uri %]">
[% product.name FILTER html %]
</a>
</td>
......@@ -104,7 +104,7 @@
<tr>
<td>
[% IF product.components.size > 0 %]
<a href="editcomponents.cgi?product=[% product.name FILTER url_quote %]"
<a href="editcomponents.cgi?product=[% product.name FILTER uri %]"
title="Edit components for product '[% product.name FILTER html %]'">
Components:
</a>
......@@ -138,7 +138,7 @@
<tr>
<td>
[% IF product.versions.size > 0 %]
<a href="editversions.cgi?product=[%- product.name FILTER url_quote %]">
<a href="editversions.cgi?product=[%- product.name FILTER uri %]">
Versions:
</a>
[% ELSE %]
......@@ -161,7 +161,7 @@
<tr>
<td valign="top">
[% IF product.milestones.size > 0 %]
<a href="editmilestones.cgi?product=[%- product.name FILTER url_quote %]">
<a href="editmilestones.cgi?product=[%- product.name FILTER uri %]">
Milestones:
</a>
[% ELSE %]
......@@ -184,7 +184,7 @@
<td>[% terms.Bugs %]:</td>
<td>
[% IF product.bug_count %]
<a href="buglist.cgi?product=[% product.name FILTER url_quote %]"
<a href="buglist.cgi?product=[% product.name FILTER uri %]"
title="List of [% terms.bugs %] for product '[% product.name FILTER html %]'">
[% product.bug_count FILTER html %]
</a>
......
......@@ -45,7 +45,7 @@
<tr>
<th align="right" valign="top">
<a href="editcomponents.cgi?product=[% product.name FILTER url_quote %]">
<a href="editcomponents.cgi?product=[% product.name FILTER uri %]">
Edit components:
</a>
</th>
......@@ -67,7 +67,7 @@
</tr>
<tr>
<th align="right" valign="top">
<a href="editversions.cgi?product=[% product.name FILTER url_quote %]">Edit
<a href="editversions.cgi?product=[% product.name FILTER uri %]">Edit
versions:</a>
</th>
<td>
......@@ -84,7 +84,7 @@ versions:</a>
[% IF Param('usetargetmilestone') %]
<tr>
<th align="right" valign="top">
<a href="editmilestones.cgi?product=[% product.name FILTER url_quote %]">
<a href="editmilestones.cgi?product=[% product.name FILTER uri %]">
Edit milestones:</a>
</th>
<td>
......@@ -102,7 +102,7 @@ versions:</a>
<tr>
<th align="right" valign="top">
<a href="editproducts.cgi?action=editgroupcontrols&product=
[%- product.name FILTER url_quote %]">
[%- product.name FILTER uri %]">
Edit Group Access Controls:
</a>
</th>
......@@ -130,7 +130,7 @@ versions:</a>
</tr>
<tr>
<th align="right">[% terms.Bugs %]:</th>
<td><a href="buglist.cgi?product=[% product.name FILTER url_quote %]">
<td><a href="buglist.cgi?product=[% product.name FILTER uri %]">
[% product.bug_count FILTER html %]</a></td>
</tr>
</table>
......
......@@ -30,10 +30,10 @@
[% IF Param('useclassification') && classification %]
[% classification_url_part = BLOCK %]&amp;classification=
[%- classification.name FILTER url_quote %]
[%- classification.name FILTER uri %]
[% END %]
[% classification_url_part_start = BLOCK %]classification=
[%- classification.name FILTER url_quote %]
[%- classification.name FILTER uri %]
[% END %]
[% classification_text = BLOCK %]
of classification '[% classification.name FILTER html %]'
......@@ -61,7 +61,7 @@
Edit product <a
title="Edit Product '[% product.name FILTER html %]'
[%- classification_text %]"
href="editproducts.cgi?action=edit&amp;product=[% product.name FILTER url_quote %]">
href="editproducts.cgi?action=edit&amp;product=[% product.name FILTER uri %]">
'[% product.name FILTER html %]'</a>.
[% END %]
......
......@@ -26,7 +26,7 @@
[% IF classification %]
[% classification_url_part = BLOCK %]&amp;classification=
[%- classification.name FILTER url_quote %]
[%- classification.name FILTER uri %]
[%- END %]
[% classification_title = BLOCK %]
in classification '[% classification.name FILTER html %]'
......
......@@ -45,7 +45,7 @@
<p>
Updated product name from '[% changes.name.0 FILTER html %]' to
'<a href="editproducts.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]">[% product.name FILTER html %]</a>'.
[%- product.name FILTER uri %]">[% product.name FILTER html %]</a>'.
</p>
[% END %]
......@@ -86,7 +86,7 @@
[%+ display_value('bug_status', 'UNCONFIRMED') FILTER html %] status.
Note that any
<a href="buglist.cgi?product=
[%- product.name FILTER url_quote %]&amp;bug_status=UNCONFIRMED">
[%- product.name FILTER uri %]&amp;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.
......
......@@ -34,7 +34,7 @@
[% 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>.
<a href="sanitycheck.cgi?[% param FILTER uri %]=1">[% text FILTER html %]</a>.
[% ELSIF san_tag == "bug_check_creation_date" %]
Checking for [% terms.bugs %] with no creation date (which makes them invisible).
......@@ -299,12 +299,12 @@
# 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>
<a href="show_bug.cgi?id=[% bug_id FILTER uri %]">[% 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>).
(<a href="buglist.cgi?bug_id=[% badbugs.join(",") FILTER uri %]">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>
<a href="show_bug.cgi?id=[% bug_id FILTER uri %]">[% terms.bug %] [%+ bug_id FILTER html %]</a>
[% END %]
......@@ -144,7 +144,7 @@
[% WHILE link_uri.search('%%(.+?)%%')%]
[% FOREACH m = link_uri.match('%%(.+?)%%') %]
[% IF row.$m %]
[% replacement_value = FILTER url_quote; row.$m; END %]
[% replacement_value = FILTER uri; row.$m; END %]
[% ELSE %]
[% replacement_value = "" %]
[% END %]
......
......@@ -112,7 +112,7 @@
<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
[%- otheruser.login FILTER uri %]">has submitted
[% IF attachments == 1 %]
one attachment
[% ELSE %]
......@@ -132,7 +132,7 @@
<li>
[% otheruser.login FILTER html %]
<a href="buglist.cgi?emailreporter1=1&amp;emailtype1=exact&amp;email1=
[%- otheruser.login FILTER url_quote %]">has reported
[%- otheruser.login FILTER uri %]">has reported
[% IF reporter == 1 %]
one [% terms.bug %]
[% ELSE %]
......@@ -170,7 +170,7 @@
<li>
[% otheruser.login FILTER html %] has
<a href="buglist.cgi?field0-0-0=setters.login_name&amp;type0-0-0=equals&amp;value0-0-0=
[%- otheruser.login FILTER url_quote %]">set
[%- otheruser.login FILTER uri %]">set
or requested
[% IF flags.setter == 1 %]
a flag
......@@ -191,7 +191,7 @@
<li>
[% otheruser.login FILTER html %] has
<a href="buglist.cgi?emaillongdesc1=1&amp;emailtype1=exact&amp;email1=
[%- otheruser.login FILTER url_quote %]">commented
[%- otheruser.login FILTER uri %]">commented
[% IF longdescs == 1 %]
once on [% terms.abug %]
[% ELSE %]
......@@ -236,7 +236,7 @@
<li>
[% otheruser.login FILTER html %]
<a href="buglist.cgi?emailassigned_to1=1&amp;emailqa_contact1=1&amp;emailtype1=exact&amp;email1=
[%- otheruser.login FILTER url_quote %]">is
[%- otheruser.login FILTER uri %]">is
the assignee or the QA contact of
[% IF assignee_or_qa == 1 %]
one [% terms.bug %]
......@@ -251,7 +251,7 @@
<li>
[% otheruser.login FILTER html %]
<a href="buglist.cgi?emailcc1=1&amp;emailtype1=exact&amp;email1=
[%- otheruser.login FILTER url_quote %]">is
[%- otheruser.login FILTER uri %]">is
on the CC list of
[% IF cc == 1 %]
[%+ terms.abug %]
......@@ -282,7 +282,7 @@
<li>
[% otheruser.login FILTER html %] has been
<a href="buglist.cgi?field0-0-0=requestees.login_name&amp;type0-0-0=equals&amp;value0-0-0=
[%- otheruser.login FILTER url_quote %]">asked
[%- otheruser.login FILTER uri %]">asked
to set
[% IF flags.requestee == 1 %]
a flag
......
......@@ -20,8 +20,8 @@
[% BLOCK listselectionurlparams %]
[% FOREACH field = listselectionvalues.keys %]&amp;
[% field FILTER url_quote %]=
[% listselectionvalues.$field FILTER url_quote %]
[% field FILTER uri %]=
[% listselectionvalues.$field FILTER uri %]
[% END %]
[% END %]
......
......@@ -36,8 +36,8 @@
<td>
[% IF user.in_group("editcomponents", component.product_id) %]
<a href="editcomponents.cgi?action=edit&amp;product=
[% item.product.name FILTER url_quote %]&amp;component=
[% component.name FILTER url_quote %]">
[% item.product.name FILTER uri %]&amp;component=
[% component.name FILTER uri %]">
[% END %]
[% component.name FILTER html %]
[% IF user.in_group("editcomponents", component.product_id) %]
......
......@@ -30,7 +30,7 @@
[% IF !otheruser.in_group('bz_sudo_protect') %]
<br />
<a href="relogin.cgi?action=prepare-sudo&amp;target_login=
[%- otheruser.login FILTER url_quote %]">Impersonate this user</a>
[%- otheruser.login FILTER uri %]">Impersonate this user</a>
[% END %]
[% END %]
[% ELSE %]
......
......@@ -52,8 +52,8 @@
[% 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 %]&amp;product=
[%- product.name FILTER url_quote %]">
href="buglist.cgi?version=[% version.name FILTER uri %]&amp;product=
[%- product.name FILTER uri %]">
[%- version.bug_count FILTER none %]</a>
[% ELSE %]
None
......
......@@ -38,7 +38,7 @@
[% UNLESS no_add_version_link %]
<a title="Add a version to product '[% product.name FILTER html %]'"
href="editversions.cgi?action=add&amp;product=
[%- product.name FILTER url_quote %]">Add</a> a version.
[%- product.name FILTER uri %]">Add</a> a version.
[% END %]
[% IF version.name && !no_edit_version_link %]
......@@ -46,20 +46,20 @@
title="Edit Version '[% version.name FILTER html %]' of product '
[%- product.name FILTER html %]'"
href="editversions.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]&amp;version=
[%- version.name FILTER url_quote %]">
[%- product.name FILTER uri %]&amp;version=
[%- version.name FILTER uri %]">
'[% 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>.
[%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
[% END %]
Edit product <a
href="editproducts.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]">'[% product.name FILTER html %]'</a>.
[%- product.name FILTER uri %]">'[% product.name FILTER html %]'</a>.
</p>
......@@ -33,11 +33,11 @@
%]
[% edit_contentlink = BLOCK %]editversions.cgi?action=edit&amp;product=
[%- product.name FILTER url_quote %]&amp;version=%%name%%[% END %]
[%- product.name FILTER uri %]&amp;version=%%name%%[% END %]
[% delete_contentlink = BLOCK %]editversions.cgi?action=del&amp;product=
[%- product.name FILTER url_quote %]&amp;version=%%name%%[% END %]
[%- product.name FILTER uri %]&amp;version=%%name%%[% END %]
[% bug_count_contentlink = BLOCK %]buglist.cgi?version=%%name%%&amp;product=
[%- product.name FILTER url_quote %][% END %]
[%- product.name FILTER uri %][% END %]
[% columns = [
......@@ -77,7 +77,7 @@
[% IF ! showbugcounts %]
<p><a href="editversions.cgi?product=[% product.name FILTER url_quote %]&amp;showbugcounts=1">
<p><a href="editversions.cgi?product=[% product.name FILTER uri %]&amp;showbugcounts=1">
Redisplay table with [% terms.bug %] counts (slower)</a></p>
[% END %]
......
......@@ -34,14 +34,14 @@
<td bgcolor="#ff0000">
<font size="+2">
You already used the form to file
<a href="[% urlbase FILTER html %]attachment.cgi?id=[% attachid FILTER url_quote %]&action=edit">attachment [% attachid FILTER url_quote %]</a>.
<a href="[% urlbase FILTER html %]attachment.cgi?id=[% attachid FILTER uri %]&action=edit">attachment [% attachid FILTER uri %]</a>.
</font>
</td>
</tr>
</table>
<p>
You can either <a href="[% urlbase FILTER html %]attachment.cgi?bugid=[% bugid FILTER url_quote %]&action=enter">
You can either <a href="[% urlbase FILTER html %]attachment.cgi?bugid=[% bugid FILTER uri %]&action=enter">
create a new attachment</a> or [% "go back to $terms.bug $bugid" FILTER bug_link(bugid) FILTER none %].
<p>
......
......@@ -69,7 +69,7 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %]
[% IF headers %]
<a href="[% PROCESS viewurl id=attachid %]">View</a>
| <a href="[% PROCESS editurl id=attachid %]">Details</a>
| <a href="[% PROCESS diffurl id=attachid %]&amp;context=[% context FILTER url_quote %]&amp;collapsed=[% collapsed FILTER url_quote %]&amp;headers=[% headers FILTER url_quote %]&amp;format=raw">Raw&nbsp;Unified</a>
| <a href="[% PROCESS diffurl id=attachid %]&amp;context=[% context FILTER uri %]&amp;collapsed=[% collapsed FILTER uri %]&amp;headers=[% headers FILTER uri %]&amp;format=raw">Raw&nbsp;Unified</a>
| Return to [% "$terms.bug $bugid" FILTER bug_link(bugid) FILTER none %]
[% END %]
[% IF other_patches.size > 0 %]
......@@ -115,12 +115,12 @@ Interdiff of #[% oldid %] and #[% newid %] for [% terms.bug %] #[% bugid %]
[% IF context == "patch" %]
(<strong>Patch</strong> /
[% ELSE %]
(<a href="[% PROCESS diffurl id=attachid %]&amp;headers=[% headers FILTER url_quote %]">Patch</a> /
(<a href="[% PROCESS diffurl id=attachid %]&amp;headers=[% headers FILTER uri %]">Patch</a> /
[% END %]
[% IF context == "file" %]
<strong>File</strong> /
[% ELSE %]
<a href="[% PROCESS diffurl id=attachid %]&amp;headers=[% headers FILTER url_quote %]&amp;context=file">File</a> /
<a href="[% PROCESS diffurl id=attachid %]&amp;headers=[% headers FILTER uri %]&amp;context=file">File</a> /
[% END %]
[% IF context == "patch" || context == "file" %]
......
......@@ -82,7 +82,7 @@ function PutDescription() {
[% ELSIF product.name == "Thunderbird" %]
[% productstring = "product=Mozilla%20Application%20Suite&amp;product=Thunderbird" %]
[% ELSE %]
[% productstring = BLOCK %]product=[% product.name FILTER url_quote %][% END %]
[% productstring = BLOCK %]product=[% product.name FILTER uri %][% END %]
[% END %]
<p>
......@@ -205,7 +205,7 @@ function PutDescription() {
To pick the right component, you could use the same one as
similar [% terms.bugs %] you found in your search, or read the full list of
<a target="_blank" href="describecomponents.cgi?product=
[% product.name FILTER url_quote %]">component
[% product.name FILTER uri %]">component
descriptions</a> (opens in new window) if you need more help.
</p>
</td>
......
......@@ -221,7 +221,7 @@ TUI_hide_default('attachment_text_field');
[%# We can't use the select block in these two cases for various reasons. %]
<tr>
[% component_desc_url = BLOCK -%]
describecomponents.cgi?product=[% product.name FILTER url_quote %]
describecomponents.cgi?product=[% product.name FILTER uri %]
[% END %]
[% INCLUDE "bug/field-label.html.tmpl"
field = bug_fields.component editable = 1
......
......@@ -144,7 +144,7 @@
<span class="summ_text">[%+ bug.short_desc FILTER html %]</span>
<span class="summ_info">[[% INCLUDE buginfo %]]</span>
</a>
<a href="showdependencytree.cgi?id=[% bugid FILTER url_quote %]"
<a href="showdependencytree.cgi?id=[% bugid FILTER uri %]"
class="tree_link">
<img src="skins/standard/dependency-tree/tree.png"
title="See dependency tree for [% terms.bug %] [%+ bugid FILTER html %]">
......
......@@ -45,7 +45,7 @@
[% IF desc_url %]
href="[% desc_url FILTER html %]"
[% ELSE %]
href="page.cgi?id=fields.html#[% field.name FILTER url_quote %]"
href="page.cgi?id=fields.html#[% field.name FILTER uri %]"
[% END %]
>[%- field_descs.${field.name} FILTER html %]:</a>
......
......@@ -25,11 +25,11 @@
[% IF bottom_navigator == 1 %]
<ul class="related_actions">
<li><a href="show_bug.cgi?format=multiple&amp;id=
[% bug.bug_id FILTER url_quote %]">Format For Printing</a></li>
[% bug.bug_id FILTER uri %]">Format For Printing</a></li>
<li>&nbsp;-&nbsp;<a href="show_bug.cgi?ctype=xml&amp;id=
[% bug.bug_id FILTER url_quote %]">XML</a></li>
[% bug.bug_id FILTER uri %]">XML</a></li>
<li>&nbsp;-&nbsp;<a href="enter_bug.cgi?cloned_bug_id=
[% bug.bug_id FILTER url_quote %]">Clone This
[% bug.bug_id FILTER uri %]">Clone This
[% terms.Bug %]</a></li>
[%# Links to more things users can do with this bug. %]
[% Hook.process("links") %]
......@@ -48,17 +48,17 @@
([% this_bug_idx + 1 %] of [% last_bug_list.size %])
<a href="show_bug.cgi?id=
[%- last_bug_list.first FILTER url_quote %]&amp;list_id=
[%- my_search.id FILTER url_quote %]">First</a>
[%- last_bug_list.first FILTER uri %]&amp;list_id=
[%- my_search.id FILTER uri %]">First</a>
<a href="show_bug.cgi?id=
[%- last_bug_list.last FILTER url_quote %]&amp;list_id=
[%- my_search.id FILTER url_quote %]">Last</a>
[%- last_bug_list.last FILTER uri %]&amp;list_id=
[%- my_search.id FILTER uri %]">Last</a>
[% IF this_bug_idx > 0 %]
[% prev_bug = this_bug_idx - 1 %]
<a href="show_bug.cgi?id=
[%- last_bug_list.$prev_bug FILTER url_quote %]&amp;list_id=
[%- my_search.id FILTER url_quote %]">Prev</a>
[%- last_bug_list.$prev_bug FILTER uri %]&amp;list_id=
[%- my_search.id FILTER uri %]">Prev</a>
[% ELSE %]
<i><font color="#777777">Prev</font></i>
[% END %]
......@@ -66,14 +66,14 @@
[% IF this_bug_idx + 1 < last_bug_list.size %]
[% next_bug = this_bug_idx + 1 %]
<a href="show_bug.cgi?id=
[%- last_bug_list.$next_bug FILTER url_quote %]&amp;list_id=
[%- my_search.id FILTER url_quote %]">Next</a>
[%- last_bug_list.$next_bug FILTER uri %]&amp;list_id=
[%- my_search.id FILTER uri %]">Next</a>
[% ELSE %]
<i><font color="#777777">Next</font></i>
[% END %]
&nbsp;&nbsp;<a href="buglist.cgi?regetlastlist=
[%- my_search.id FILTER url_quote %]">Show last search results</a>
[%- my_search.id FILTER uri %]">Show last search results</a>
[% ELSE %]
[%# With no list, don't show link to search results %]
<i><font color="#777777">First</font></i>
......
......@@ -66,7 +66,7 @@
[% terms.Bug %]
<a href="show_bug.cgi?id=[% bug.bug_id FILTER html %]">[% bug.bug_id FILTER html %]</a>
[% IF Param("usebugaliases") AND bug.alias AND NOT bug.error %]
(<a href="show_bug.cgi?id=[% bug.alias FILTER url_quote %]">
(<a href="show_bug.cgi?id=[% bug.alias FILTER uri %]">
[% bug.alias FILTER html %]</a>)
[% END %]
</h1>
......
......@@ -118,14 +118,14 @@
<Seq>
[% FOREACH product = products %]
<li>
<bz:product rdf:about="[% urlbase FILTER xml %]product.cgi?name=[% product.name FILTER url_quote %]">
<bz:product rdf:about="[% urlbase FILTER xml %]product.cgi?name=[% product.name FILTER uri %]">
<bz:name>[% product.name FILTER html %]</bz:name>
<bz:components>
<Seq>
[% FOREACH component = product.components %]
<li resource="[% urlbase FILTER xml %]component.cgi?name=[% component.name FILTER url_quote
%]&amp;product=[% product.name FILTER url_quote %]"/>
<li resource="[% urlbase FILTER xml %]component.cgi?name=[% component.name FILTER uri
%]&amp;product=[% product.name FILTER uri %]"/>
[% END %]
</Seq>
</bz:components>
......@@ -133,7 +133,7 @@
<bz:versions>
<Seq>
[% FOREACH version = product.versions %]
<li resource="[% urlbase FILTER xml %]version.cgi?name=[% version.name FILTER url_quote %]"/>
<li resource="[% urlbase FILTER xml %]version.cgi?name=[% version.name FILTER uri %]"/>
[% END %]
</Seq>
</bz:versions>
......@@ -142,7 +142,7 @@
<bz:target_milestones>
<Seq>
[% FOREACH milestone = product.milestones %]
<li resource="[% urlbase FILTER xml %]milestone.cgi?name=[% milestone.name FILTER url_quote %]"/>
<li resource="[% urlbase FILTER xml %]milestone.cgi?name=[% milestone.name FILTER uri %]"/>
[% END %]
</Seq>
</bz:target_milestones>
......@@ -160,8 +160,8 @@
[% FOREACH product = products %]
[% FOREACH component = product.components %]
<li>
<bz:component rdf:about="[% urlbase FILTER xml %]component.cgi?name=[% component.name FILTER url_quote
%]&amp;product=[% product.name FILTER url_quote %]">
<bz:component rdf:about="[% urlbase FILTER xml %]component.cgi?name=[% component.name FILTER uri
%]&amp;product=[% product.name FILTER uri %]">
<bz:name>[% component.name FILTER html %]</bz:name>
[% IF show_flags %]
<bz:flag_types>
......@@ -170,8 +170,8 @@
[% FOREACH flag_type = flag_types %]
[% NEXT UNLESS flag_type.is_active %]
[% all_visible_flag_types.${flag_type.id} = flag_type %]
<li resource="[% urlbase FILTER xml %]flag.cgi?id=[% flag_type.id FILTER url_quote
%]&amp;name=[% flag_type.name FILTER url_quote %]" />
<li resource="[% urlbase FILTER xml %]flag.cgi?id=[% flag_type.id FILTER uri
%]&amp;name=[% flag_type.name FILTER uri %]" />
[% END %]
</Seq>
</bz:flag_types>
......@@ -188,7 +188,7 @@
[% FOREACH product = products %]
[% FOREACH version = product.versions %]
<li>
<bz:version rdf:about="[% urlbase FILTER xml %]version.cgi?name=[% version.name FILTER url_quote %]">
<bz:version rdf:about="[% urlbase FILTER xml %]version.cgi?name=[% version.name FILTER uri %]">
<bz:name>[% version.name FILTER html %]</bz:name>
</bz:version>
</li>
......@@ -203,7 +203,7 @@
[% FOREACH product = products %]
[% FOREACH milestone = product.milestones %]
<li>
<bz:target_milestone rdf:about="[% urlbase FILTER xml %]milestone.cgi?name=[% milestone.name FILTER url_quote %]">
<bz:target_milestone rdf:about="[% urlbase FILTER xml %]milestone.cgi?name=[% milestone.name FILTER uri %]">
<bz:name>[% milestone.name FILTER html %]</bz:name>
</bz:target_milestone>
</li>
......@@ -218,8 +218,8 @@
<Seq>
[% FOREACH flag_type = all_visible_flag_types.values.sort('name') %]
<li>
<bz:flag_type rdf:about="[% urlbase FILTER xml %]flag.cgi?id=[% flag_type.id FILTER url_quote
%]&amp;name=[% flag_type.name FILTER url_quote %]">
<bz:flag_type rdf:about="[% urlbase FILTER xml %]flag.cgi?id=[% flag_type.id FILTER uri
%]&amp;name=[% flag_type.name FILTER uri %]">
<bz:id>[% flag_type.id FILTER html %]</bz:id>
<bz:name>[% flag_type.name FILTER html %]</bz:name>
<bz:description>[% flag_type.description FILTER html %]</bz:description>
......@@ -243,7 +243,7 @@
[% PROCESS "global/field-descs.none.tmpl" %]
[% FOREACH item = field %]
<li>
<bz:field rdf:about="[% urlbase FILTER xml %]field.cgi?name=[% item.name FILTER url_quote %]">
<bz:field rdf:about="[% urlbase FILTER xml %]field.cgi?name=[% item.name FILTER uri %]">
<bz:name>[% item.name FILTER html %]</bz:name>
<bz:description>[% (field_descs.${item.name} OR item.description) FILTER html %]</bz:description>
[%-# These values are meaningful for custom fields only. %]
......
......@@ -31,9 +31,9 @@
<table>
<tr>
<th align="right">
<a href="[% target FILTER url_quote %]?classification=__all
[% IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER url_quote %][% END -%]
[%- IF format %]&amp;format=[% format FILTER url_quote %][% END %]">
<a href="[% target FILTER uri %]?classification=__all
[% IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
[%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
All</a>:
</th>
......@@ -46,9 +46,9 @@
[% FOREACH class = classifications %]
<tr>
<th align="right">
<a href="[% target FILTER url_quote %]?classification=[% class.name FILTER url_quote -%]
[%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER url_quote %][% END -%]
[%- IF format %]&amp;format=[% format FILTER url_quote %][% END %]">
<a href="[% target FILTER uri %]?classification=[% class.name FILTER uri -%]
[%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
[%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
[% class.name FILTER html %]</a>:
</th>
......
......@@ -55,9 +55,9 @@
[% FOREACH p = c.products %]
<tr>
<th align="right" valign="top">
<a href="[% target %]?product=[% p.name FILTER url_quote -%]
[%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER url_quote %][% END -%]
[%- IF format %]&amp;format=[% format FILTER url_quote %][% END %]">
<a href="[% target %]?product=[% p.name FILTER uri -%]
[%- IF cloned_bug_id %]&amp;cloned_bug_id=[% cloned_bug_id FILTER uri %][% END -%]
[%- IF format %]&amp;format=[% format FILTER uri %][% END %]">
[% p.name FILTER html FILTER no_break %]</a>:&nbsp;
</th>
......
......@@ -47,8 +47,8 @@
[% IF Param('shutdownhtml') || Bugzilla.has_flags %]
<span class="separator">| </span>
[% IF user.id %]
<a href="request.cgi?requester=[% user.login FILTER url_quote %]&amp;requestee=
[% user.login FILTER url_quote %]&amp;do_union=1&amp;group=type&amp;action=queue">My Requests</a>
<a href="request.cgi?requester=[% user.login FILTER uri %]&amp;requestee=
[% user.login FILTER uri %]&amp;do_union=1&amp;group=type&amp;action=queue">My Requests</a>
[% ELSE %]
<a href="request.cgi">Requests</a>
[% END %]
......
......@@ -129,7 +129,7 @@
[% ELSIF message_tag == "buglist_updated_named_query" %]
[% title = "Search updated" %]
Your search named <code><a
href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% queryname FILTER url_quote %]"
href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% queryname FILTER uri %]"
>[% queryname FILTER html %]</a></code> has been updated.
[% ELSIF message_tag == "buglist_new_default_query" %]
......@@ -139,7 +139,7 @@
[% ELSIF message_tag == "buglist_new_named_query" %]
[% title = "Search created" %]
OK, you have a new search named <code><a
href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% queryname FILTER url_quote %]"
href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% queryname FILTER uri %]"
>[% queryname FILTER html %]</a></code>.
[% ELSIF message_tag == "buglist_query_gone" %]
......@@ -734,7 +734,7 @@
[% ELSIF message_tag == "product_created" %]
[% title = "Product Created" %]
The product <em>[% product.name FILTER html %]</em> has been created. You will need to
<a href="editcomponents.cgi?action=add&product=[% product.name FILTER url_quote %]">
<a href="editcomponents.cgi?action=add&product=[% product.name FILTER uri %]">
add at least one component</a> before anyone can enter [% terms.bugs %] against this product.
[% ELSIF message_tag == "product_deleted" %]
......
......@@ -55,7 +55,7 @@
[%# *** Saved Searches *** %]
[% IF user.showmybugslink %]
[% user_login = user.login FILTER url_quote %]
[% user_login = user.login FILTER uri %]
<link rel="Saved&nbsp;Searches" title="My [% terms.Bugs %]"
href="[% Param('mybugstemplate').replace('%userid%', user_login) %]">
[% END %]
......@@ -64,8 +64,8 @@
<link rel="Saved&nbsp;Search"
title="[% q.name FILTER html %] ([% q.user.login FILTER html %])"
href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
[% q.name FILTER url_quote %]&amp;sharer_id=
[% q.user.id FILTER url_quote %]">
[% q.name FILTER uri %]&amp;sharer_id=
[% q.user.id FILTER uri %]">
[% END %]
[%# *** Bugzilla Administration Tools *** %]
......
......@@ -39,7 +39,7 @@
<li id="links-saved">
<ul class="links">
[% IF user.showmybugslink %]
[% filtered_username = user.login FILTER url_quote %]
[% filtered_username = user.login FILTER uri %]
<li><a href="[% Param('mybugstemplate').replace('%userid%', filtered_username) %]">My [% terms.Bugs %]</a></li>
[% print_pipe = 1 %]
[% END %]
......@@ -47,7 +47,7 @@
[% FOREACH q = user.queries %]
[% IF q.link_in_footer %]
<li>[% '<span class="separator">| </span>' IF print_pipe %]
<a href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER url_quote %]">[% q.name FILTER html %]</a></li>
<a href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER uri %]">[% q.name FILTER html %]</a></li>
[% print_pipe = 1 %]
[% END %]
[% END %]
......@@ -61,8 +61,8 @@
<li>
[% '<span class="separator">| </span>' IF print_pipe %]
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=run&amp;namedcmd=
[% q.name FILTER url_quote %]&amp;sharer_id=
[% q.user.id FILTER url_quote %]"
[% q.name FILTER uri %]&amp;sharer_id=
[% q.user.id FILTER uri %]"
class="shared"
title="Shared by [% q.user.identity FILTER html %]"
>[% q.name FILTER html FILTER no_break %]</a></li>
......
......@@ -237,7 +237,7 @@
You are not authorized to access [% terms.bug %] #[% bug_id FILTER html %].
To see this [% terms.bug %], you must
first <a href="show_bug.cgi?id=
[% bug_id FILTER url_quote %]&amp;GoAheadAndLogIn=1">log
[% bug_id FILTER uri %]&amp;GoAheadAndLogIn=1">log
in to an account</a> with the appropriate permissions.
[% ELSIF error == "bug_url_invalid" %]
......@@ -520,7 +520,7 @@
or disabled.
[% IF user.in_group('tweakparams') %]
You have to <a href="editparams.cgi?section=bugfields#
[%- param_name FILTER url_quote %]">change</a> the default value first.
[%- param_name FILTER uri %]">change</a> the default value first.
[% END %]
[% ELSIF error == "fieldvalue_name_too_long" %]
......@@ -689,7 +689,7 @@
The <em>[% group.name FILTER html %]</em> group cannot be deleted because
there are
<a href="editgroups.cgi?action=del&amp;group=
[%- group.id FILTER url_quote %]">records</a>
[%- group.id FILTER uri %]">records</a>
in the database which refer to it. All references to this group must
be removed before you can remove it.
......@@ -1086,7 +1086,7 @@
has to have at least one component in order for you to
enter [% terms.abug %] into it.<br>
[% IF user.in_group("editcomponents", product.id) %]
<a href="editcomponents.cgi?action=add&amp;product=[% product.name FILTER url_quote %]">Create
<a href="editcomponents.cgi?action=add&amp;product=[% product.name FILTER uri %]">Create
a new component</a>.
[% ELSE %]
Please contact [% Param("maintainer") %] and ask them
......@@ -1153,7 +1153,7 @@
has to have at least one version in order for you to
enter [% terms.abug %] into it.<br>
[% IF user.in_group("editcomponents", product.id) %]
<a href="editversions.cgi?action=add&amp;product=[% product.name FILTER url_quote %]">Create
<a href="editversions.cgi?action=add&amp;product=[% product.name FILTER uri %]">Create
a new version</a>.
[% ELSE %]
Please contact [% Param("maintainer") %] and ask them
......@@ -1198,8 +1198,8 @@
This will remove all [% terms.bugs %] from the
<em>[% name FILTER html %]</em> tag. This will delete the tag completely. Click
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
[%- name FILTER url_quote %]&amp;token=
[%- issue_hash_token([query_id, name]) FILTER url_quote %]">here</a>
[%- name FILTER uri %]&amp;token=
[%- issue_hash_token([query_id, name]) FILTER uri %]">here</a>
if you really want to delete it.
[% ELSIF error == "no_bugs_to_remove" %]
......@@ -1327,7 +1327,7 @@
[% title = "Must define new default milestone" %]
[% admindocslinks = {'products.html' => 'Administering products',
'milestones.html' => 'About Milestones'} %]
You must <a href="editmilestones.cgi?action=add&amp;product=[% product FILTER url_quote %]">
You must <a href="editmilestones.cgi?action=add&amp;product=[% product FILTER uri %]">
create the milestone '[% milestone FILTER html %]'</a> before
it can be made the default milestone for product '[% product FILTER html %]'.
......@@ -1376,8 +1376,8 @@
The name <em>[% name FILTER html %]</em> is already used by another
saved search. You first have to
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
[%- name FILTER url_quote %]&amp;token=
[% issue_hash_token([query_id, name]) FILTER url_quote %]">delete</a>
[%- name FILTER uri %]&amp;token=
[% issue_hash_token([query_id, name]) FILTER uri %]">delete</a>
it if you really want to use this name.
[% ELSIF error == "query_name_missing" %]
......@@ -1707,7 +1707,7 @@
<p>
Alternatively, you can
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
[% namedcmd FILTER url_quote %]">forget</a>
[% namedcmd FILTER uri %]">forget</a>
[% FOREACH q = Bugzilla.user.queries %]
[% IF q.name == namedcmd %]
......
......@@ -35,7 +35,7 @@
[% title = title _ ": " _ (searchname OR defaultsavename) FILTER html %]
[% END %]
[% qorder = order FILTER url_quote IF order %]
[% qorder = order FILTER uri IF order %]
[%############################################################################%]
......@@ -212,7 +212,7 @@
[% urlquerypart FILTER html %]&amp;ctype=ics">iCalendar</a> |
<a href="colchange.cgi?
[% urlquerypart FILTER html %]&amp;query_based_on=
[% defaultsavename OR searchname FILTER url_quote %]">Change&nbsp;Columns</a> |
[% defaultsavename OR searchname FILTER uri %]">Change&nbsp;Columns</a> |
[% IF bugs.size > 1 && caneditbugs && !dotweak %]
<a href="buglist.cgi?[% urlquerypart FILTER html %]
......@@ -239,8 +239,8 @@
<td valign="middle" nowrap="nowrap" class="bz_query_forget">
|
<a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
[% searchname FILTER url_quote %]&amp;token=
[% issue_hash_token([search_id, searchname]) FILTER url_quote %]">
[% searchname FILTER uri %]&amp;token=
[% issue_hash_token([search_id, searchname]) FILTER uri %]">
Forget&nbsp;Search&nbsp;'[% searchname FILTER html %]'</a>
</td>
[% ELSE %]
......@@ -277,14 +277,14 @@
[% editqueryname = searchname OR defaultsavename OR '' %]
query.cgi?[% urlquerypart FILTER html %]
[%- IF editqueryname != '' %]&amp;known_name=
[%- editqueryname FILTER url_quote %]
[%- editqueryname FILTER uri %]
[% END %]
[% END %]
[% BLOCK enter_bug_link %]
<a href="enter_bug.cgi
[%- IF one_product.defined %]?product=
[%- one_product.name FILTER url_quote %][% END %]">File
[%- one_product.name FILTER uri %][% END %]">File
a new [% terms.bug %]
[% IF one_product.defined %]
in the "[% one_product.name FILTER html %]" product
......
......@@ -58,11 +58,11 @@ END:VCALENDAR
[% END %]
[% BLOCK ics_uid %]
[% "${bug_id}@${base_url}" FILTER url_quote FILTER ics('UID') %]
[% "${bug_id}@${base_url}" FILTER uri FILTER ics('UID') %]
[% END %]
[% BLOCK ics_url %]
[% "${base_url}show_bug.cgi?id=${bug_id}" FILTER url_quote FILTER ics('URL;VALUE=URI') %]
[% "${base_url}show_bug.cgi?id=${bug_id}" FILTER uri FILTER ics('URL;VALUE=URI') %]
[% END %]
[% BLOCK ics_dtstart %]
......
......@@ -119,7 +119,7 @@
[% "Unknown" IF NOT users.$userid %]
</td>
<td>
<a href="quips.cgi?action=delete&amp;quipid=[% quipid FILTER url_quote %]">
<a href="quips.cgi?action=delete&amp;quipid=[% quipid FILTER uri %]">
Delete
</a>
</td>
......
......@@ -87,7 +87,7 @@
[% urlquerypart FILTER html %]&amp;order=
[% PROCESS new_order id='bug_id' %]
[%-#%]&amp;query_based_on=
[% defaultsavename OR searchname FILTER url_quote %]">ID
[% defaultsavename OR searchname FILTER uri %]">ID
[% PROCESS order_arrow id='bug_id' ~%]
</a>
</th>
......@@ -129,7 +129,7 @@
<a href="buglist.cgi?[% urlquerypart FILTER html %]&amp;order=
[% PROCESS new_order %]
[%-#%]&amp;query_based_on=
[% defaultsavename OR searchname FILTER url_quote %]">
[% defaultsavename OR searchname FILTER uri %]">
[%- abbrev.$id.title || field_descs.$id || column.title -%]
[% PROCESS order_arrow ~%]
</a>
......@@ -141,9 +141,9 @@
[% IF (om = order.match("\\b$id( DESC)?")) %]
[% desc = ' DESC' IF NOT om.0 %]
[% END %]
[% id _ desc FILTER url_quote %]
[% id _ desc FILTER uri %]
[% IF id != 'bug_id' AND order %]
[% ',' _ order.remove("\\b$id( DESC)?(,\\s*|\$)") FILTER url_quote %]
[% ',' _ order.remove("\\b$id( DESC)?(,\\s*|\$)") FILTER uri %]
[% END %]
[% END %]
......
......@@ -83,8 +83,8 @@
<tr id="[% comp.name FILTER html %]">
<td rowspan="2" class="component_name">
<a href="buglist.cgi?product=
[%- product.name FILTER url_quote %]&amp;component=
[%- comp.name FILTER url_quote %]&amp;resolution=---">
[%- product.name FILTER uri %]&amp;component=
[%- comp.name FILTER uri %]&amp;resolution=---">
[% comp.name FILTER html %]</a>
</td>
<td class="component_assignee">
......
......@@ -180,9 +180,9 @@ function subcatSelected() {
[%- series.series_id %]">Delete</a> |
[% END %]
<a href="buglist.cgi?cmdtype=dorem&amp;namedcmd=
[% series.category FILTER url_quote %]%20/%20
[% series.subcategory FILTER url_quote %]%20/%20
[% series.name FILTER url_quote -%]&amp;series_id=
[% series.category FILTER uri %]%20/%20
[% series.subcategory FILTER uri %]%20/%20
[% series.name FILTER uri -%]&amp;series_id=
[% series.series_id %]&amp;remaction=runseries">Run Search</a>
</td>
</tr>
......
......@@ -52,7 +52,7 @@
<p>
<a href="chart.cgi?action=delete&amp;series_id=[% series.series_id FILTER html %]&amp;token=
[%- issue_hash_token([series.id, series.name]) FILTER url_quote %]">Yes, delete</a> |
[%- issue_hash_token([series.id, series.name]) FILTER uri %]">Yes, delete</a> |
<a href="chart.cgi">No, go back to the charts page</a>
</p>
......
......@@ -58,12 +58,12 @@
%]
[% NEXT IF NOT ${param}.defined %]
[% FOREACH value = ${param} %]
[% filtered_value = value FILTER url_quote %]
[% filtered_value = value FILTER uri %]
[% base_args.push("$param=$filtered_value") %]
[% END %]
[% END %]
[% IF sortvisible %]
[% bug_ids_string = bug_ids.nsort.join(',') FILTER url_quote %]
[% bug_ids_string = bug_ids.nsort.join(',') FILTER uri %]
[% base_args.push("bug_id=$bug_ids_string") %]
[% END %]
[% base_args_string = base_args.join('&amp;') %]
......@@ -80,9 +80,9 @@
[% column.reverse_sort = reverse ? 0 : 1 %]
[% END %]
<th class="[% column.name FILTER html %]">
<a href="duplicates.cgi?sortby=[% column.name FILTER url_quote %]
<a href="duplicates.cgi?sortby=[% column.name FILTER uri %]
[% IF column.reverse_sort.defined %]
[%- %]&amp;reverse=[% column.reverse_sort FILTER url_quote %]
[%- %]&amp;reverse=[% column.reverse_sort FILTER uri %]
[% END %]
[% IF base_args_string %]
[% "&amp;$base_args_string" FILTER none %]
......
......@@ -64,9 +64,9 @@ set.
<a href="query.cgi?[% default.query FILTER html %]">View
series search parameters</a> |
<a href="buglist.cgi?cmdtype=dorem&amp;namedcmd=
[% default.category FILTER url_quote %]-
[% default.subcategory FILTER url_quote %]-
[% default.name FILTER url_quote %]&amp;remaction=runseries&amp;series_id=
[% default.category FILTER uri %]-
[% default.subcategory FILTER uri %]-
[% default.name FILTER uri %]&amp;remaction=runseries&amp;series_id=
[% default.series_id %]">Run series search</a>
</p>
......
......@@ -56,7 +56,7 @@
<td>[% keyword.description FILTER html_light %]</td>
<td align="center">
[% IF keyword.bug_count > 0 %]
<a href="buglist.cgi?keywords=[% keyword.name FILTER url_quote %]&amp;resolution=---">
<a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]&amp;resolution=---">
Search</a>
[% ELSE %]
none
......@@ -64,7 +64,7 @@
</td>
<td align="right">
[% IF keyword.bug_count > 0 %]
<a href="buglist.cgi?keywords=[% keyword.name FILTER url_quote %]">
<a href="buglist.cgi?keywords=[% keyword.name FILTER uri %]">
[% keyword.bug_count %]</a>
[% ELSE %]
none
......
......@@ -42,7 +42,7 @@
[% "&amp;$tbl_vals" IF tbl_vals %][% END %]
[% ELSE %]
[% urlbase = BLOCK %]buglist.cgi?[% buglistbase FILTER html %]&amp;
[% tbl_field FILTER url_quote %]=[% tbl FILTER url_quote %][% END %]
[% tbl_field FILTER uri %]=[% tbl FILTER uri %][% END %]
[% END %]
<script type="text/javascript">
......@@ -193,8 +193,8 @@ YAHOO.util.Event.addListener(window, "load", function() {
<td class="[% classes.$row_idx.$col_idx %]" align="center">
[% IF data.$tbl.$col.$row AND data.$tbl.$col.$row > 0 %]
<a href="[% urlbase %]&amp;
[% row_field FILTER url_quote %]=[% row FILTER url_quote %]&amp;
[% col_field FILTER url_quote %]=[% col FILTER url_quote %]">
[% row_field FILTER uri %]=[% row FILTER uri %]&amp;
[% col_field FILTER uri %]=[% col FILTER uri %]">
[% data.$tbl.$col.$row %]</a>
[% ELSE %]
.
......@@ -203,7 +203,7 @@ YAHOO.util.Event.addListener(window, "load", function() {
[% END %]
<td class="ttotal" align="right">
<a href="[% urlbase %]&amp;
[% row_field FILTER url_quote %]=[% row FILTER url_quote %]
[% row_field FILTER uri %]=[% row FILTER uri %]
[% "&amp;$col_vals" IF col_vals %]">
[% row_total %]</a>
[% grand_total = grand_total + row_total %]
......@@ -220,7 +220,7 @@ YAHOO.util.Event.addListener(window, "load", function() {
<td class="ttotal" align="center">
<a href="[% urlbase %]&amp;
[% col_field FILTER url_quote %]=[% col FILTER url_quote %]
[% col_field FILTER uri %]=[% col FILTER uri %]
[% "&amp;$row_vals" IF row_vals %]">
[% col_totals.$col %]</a>
</td>
......
......@@ -101,14 +101,14 @@
[% END %]
[% imageurl = BLOCK %]report.cgi?[% imagebase FILTER html %]&amp;format=
[% format FILTER url_quote %]&amp;ctype=png&amp;action=plot&amp;
[% format FILTER uri %]&amp;ctype=png&amp;action=plot&amp;
[% IF tbl_field %]
[% IF tbl != "-total-" %]
[% tbl_field FILTER url_quote %]=[% tbl FILTER url_quote %]&amp;
[% tbl_field FILTER uri %]=[% tbl FILTER uri %]&amp;
[% ELSE %]
[% FOREACH tblname = tbl_names %]
[% IF tblname != "-total-" %]
[% tbl_field FILTER url_quote %]=[% tblname FILTER url_quote %]&amp;
[% tbl_field FILTER uri %]=[% tblname FILTER uri %]&amp;
[% END %]
[% END %]
[% END %]
......
......@@ -102,12 +102,12 @@ function normal_keypress_handler( aEvent ) {
[%- END %]
<separator class="thin"/>
[%- IF user.showmybugslink %]
[% filtered_username = user.login FILTER url_quote %]
[% filtered_username = user.login FILTER uri %]
<text class="text-link" onclick="load_relative_url('[% Param('mybugstemplate').replace('%userid%', filtered_username) FILTER js FILTER html %]')" value="my [% terms.bugs %]"/>
[%- END %]
[%- FOREACH q = user.queries %]
<text class="text-link" onclick="load_relative_url('buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER url_quote %]')" value="[% q.name FILTER html %]"/>
<text class="text-link" onclick="load_relative_url('buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER uri %]')" value="[% q.name FILTER html %]"/>
[% END %]
[% ELSE %]
......
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