summaryrefslogtreecommitdiffstats
path: root/template
diff options
context:
space:
mode:
authorMax Kanat-Alexander <mkanat@bugzilla.org>2011-01-04 03:09:42 +0100
committerMax Kanat-Alexander <mkanat@bugzilla.org>2011-01-04 03:09:42 +0100
commitb6d1cc32f75d47437e382caccfccc5b2d98af765 (patch)
tree2ceff059de13f820287c0a84f248d55ef5630aff /template
parenta1fa8d5f9f196d8611c64c1625e8269c9df52214 (diff)
downloadbugzilla-b6d1cc32f75d47437e382caccfccc5b2d98af765.tar.gz
bugzilla-b6d1cc32f75d47437e382caccfccc5b2d98af765.tar.xz
Bug 595410: Make it faster to display a bug that has a lot of dependencies.
r=LpSolit, a=LpSolit
Diffstat (limited to 'template')
-rw-r--r--template/en/default/bug/edit.html.tmpl50
-rw-r--r--template/en/default/bug/link.html.tmpl61
-rw-r--r--template/en/default/filterexceptions.pl4
-rw-r--r--template/en/default/global/field-descs.none.tmpl42
4 files changed, 101 insertions, 56 deletions
diff --git a/template/en/default/bug/edit.html.tmpl b/template/en/default/bug/edit.html.tmpl
index 2a9a0776e..744afeb2d 100644
--- a/template/en/default/bug/edit.html.tmpl
+++ b/template/en/default/bug/edit.html.tmpl
@@ -620,13 +620,13 @@
[%############################################################################%]
[% BLOCK section_dependson_blocks %]
<tr>
- [% PROCESS dependencies
- dep = { title => "Depends&nbsp;on", fieldname => "dependson" } %]
+ [% INCLUDE dependencies
+ field = bug_fields.dependson deps = bug.depends_on_obj %]
</tr>
<tr>
- [% PROCESS dependencies accesskey = "b"
- dep = { title => "<u>B</u>locks", fieldname => "blocked" } %]
+ [% INCLUDE dependencies
+ field = bug_fields.blocked deps = bug.blocks_obj %]
<tr>
<th>&nbsp;</th>
@@ -936,38 +936,36 @@
[% BLOCK dependencies %]
- <th class="field_label">
- <label for="[% dep.fieldname %]"[% " accesskey=\"$accesskey\"" IF accesskey %]>
- [% dep.title %]</label>:
- </th>
- <td>
- <span id="[% dep.fieldname %]_input_area">
- [% IF bug.check_can_change_field(dep.fieldname, 0, 1) %]
- <input name="[% dep.fieldname %]" id="[% dep.fieldname %]"
- class="text_input"
- value="[% bug.${dep.fieldname}.join(', ') %]">
+ [% INCLUDE "bug/field-label.html.tmpl" %]
+
+ <td>
+ <span id="[% field.name FILTER html %]_input_area">
+ [% IF bug.check_can_change_field(field.name, 0, 1) %]
+ <input name="[% field.name FILTER html %]"
+ id="[% field.name FILTER html %]" class="text_input"
+ value="[% bug.${field.name}.join(', ') FILTER html %]">
[% END %]
</span>
- [% FOREACH depbug = bug.${dep.fieldname} %]
- [% depbug FILTER bug_link(depbug, use_alias => 1) FILTER none %][% " " %]
+ [% FOREACH dep_bug = deps %]
+ [% dep_bug.id FILTER bug_link(dep_bug, use_alias => 1)
+ FILTER none %][% " " %]
[% END %]
- [% IF bug.check_can_change_field(dep.fieldname, 0, 1) %]
- <span id="[% dep.fieldname %]_edit_container" class="edit_me bz_default_hidden" >
- (<a href="#" id="[% dep.fieldname %]_edit_action">edit</a>)
+ [% IF bug.check_can_change_field(field.name, 0, 1) %]
+ <span id="[% field.name FILTER html %]_edit_container"
+ class="edit_me bz_default_hidden">
+ (<a href="#" id="[% field.name FILTER html %]_edit_action">edit</a>)
</span>
<script type="text/javascript">
- hideEditableField('[% dep.fieldname %]_edit_container',
- '[% dep.fieldname %]_input_area',
- '[% dep.fieldname %]_edit_action',
- '[% dep.fieldname %]',
- "[% bug.${dep.fieldname}.join(', ') %]");
+ hideEditableField('[% field.name FILTER js %]_edit_container',
+ '[% field.name FILTER js %]_input_area',
+ '[% field.name FILTER js %]_edit_action',
+ '[% field.name FILTER js %]',
+ '[% bug.${field.name}.join(', ') FILTER js %]');
</script>
[% END %]
</td>
- [% accesskey = undef %]
-
[% END %]
[%############################################################################%]
diff --git a/template/en/default/bug/link.html.tmpl b/template/en/default/bug/link.html.tmpl
new file mode 100644
index 000000000..b13866850
--- /dev/null
+++ b/template/en/default/bug/link.html.tmpl
@@ -0,0 +1,61 @@
+[%# The contents of this file are subject to the Mozilla Public
+ # License Version 1.1 (the "License"); you may not use this file
+ # except in compliance with the License. You may obtain a copy of
+ # the License at http://www.mozilla.org/MPL/
+ #
+ # Software distributed under the License is distributed on an "AS
+ # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ # implied. See the License for the specific language governing
+ # rights and limitations under the License.
+ #
+ # The Original Code is the Bugzilla Bug Tracking System.
+ #
+ # The Initial Developer of the Original Code is Everything Solved, Inc.
+ # Portions created by the Initial Developer are Copyright (C) 2010 the
+ # Initial Developer. All Rights Reserved.
+ #
+ # Contributor(s):
+ # Max Kanat-Alexander <mkanat@bugzilla.org>
+ #%]
+
+[%# INTERFACE:
+ # bug: a Bugzilla::Bug object
+ # link_text: the text that we're highlighting.
+ # use_alias: boolean; If true, we display the bug's alias as the link
+ # text instead of link_text.
+ # comment_num: If defined, make this a link to that comment on the bug.
+ # full_url: boolean; If true, generate links that include the full
+ # urlbase. (This is for emails, mostly.)
+ #%]
+
+[% IF !bug %]
+ &lt;missing&gt;
+ [% RETURN %]
+[% END %]
+
+[%# We use "FILTER none" here because link_title is filtered down below. %]
+[% link_title = BLOCK %]
+ [% display_value('bug_status', bug.bug_status) FILTER none %]
+ [%+ display_value('resolution', bug.resolution) FILTER none %]
+[% END %]
+
+[% IF user.can_see_bug(bug) %]
+ [% link_title = link_title _ ' - ' _ bug.short_desc %]
+
+ [% IF use_alias && bug.alias %]
+ [% link_text = bug.alias %]
+ [% END %]
+[% END %]
+
+[% SET anchor = '' %]
+[% IF comment_num.defined %]
+ [% anchor = "#c$comment_num" %]
+[% END %]
+
+<a class="bz_bug_link
+ bz_status_[% bug.bug_status FILTER css_class_quote %]
+ [% ' bz_closed' IF !bug.isopened %]"
+ title="[% link_title FILTER collapse FILTER html %]"
+ href="[% urlbase FILTER html IF full_url %]show_bug.cgi?id=
+ [%~ bug.id FILTER uri %][% anchor FILTER html %]">
+ [%~ link_text FILTER html %]</a>
diff --git a/template/en/default/filterexceptions.pl b/template/en/default/filterexceptions.pl
index b85bb7acd..abc57008c 100644
--- a/template/en/default/filterexceptions.pl
+++ b/template/en/default/filterexceptions.pl
@@ -258,11 +258,7 @@
'bug.delta_ts',
'bug.bug_id',
'group.bit',
- 'dep.title',
- 'dep.fieldname',
- 'bug.${dep.fieldname}.join(\', \')',
'selname',
- '" accesskey=\"$accesskey\"" IF accesskey',
'inputname',
'" colspan=\"$colspan\"" IF colspan',
'" size=\"$size\"" IF size',
diff --git a/template/en/default/global/field-descs.none.tmpl b/template/en/default/global/field-descs.none.tmpl
index efcce6c64..ff6033783 100644
--- a/template/en/default/global/field-descs.none.tmpl
+++ b/template/en/default/global/field-descs.none.tmpl
@@ -61,35 +61,25 @@
${constants.FIELD_TYPE_BUG_ID} => "$terms.Bug ID",
} %]
-[%# You can use this hash to localize (translate) the values displayed
- # for drop-down and multiple-select fields. Lines starting with "#"
- # are comments.
- #%]
-[% value_descs = {
- "bug_status" => {
- # "UNCONFIRMED" => "UNCO",
- # "CONFIRMED" => "ITSABUG",
- },
+[% IF in_template_var %]
- "resolution" => {
- "" => "---",
- # "FIXED" => "NO LONGER AN ISSUE",
- # "WORKSFORME" => "NOTMYPROBLEM!",
- },
-} %]
+ [%# You can use this hash to localize (translate) the values displayed
+ # for drop-down and multiple-select fields. Lines starting with "#"
+ # are comments.
+ #%]
+ [% value_descs = {
+ "bug_status" => {
+ # "UNCONFIRMED" => "UNCO",
+ # "CONFIRMED" => "ITSABUG",
+ },
-[%# We use "FILTER none" here because only the caller can know how to
- # filter the result appropriately.
- #%]
-[% MACRO display_value(field_name, value_name) BLOCK %][% FILTER trim %]
- [% IF value_descs.${field_name}.${value_name}.defined %]
- [% value_descs.${field_name}.${value_name} FILTER none %]
- [% ELSE %]
- [% value_name FILTER none %]
- [% END %]
-[% END %][% END %]
+ "resolution" => {
+ "" => "---",
+ # "FIXED" => "NO LONGER AN ISSUE",
+ # "WORKSFORME" => "NOTMYPROBLEM!",
+ },
+ } %]
-[% IF in_template_var %]
[% vars.terms = terms %]
[%# field_descs is loaded as a global template variable and cached