2003-07-30 20:05:04 +00:00

308 lines
8.9 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): John Keiser <jkeiser@netscape.com>
#%]
[%# Define strings that will serve as the title and header of this page %]
[% title = BLOCK %]Attachment #[% attachid %] for Bug #[% bugid %][% END %]
[% style = BLOCK %]
.file_head {
font-size: x-large;
font-weight: bold;
background-color: #d3d3d3;
border: 1px solid black;
width: 100%;
}
.file_collapse {
display: none;
}
.section_head {
width: 100%;
font-weight: bold;
background-color: #d3d3d3;
border: 1px solid black;
text-align: left;
}
table.file_table {
table-layout: fixed;
width: 100%;
empty-cells: show;
border-spacing: 0px;
border-collapse: collapse;
}
tbody.file td {
border-left: 1px dashed black;
border-right: 1px dashed black;
width: 50%;
}
tbody.file pre {
display: inline;
white-space: -moz-pre-wrap;
font-size: 0.9em;
}
tbody.file pre:empty {
display: block;
height: 1em;
}
.changed {
background-color: lightblue;
}
.added {
background-color: lightgreen;
}
.removed {
background-color: #FFCC99;
}
.warning {
color: red
}
[% END %]
[%# SCRIPT FUNCTIONS %]
[% javascript = BLOCK %]
function collapse_all() {
var elem = document.checkboxform.firstChild;
while (elem != null) {
if (elem.firstChild != null) {
var tbody = elem.firstChild.nextSibling;
if (tbody.className == 'file') {
tbody.className = 'file_collapse';
twisty = get_twisty_from_tbody(tbody);
twisty.firstChild.nodeValue = '(+)';
twisty.nextSibling.checked = false;
}
}
elem = elem.nextSibling;
}
return false;
}
function expand_all() {
var elem = document.checkboxform.firstChild;
while (elem != null) {
if (elem.firstChild != null) {
var tbody = elem.firstChild.nextSibling;
if (tbody.className == 'file_collapse') {
tbody.className = 'file';
twisty = get_twisty_from_tbody(tbody);
twisty.firstChild.nodeValue = '(-)';
twisty.nextSibling.checked = true;
}
}
elem = elem.nextSibling;
}
return false;
}
var current_restore_elem;
function restore_all() {
current_restore_elem = null;
incremental_restore();
}
function incremental_restore() {
if (!document.checkboxform.restore_indicator.checked) {
return;
}
var next_restore_elem;
if (current_restore_elem) {
next_restore_elem = current_restore_elem.nextSibling;
} else {
next_restore_elem = document.checkboxform.firstChild;
}
while (next_restore_elem != null) {
current_restore_elem = next_restore_elem;
if (current_restore_elem.firstChild != null) {
restore_elem(current_restore_elem.firstChild.nextSibling);
}
next_restore_elem = current_restore_elem.nextSibling;
}
}
function restore_elem(elem, alertme) {
if (elem.className == 'file_collapse') {
twisty = get_twisty_from_tbody(elem);
if (twisty.nextSibling.checked) {
elem.className = 'file';
twisty.firstChild.nodeValue = '(-)';
}
} else if (elem.className == 'file') {
twisty = get_twisty_from_tbody(elem);
if (!twisty.nextSibling.checked) {
elem.className = 'file_collapse';
twisty.firstChild.nodeValue = '(+)';
}
}
}
function twisty_click(twisty) {
tbody = get_tbody_from_twisty(twisty);
if (tbody.className == 'file') {
tbody.className = 'file_collapse';
twisty.firstChild.nodeValue = '(+)';
twisty.nextSibling.checked = false;
} else {
tbody.className = 'file';
twisty.firstChild.nodeValue = '(-)';
twisty.nextSibling.checked = true;
}
return false;
}
function get_tbody_from_twisty(twisty) {
return twisty.parentNode.parentNode.parentNode.nextSibling;
}
function get_twisty_from_tbody(tbody) {
return tbody.previousSibling.firstChild.firstChild.firstChild;
}
[% END %]
[% onload = 'restore_all(); document.checkboxform.restore_indicator.checked = true' %]
[% IF headers %]
[% h1 = BLOCK %]
[% IF attachid %]
[% description FILTER html %] (#[% attachid %])
[% ELSE %]
[% old_url = url('attachment.cgi', action = 'diff', id = oldid) %]
[% new_url = url('attachment.cgi', action = 'diff', id = newid) %]
Diff Between
<a href="[% old_url %]">[% old_desc FILTER html %]</a>
(<a href="[% old_url %]">#[% oldid %]</a>)
and
<a href="[% new_url %]">[% new_desc FILTER html %]</a>
(<a href="[% new_url %]">#[% newid %]</a>)
[% END %]
for <a href="show_bug.cgi?id=[% bugid %]">Bug #[% bugid %]</a>
[% END %]
[% h2 = BLOCK %]
[% bugsummary FILTER html %]
[% END %]
[% PROCESS global/header.html.tmpl %]
[% ELSE %]
<html>
<head>
<style type="text/css">
[% style %]
</style>
<script type="text/javascript" language="JavaScript">
<!--
[% javascript %]
-->
</script>
</head>
<body onload="[% onload FILTER html %]">
[% END %]
[%# If we have attachid, we are in diff, otherwise we're in interdiff %]
[% IF attachid %]
[%# HEADER %]
[% IF headers %]
[% USE url('attachment.cgi', id = attachid) %]
<a href="[% url() %]">View</a>
| <a href="[% url(action = 'edit') %]">Edit</a>
[% USE url('attachment.cgi', id = attachid, context = context,
collapsed = collapsed, headers = headers,
action = 'diff') %]
| <a href="[% url(format = 'raw') %]">Raw Unified</a>
[% END %]
[% IF other_patches %]
[% IF headers %] |[%END%]
Differences between
<form style="display: inline">
<select name="oldid">
[% FOREACH patch = other_patches %]
<option value="[% patch.id %]"
[% IF patch.selected %] selected[% END %]
>[% patch.desc FILTER html %]</option>
[% END %]
</select>
and this patch
<input type="submit" value="Diff">
<input type="hidden" name="action" value="interdiff">
<input type="hidden" name="newid" value="[% attachid %]">
<input type="hidden" name="headers" value="[% headers FILTER html %]">
</form>
[% END %]
<br>
[% ELSE %]
[% IF headers %]
[% USE url('attachment.cgi', newid = newid, oldid = oldid, action = 'interdiff') %]
<a href="[% url(format = 'raw') %]">Raw Unified</a>
[% IF attachid %]
<br>
[% ELSE %]
|
[% END %]
[% END %]
[% END %]
[%# Collapse / Expand %]
<a href="#"
onmouseover="lastStatus = window.status; window.status='Collapse All'; return true"
onmouseout="window.status = lastStatus; return true"
onclick="return collapse_all()">Collapse All</a> |
<a href="#"
onmouseover="lastStatus = window.status; window.status='Expand All'; return true"
onmouseout="window.status = lastStatus; return true"
onclick="return expand_all()">Expand All</a>
[% IF do_context %]
| <span style='font-weight: bold'>Context:</span>
[% IF context == "patch" %]
(<strong>Patch</strong> /
[% ELSE %]
(<a href="[% url(context = '') %]">Patch</a> /
[% END %]
[% IF context == "file" %]
<strong>File</strong> /
[% ELSE %]
<a href="[% url(context = 'file') %]">File</a> /
[% END %]
[% IF context == "patch" || context == "file" %]
[% context = 3 %]
[% END %]
[%# textbox for context %]
<form style="display: inline"><input type="hidden" name="action" value="diff"><input type="hidden" name="id" value="[% attachid %]"><input type="hidden" name="collapsed" value="[% collapsed FILTER html %]"><input type="hidden" name="headers" value="[% headers FILTER html %]"><input type="text" name="context" value="[% context FILTER html %]" size="3"></form>)
[% END %]
[% IF warning %]
<h2 class="warning">Warning:
[% IF warning == "interdiff1" %]
this difference between two patches may show things in the wrong places due
to a limitation in Bugzilla when comparing patches with different sets of
files.
[% END %]
[% IF warning == "interdiff2" %]
this difference between two patches may be inaccurate due to a limitation in
Bugzilla when comparing patches made against different revisions.
[% END %]
</h2>
[% END %]
[%# Restore Stuff %]
<form name="checkboxform">
<input type="checkbox" name="restore_indicator" style="display: none">