<!--!  Copyright (C) 2010-2023 Edgewall Software

  This software is licensed as described in the file COPYING, which
  you should have received as part of this distribution. The terms
  are also available at https://trac.edgewall.org/wiki/TracLicense.

  This software consists of voluntary contributions made by many
  individuals. For the exact contribution history, see the revision
  history and logs, available at https://trac.edgewall.org/.

Display a list of attachments.

Arguments:
 - alist: the data for the list of attachments
 - compact=False: if True, show the list in compact format (e.g. as used in the wiki view)
 - add_button_title=None: the title of the "Attach" button
 - foldable=False: if True, make the list of attachments foldable
-->
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://genshi.edgewall.org/"
      xmlns:xi="http://www.w3.org/2001/XInclude"
      xmlns:i18n="http://genshi.edgewall.org/i18n"
      py:with="compact = value_of('compact', False);
               add_button_title = value_of('add_button_title', None);
               foldable = value_of('foldable', False)" py:strip="">
  <py:def function="show_one_attachment(attachment)">
    <i18n:msg params="file, size, author, date">
      <a href="${url_of(attachment.resource)}" title="View attachment">${attachment.filename
        }</a><a href="${url_of(attachment.resource, format='raw')}"
                class="trac-rawlink" title="Download">&#8203;</a><!--!
      --> (<span title="${ngettext('%(num)d byte', '%(num)d bytes',
                                   num=attachment.size)}">${pretty_size(attachment.size)
        }</span>) - added by ${authorinfo(attachment.author)} ${pretty_dateinfo(attachment.date)}.
    </i18n:msg>
  </py:def>
  <py:if test="alist.attachments or alist.can_create">
    <div id="attachments" py:choose="">
      <py:when test="compact and alist.attachments">
        <h3 class="${'foldable' if foldable else None}">Attachments <span class="trac-count">(${len(alist.attachments)})</span></h3>
        <div>
          <ul>
            <li py:for="attachment in alist.attachments">
              ${show_one_attachment(attachment)}
              <q py:if="compact and attachment.description">${wiki_to_oneliner(context, attachment.description)}</q>
            </li>
          </ul>
          <p py:if="alist.download_href">
            Download all attachments as: <a rel="nofollow" href="$alist.download_href">.zip</a>
          </p>
        </div>
      </py:when>
      <py:when test="not compact">
        <h3 class="${'foldable' if foldable else None}">Attachments <span class="trac-count">(${len(alist.attachments)})</span></h3>
        <div py:if="alist.attachments or alist.can_create" class="attachments">
          <dl py:if="alist.attachments" class="attachments">
            <py:for each="attachment in alist.attachments">
              <dt>${show_one_attachment(attachment)}</dt>
              <dd py:if="attachment.description">
                ${wiki_to_oneliner(context, attachment.description)}
              </dd>
            </py:for>
          </dl>
          <p py:if="alist.attachments and alist.download_href">
            Download all attachments as: <a rel="nofollow" href="$alist.download_href">.zip</a>
          </p>
          <xi:include href="attach_file_form.html"/>
        </div>
      </py:when>
    </div>
  </py:if>
</html>
