{# The table, its pagination and its empty states. Rendered on its own when the list updates live, and included by list.html otherwise, so both paths render exactly the same markup from exactly the same context. A separate "partial" template is how the two quietly drift apart. #} {% if page.items %}
{% if actions %} {% endif %} {% for column in columns %} {% endfor %} {% for row in rows %} {# The whole row opens the record, not only the pencil. Hunting for a 16px target to open a row people have already pointed at is a step with no purpose. The linked cell is still a real link, so middle click, Ctrl+click and the keyboard all still work -- this only adds a shortcut for the plain click that lands anywhere else. #} {% if actions %} {% endif %} {% for cell in row.cells %} {% endfor %} {% endfor %}
{% if column.sort_url %} {{ column.label }} {% else %} {{ column.label }} {% endif %} {{ _("Actions") }}
{% if cell.boolean %} {{ cell.value|ff_bool }} {% elif cell.url %} {{ cell.value|ff_display }} {% else %} {{ cell.value|ff_display }} {% endif %} {# Icon buttons, always drawn. Text links revealed on hover meant the actions were invisible until the mouse found them, and invisible altogether on a touch screen. #}
{{ ff_icon("edit", size=15) }} {{ _("Edit {name}", name=row.label) }} {# `data-ff-method="post"` makes the confirmed answer delete the row, rather than following the link to the confirmation page and asking a second time. Without script the link is what it has always been: a GET to that page. #} {{ ff_icon("trash", size=15) }} {{ _("Delete {name}", name=row.label) }}
{% else %}
{% if query.search or query.filters %}
{{ _("Nothing matched") }}

{{ _("Nothing matches the current search and filters.") }}

{{ ff_icon("filter-off", size=15) }} {{ _("Clear search and filters") }} {% else %}
{{ _("Nothing here yet") }}

{{ _("Nothing has been added to {name} yet.", name=model_title|lower) }}

{% if add_url %} {{ ff_icon("plus", size=15) }} {{ _("Add the first {name}", name=model_singular|lower) }} {% endif %} {% endif %}
{% endif %}