[%# 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): Myk Melez <myk@mozilla.org>
  #                 Frédéric Buclin <LpSolit@gmail.com>
  #%]

<script type="text/javascript">
<!--
function toggle_display(link)
{
    var table = document.getElementById("attachment_table");
    // Store current height for scrolling later
    var originalHeight = table.offsetHeight;

    var r0;
    var rs = table.tBodies[0];
    rs = rs.rows || rs.tRows;
    for (var i = 0; i < rs.length; i++)
        if (hasClass(rs[i], 'bz_tr_obsolete'))
            r0 = toggleClass(rs[i], 'bz_default_hidden');
    link.innerHTML = r0 ? 'Show Obsolete' : 'Hide Obsolete';

    var newHeight = table.offsetHeight;
    // This scrolling makes the window appear to not move at all.
    window.scrollBy(0, newHeight - originalHeight);

    return false;
}

function to_attachment_page(link)
{
    var form = document.createElement('form');
    form.action = link.href;
    form.method = 'post';
    var textarea = document.createElement('textarea');
    textarea.name = "comment";
    textarea.value = document.getElementById('comment_textarea').value;
    form.appendChild(textarea);
    document.body.appendChild(form);
    form.submit();
    return false;
}
//-->
</script>

<table id="attachment_table" cellspacing="0" cellpadding="4">
  <tr>
    <th colspan="[% show_attachment_flags ? 3 : 2 %]" align="left">
      [% count = 0 %]
      [% FOREACH attachment = attachments %][% count = count + 1 %][% END %]
      <a name="a0" id="a0" href="#a0">Attachments</a>
      [% IF count > 0 %] (<a href="attachment.cgi?bugid=[% bugid %]&amp;action=zip" target="_blank">Download all in ZIP</a>)[% END %]
    </th>
  </tr>

  [% count = 0 %]
  [% obsolete_attachments = 0 %]

  [% 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 class="[% "bz_contenttype_" _ attachment.contenttype | css_class_quote %]
                 [% " bz_patch" IF attachment.ispatch %]
                 [% " bz_private" IF attachment.isprivate %]
                 [% " bz_tr_obsolete bz_default_hidden" IF attachment.isobsolete %]">
        <td valign="top">
          [% IF attachment.datasize %]
            <a name="a[% count %]" href="attachment.cgi?id=[% attachment.id %]"
               title="View the content of the attachment">
          [% END %]
          <b>[% attachment.id %]: [% 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 %]</a>,

            [% INCLUDE global/user.html.tmpl who = attachment.attacher %]
          </span>
        </td>

        [% IF show_attachment_flags %]
          <td class="bz_attach_flags" valign="top">
            [% IF attachment.flags.size == 0 %]
              <i>no flags</i>
            [% ELSE %]
              [% FOREACH flag = attachment.flags %]
                [% flag.setter.nick FILTER html %]:
                [%+ flag.type.name FILTER html FILTER no_break %][% flag.status %]
                [%+ IF flag.status == "?" && flag.requestee %]
                  ([% flag.requestee.nick FILTER html %])
                [% END %]<br>
              [% END %]
            [% END %]
          </td>
        [% END %]

        <td valign="top">
          <a href="attachment.cgi?id=[% attachment.id %]&amp;action=edit">Details</a>
          
          [% IF attachment.isOfficeDocument() == 1 %]
            | <a href="attachment.cgi?id=[% attachment.id %]&amp;action=online_view" target="_blank">Online-view</a>
          [% END %]
          
          [% IF attachment.ispatch && feature_enabled('patch_viewer') %]
            | <a href="attachment.cgi?id=[% attachment.id %]&amp;action=diff">Diff</a>
          [% END %]
          [% Hook.process("action") %]
        </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 href="attachment.cgi?bugid=[% bugid %]&amp;action=viewall">View All</a>
          [% END %]
        </span>
      [% END %]
      <a href="attachment.cgi?bugid=[% bugid %]&amp;action=enter" onclick="return to_attachment_page(this);">Add an attachment</a>
      <span id="att_multi_link">| <a href="javascript:void(0)" onclick="document.getElementById('att_multi_link').style.display='none';iframeajax('page.cgi?id=attach-multiple.html', {'bug_id' : [% bugid %]})">Add multiple</a></span>
      (proposed patch, testcase, etc.)
    </td>
  </tr>
</table>

<div id="att_multiple" style="display: none"></div>
