blob: a9bc3750cf1c7cde0272e4fe628a985114d1a851 [file] [log] [blame]
[%# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
#%]
[% RETURN UNLESS attachments.size || Param("maxattachmentsize") || Param("maxlocalattachment") %]
<script src="[% 'js/status-bubble.js' FILTER mtime %]"></script>
<script type="text/javascript">
<!--
window.addEventListener('message', handleStatusBubbleMessage, false);
function toggle_display(link) {
var table = document.getElementById("attachment_table");
var view_all = document.getElementById("view_all");
var hide_obsolete_url_parameter = "&hide_obsolete=1";
// Store current height for scrolling later
var originalHeight = table.offsetHeight;
var rows = YAHOO.util.Dom.getElementsByClassName(
'bz_tr_obsolete', 'tr', table);
for (var i = 0; i < rows.length; i++) {
bz_toggleClass(rows[i], 'bz_default_hidden');
}
if (YAHOO.util.Dom.hasClass(rows[0], 'bz_default_hidden')) {
link.innerHTML = "Show Obsolete";
view_all.href = view_all.href + hide_obsolete_url_parameter
}
else {
link.innerHTML = "Hide Obsolete";
view_all.href = view_all.href.replace(hide_obsolete_url_parameter,"");
}
var newHeight = table.offsetHeight;
// This scrolling makes the window appear to not move at all.
window.scrollBy(0, newHeight - originalHeight);
return false;
}
//-->
</script>
<br>
<table id="attachment_table">
<tr id="a0">
<th colspan="[% show_attachment_flags ? 3 : 2 %]" class="left">
Attachments
</th>
</tr>
[% count = 0 %]
[% obsolete_attachments = 0 %]
[% user_cache = template_cache.users %]
[% FOREACH attachment = attachments %]
[% count = count + 1 %]
[% IF !attachment.isprivate || user.is_insider || attachment.attacher.id == user.id %]
[% IF attachment.isobsolete %]
[% obsolete_attachments = obsolete_attachments + 1 %]
[% END %]
<tr id="a[% count %]" class="[% "bz_contenttype_" _ attachment.contenttype
FILTER css_class_quote %]
[% " bz_patch" IF attachment.ispatch %]
[% " bz_private" IF attachment.isprivate %]
[% " bz_tr_obsolete bz_default_hidden"
IF attachment.isobsolete %]"
[%# if WEBKIT_CHANGES %]
[% IF attachment.ispatch && !attachment.isobsolete %] style="background-color: rgb(255,255,200);" [% END %]
[%# endif // WEBKIT_CHANGES %]
>
<td>
[% IF attachment.datasize %]
<a href="attachment.cgi?id=[% attachment.id %]"
title="View the content of the attachment">
[% END %]
<b>[% attachment.description FILTER html FILTER obsolete(attachment.isobsolete) %]</b>
[% "</a>" IF attachment.datasize %]
<span class="bz_attach_extra_info">
[% IF attachment.datasize %]
([% attachment.datasize FILTER unitconvert %],
[% IF attachment.ispatch %]
patch)
[% ELSE %]
[%+ attachment.contenttype FILTER html %])
[% END %]
[% ELSE %]
(<em>deleted</em>)
[% END %]
<br>
<a href="#attach_[% attachment.id %]"
title="Go to the comment associated with the attachment">
[%- attachment.attached FILTER time("%Y-%m-%d %H:%M %Z") %]</a>,
[%# No need to recreate the exact same template if we already have it. %]
[% attacher_id = attachment.attacher.id %]
[% UNLESS user_cache.$attacher_id %]
[% user_cache.$attacher_id = BLOCK %]
[% INCLUDE global/user.html.tmpl who = attachment.attacher %]
[% END %]
[% END %]
[% user_cache.$attacher_id FILTER none %]
</span>
</td>
[% IF show_attachment_flags %]
<td class="bz_attach_flags">
[% IF attachment.flags.size == 0 %]
<i>no flags</i>
[% ELSE %]
[% FOREACH flag = attachment.flags %]
[% IF user.id %]
<span title="[% flag.setter.identity FILTER html %]">[% flag.setter.nick FILTER html %]</span>:
[% ELSIF flag.setter.name %]
<span title="[% flag.setter.name FILTER html %]">[% flag.setter.nick FILTER html %]</span>:
[% ELSE %]
[% flag.setter.nick FILTER html %]:
[% END %]
[%+ flag.type.name FILTER html %][% flag.status %]
[%+ IF flag.status == "?" && flag.requestee %]
[% IF user.id %]
(<span title="[% flag.requestee.identity FILTER html %]">[% flag.requestee.nick FILTER html %]</span>)
[% ELSIF flag.requestee.name %]
(<span title="[% flag.requestee.name FILTER html %]">[% flag.requestee.nick FILTER html %]</span>)
[% ELSE %]
([% flag.requestee.nick FILTER html %])
[% END %]
[% END %]<br>
[% END %]
[% END %]
</td>
[% END %]
<td>
[%# if WEBKIT_CHANGES %]
[% IF attachment.ispatch && user.id %]
<a href="attachment.cgi?id=[% attachment.id %]&amp;action=review">Review Patch</a> |
[% END %]
[%# endif // WEBKIT_CHANGES %]
<a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">Details</a>
[%# if WEBKIT_CHANGES %]
[% IF attachment.ispatch %]
| <a href="attachment.cgi?id=[% attachment.id %]&amp;action=prettypatch">Formatted Diff</a>
[% END %]
[%# endif // WEBKIT_CHANGES %]
[% IF attachment.ispatch && feature_enabled('patch_viewer') %]
| <a href="attachment.cgi?id=[% attachment.id %]&amp;action=diff">Diff</a>
[% END %]
[% Hook.process("action") %]
[%# if WEBKIT_CHANGES %]
[% IF attachment.ispatch %]
<div class="statusBubble">
<iframe src="https://webkit-queues.webkit.org/status-bubble/[% attachment.id %]"
style="width: 0px; height: 20px; border: none;" scrolling="no" onload="handleStatusBubbleLoad(this)">
</iframe>
<iframe src="https://ews.webkit.org/status-bubble/[% attachment.id %]/"
style="width: 0px; height: 20px; border: none;" scrolling="no" onload="handleStatusBubbleLoadNewEWS(this)">
</iframe>
</div>
[% END %]
[%# endif // WEBKIT_CHANGES %]
</td>
</tr>
[% END %]
[% END %]
<tr class="bz_attach_footer">
<td colspan="[% show_attachment_flags ? 3 : 2 %]">
[% IF attachments.size %]
<span class="bz_attach_view_hide">
[% IF obsolete_attachments %]
<a href="#a0" onclick="return toggle_display(this);">Show
Obsolete</a> ([% obsolete_attachments %])
[% END %]
[% IF Param("allow_attachment_display") %]
<a id="view_all" href="attachment.cgi?bugid=
[%- bugid %]&amp;action=viewall
[%- "&amp;hide_obsolete=1" IF obsolete_attachments %]">View All</a>
[% END %]
</span>
[% END %]
[% IF Param("maxattachmentsize") || Param("maxlocalattachment") %]
<a href="attachment.cgi?bugid=[% bugid %]&amp;action=enter">Add an attachment</a>
(proposed patch, testcase, etc.)
[% END %]
</td>
</tr>
</table>
<br>