INCLUDE for PROCESS when using variables.none gives us our $terms back. r,a=justdave. git-svn-id: svn://10.0.0.236/trunk@158516 18797224-902f-48f8-a5cc-f745e15eee43
250 lines
8.3 KiB
Cheetah
250 lines
8.3 KiB
Cheetah
[%# 1.0@bugzilla.org %]
|
|
[%# The contents of this file are subject to the Mozilla Public
|
|
# License Version 1.1 (the "License"); you may not use this file
|
|
# except in compliance with the License. You may obtain a copy of
|
|
# the License at http://www.mozilla.org/MPL/
|
|
#
|
|
# Software distributed under the License is distributed on an "AS
|
|
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
# implied. See the License for the specific language governing
|
|
# rights and limitations under the License.
|
|
#
|
|
# The Original Code is the Bugzilla Bug Tracking System.
|
|
#
|
|
# The Initial Developer of the Original Code is Netscape Communications
|
|
# Corporation. Portions created by Netscape are
|
|
# Copyright (C) 1998 Netscape Communications Corporation. All
|
|
# Rights Reserved.
|
|
#
|
|
# Contributor(s): Tobias Burnus <burnus@net-b.de>
|
|
# Ville Skyttä <ville.skytta@iki.fi>
|
|
# Myk Melez <myk@mozilla.org>
|
|
#%]
|
|
|
|
[% PROCESS global/variables.none.tmpl %]
|
|
|
|
[% PROCESS global/header.html.tmpl
|
|
title = "Dependency tree for $terms.Bug $bugid"
|
|
h1 = "Dependency tree for <a href=\"show_bug.cgi?id=$bugid\">$terms.Bug $bugid</a>"
|
|
%]
|
|
|
|
[% PROCESS depthControlToolbar %]
|
|
|
|
[%# Display the tree of bugs that this bug depends on. %]
|
|
<h3>
|
|
[% IF hide_resolved %]
|
|
Open [% terms.bugs %]
|
|
[% ELSE %]
|
|
[% terms.Bugs %]
|
|
[% END %]
|
|
that <a href="show_bug.cgi?id=[% bugid %]">[% terms.bug %] [%+ bugid %]</a>
|
|
depends on</h3>
|
|
[% IF dependson_ids.size > 0 %]
|
|
(
|
|
[% IF maxdepth -%]Up to [% maxdepth %] level[% "s" IF maxdepth > 1 %] deep | [% END %]
|
|
<a href="buglist.cgi?bug_id=[% dependson_ids.join(",") %]">view as [% terms.bug %] list</a>
|
|
[% IF canedit && dependson_ids.size > 1 %]
|
|
| <a href="buglist.cgi?bug_id=[% dependson_ids.join(",") %]&tweak=1">change several</a>
|
|
[% END %])
|
|
[% INCLUDE display_tree tree=dependson_tree bug_id=bugid %]
|
|
[% ELSE %]
|
|
</h3>
|
|
<p>None</p>
|
|
[% END %]
|
|
|
|
[%# Display the tree of bugs that this bug blocks. %]
|
|
<h3>
|
|
[% IF hide_resolved %]
|
|
Open [% terms.bugs %]
|
|
[% ELSE %]
|
|
[% terms.Bugs %]
|
|
[% END %]
|
|
that <a href="show_bug.cgi?id=[% bugid %]">[% terms.bug %] [%+ bugid %]</a>
|
|
blocks</h3>
|
|
[% IF blocked_ids.size > 0 %]
|
|
(
|
|
[% IF maxdepth -%]Up to [% maxdepth %] level[% "s" IF maxdepth > 1 %] deep | [% END %]
|
|
<a href="buglist.cgi?bug_id=[% blocked_ids.join(",") %]">view as [% terms.bug %] list</a>
|
|
[% IF canedit && blocked_ids.size > 1 %]
|
|
| <a href="buglist.cgi?bug_id=[% blocked_ids.join(",") %]&tweak=1">change several</a>
|
|
[% END %])
|
|
[% INCLUDE display_tree tree=blocked_tree bug_id=bugid %]
|
|
[% ELSE %]
|
|
</h3>
|
|
<p>None</p>
|
|
[% END %]
|
|
|
|
[% PROCESS depthControlToolbar %]
|
|
|
|
[% PROCESS global/footer.html.tmpl %]
|
|
|
|
|
|
[%###########################################################################%]
|
|
[%# Block to display a tree #%]
|
|
[%###########################################################################%]
|
|
|
|
[% BLOCK display_tree %]
|
|
[% tree.$bug_id.seen = 1 %]
|
|
<ul>
|
|
[% FOREACH dep_id = tree.$bug_id.dependencies %]
|
|
[% dep = tree.$dep_id %]
|
|
<li>
|
|
[% "<script>document.write('<a href=\"#\" class=\"toggle\" onclick=\"listToggle(event); return false\">[-]</a>')</script>"
|
|
IF dep.dependencies.size > 0 && !dep.seen %]
|
|
[% isclosed = !dep.open %]
|
|
[% FILTER closed(isclosed) %]
|
|
<a href="show_bug.cgi?id=[% dep_id %]">[% dep_id %]
|
|
[[% IF dep.milestone %][% dep.milestone FILTER html %], [% END %]
|
|
[% dep.assignee_email FILTER html %]] -
|
|
[% IF dep.seen %]
|
|
<i>This [% terms.bug %] appears elsewhere in this tree.</i></a>
|
|
[% ELSE %]
|
|
[% dep.summary FILTER html %].</a>
|
|
[% END %]
|
|
[% END %]
|
|
[% INCLUDE display_tree bug_id=dep_id
|
|
IF dep.dependencies.size > 0 && !dep.seen %]
|
|
</li>
|
|
[% END %]
|
|
</ul>
|
|
[% END %]
|
|
|
|
[%###########################################################################%]
|
|
[%# Block for depth control toolbar #%]
|
|
[%###########################################################################%]
|
|
|
|
<script type="text/javascript" language="JavaScript">
|
|
if (!Node) {
|
|
/* MSIE doesn't define Node, so provide a compatibility array */
|
|
var Node = { TEXT_NODE: 3, };
|
|
}
|
|
|
|
function toggleDisplay(node)
|
|
{
|
|
var display = node.style.display;
|
|
if (display == "none") {
|
|
node.style.display =
|
|
("oldDisplay" in node) ? node.oldDisplay : "block";
|
|
return true;
|
|
}
|
|
|
|
node.oldDisplay = display;
|
|
node.style.display = "none";
|
|
return false;
|
|
}
|
|
|
|
function listToggle(event)
|
|
{
|
|
var node = event.target;
|
|
if (node.nodeType == Node.TEXT_NODE)
|
|
node = node.parentNode;
|
|
var toggle = node.nextSibling;
|
|
while (toggle && toggle.tagName != "UL")
|
|
toggle = toggle.nextSibling;
|
|
if (toggle) {
|
|
node.firstChild.data = toggleDisplay(toggle) ? "[-]" : "[+]";
|
|
}
|
|
}
|
|
|
|
</script>
|
|
[% BLOCK depthControlToolbar %]
|
|
<table cellpadding="3" border="0" cellspacing="0" bgcolor="#d0d0d0">
|
|
<tr>
|
|
[%# Hide/show resolved button
|
|
Swaps text depending on the state of hide_resolved %]
|
|
<td align="center">
|
|
<form method="get" action="showdependencytree.cgi"
|
|
style="display: inline; margin: 0px;">
|
|
<input name="id" type="hidden" value="[% bugid %]">
|
|
[% IF maxdepth %]
|
|
<input name="maxdepth" type="hidden" value="[% maxdepth %]">
|
|
[% END %]
|
|
<input type="hidden" name="hide_resolved" value="[% hide_resolved ? 0 : 1 %]">
|
|
<input type="submit"
|
|
value="[% IF hide_resolved %]Show[% ELSE %]Hide[% END %] Resolved">
|
|
</form>
|
|
</td>
|
|
|
|
<td>
|
|
Max Depth:
|
|
</td>
|
|
|
|
<td>
|
|
|
|
</td>
|
|
|
|
<td>
|
|
<form method="get" action="showdependencytree.cgi"
|
|
style="display: inline; margin: 0px;">
|
|
[%# set to one form %]
|
|
<input type="submit" value=" 1 "
|
|
[% "disabled" IF realdepth < 2 || maxdepth == 1 %]>
|
|
<input name="id" type="hidden" value="[% bugid %]">
|
|
<input name="maxdepth" type="hidden" value="1">
|
|
<input name="hide_resolved" type="hidden" value="[% hide_resolved %]">
|
|
</form>
|
|
</td>
|
|
|
|
<td>
|
|
<form method="get" action="showdependencytree.cgi"
|
|
style="display: inline; margin: 0px;">
|
|
[%# Minus one form
|
|
Allow subtracting only when realdepth and maxdepth > 1 %]
|
|
<input name="id" type="hidden" value="[% bugid %]">
|
|
<input name="maxdepth" type="hidden" value="[%
|
|
maxdepth == 1 ? 1
|
|
: ( maxdepth ? maxdepth - 1 : realdepth - 1 )
|
|
%]">
|
|
<input name="hide_resolved" type="hidden" value="[% hide_resolved %]">
|
|
<input type="submit" value=" < "
|
|
[% "disabled" IF realdepth < 2 || ( maxdepth && maxdepth < 2 ) %]>
|
|
</form>
|
|
</td>
|
|
|
|
<td>
|
|
<form method="get" action="showdependencytree.cgi"
|
|
style="display: inline; margin: 0px;">
|
|
[%# Limit entry form: the button can not do anything when total depth
|
|
is less than two, so disable it %]
|
|
<input name="maxdepth" size="4" maxlength="4" value="[%
|
|
maxdepth > 0 && maxdepth <= realdepth ? maxdepth : ""
|
|
%]">
|
|
<input name="id" type="hidden" value="[% bugid %]">
|
|
<input name="hide_resolved" type="hidden" value="[% hide_resolved %]">
|
|
<noscript>
|
|
<input type="submit" value="Change" [% "disabled" IF realdepth < 2 %]>
|
|
</noscript>
|
|
</form>
|
|
</td>
|
|
|
|
<td>
|
|
<form method="get" action="showdependencytree.cgi"
|
|
style="display: inline; margin: 0px;">
|
|
[%# plus one form
|
|
Disable button if total depth < 2, or if depth set to unlimited %]
|
|
<input name="id" type="hidden" value="[% bugid %]">
|
|
[% IF maxdepth %]
|
|
<input name="maxdepth" type="hidden" value="[% maxdepth + 1 %]">
|
|
[% END %]
|
|
<input name="hide_resolved" type="hidden" value="[% hide_resolved %]">
|
|
<input type="submit" value=" > "
|
|
[% "disabled" IF realdepth < 2 || !maxdepth || maxdepth >= realdepth %]
|
|
%]>
|
|
</form>
|
|
</td>
|
|
|
|
<td>
|
|
<form method="get" action="showdependencytree.cgi"
|
|
style="display: inline; margin: 0px;">
|
|
[%# Unlimited button %]
|
|
<input name="id" type="hidden" value="[% bugid %]">
|
|
<input name="hide_resolved" type="hidden" value="[% hide_resolved %]">
|
|
<input type="submit" value=" Unlimited "
|
|
[% "disabled" IF maxdepth == 0 || maxdepth == realdepth %]>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
[% END %]
|