{% set header_actions %} {{ _("Done") }} {% endset %} {% call page_header(_("Add photos to %(album)s", album=album.name), actions=header_actions) %} {# The album's running total. Adding keeps you on this screen, so this count (and the photos leaving the grid) is the feedback that they landed. #} {{ _("%(count)s in this album", count=album_count | format_integer) }} {{ _("Filter the library, then pick the photos to add. Photos already in the album are not shown.") }} {% endcall %} {% if added_count %}

{{ ngettext("%(count)s photo added.", "%(count)s photos added.", added_count, count=added_count) }}

{% endif %} {% if media_items %} {# "Select all" here is every photo MATCHING THE FILTERS — including the ones on pages not rendered — which is why the count is the match total, not the page size. The scope is posted; the ids are not enumerated. #} {% call selection_bar('add-selection', selection, _('Select all %(count)s matching', count=match_count | format_integer)) %} {% endcall %} {# Always selecting: the screen exists to select. #}
{% for media_item in media_items %}
{% if media_item.media_type == 'video' %} {{ _('Video from %(date)s', date=media_item.date_taken | format_date('date')) }} {% else %} {{ _('Photo from %(date)s', date=media_item.date_taken | format_date('date')) }} {% endif %}
{{ media_item.date_taken | format_date("date") if media_item.date_taken else _("Unknown date") }}
{% endfor %}
{{ render_pagination( pagination.current_page, pagination.total_items, pagination.page_size, pagination.page_sizes, url_for('albums_add', album_id=album.id), page_params ) }} {% else %}
{% if album_count %} {# Members are filtered out of the results, so "nothing here" usually means everything matching is already in — say so, rather than implying the library is empty. #}

{{ _("Nothing left to add") }}

{{ _("Every photo matching these filters is already in this album. Adjust the filters to find more.") }}

{% else %}

{{ _("No photos found") }}

{{ _("Try adjusting your filters.") }}

{% endif %}
{% endif %}