{# # PAGE ADMIN : LES MASQUES OFFICIELS DE SLIDIA # # Ceux que tout le monde voit et que personne ne possède. Jusqu'ici ils n'existaient que par # les fixtures : en ajouter un demandait un déploiement. Cet écran leur donne le traitement # des masques personnels — déposer, renommer, supprimer. # # La grille est VISUELLE, pas tabulaire, contrairement aux autres écrans d'administration : # un masque ne se reconnaît pas à son nom mais à son allure, et c'est précisément ce qu'un # tableau ne montre pas. # # DONNÉES REQUISES (Admin\SlidiaTemplateController::list) : masques, usages. #} {% extends 'base.html.twig' %} {% block title %}Masques Slidia — Admin{% endblock %} {% block body %} {% set sdColor = tool_color_details['slidia'] %} {% set sdRgb = sdColor.primary|hex_to_rgb %}
{% include '_molecules/page-header/page-header.html.twig' with { title: 'Masques Slidia', subtitle: "Les masques officiels, proposés à tous les comptes. Déposez un .pptx pour en ajouter un.", icon: 'bubul-slidia', backHref: path('app_dashboard'), backLabel: 'Retour au dashboard' } only %} {# Jeton unique pour les trois écritures de cet écran : dépôt, renommage, suppression. #} {# ── Dépôt ──────────────────────────────────────────────────────────── #} {# ── Grille ─────────────────────────────────────────────────────────── #}
{{ masques|length }} masque{{ masques|length > 1 ? 's' : '' }} officiel{{ masques|length > 1 ? 's' : '' }}
{% if masques is empty %}

Aucun masque officiel

Tant qu'il n'y en a aucun, la création Slidia n'a rien à proposer : elle exige un masque.

{% else %}
{% for masque in masques %} {% set usage = usages[masque.id] ?? 0 %}
{% if masque.isThumbnailsReady %} Aperçu du masque {{ masque.name }} {% endif %}

{{ masque.name }}

{{ masque.layouts|length }} mise{{ masque.layouts|length > 1 ? 's' : '' }} en page {%- if usage > 0 %} · {{ usage }} présentation{{ usage > 1 ? 's' : '' }}{% endif -%}

{# Un masque encore employé n'est pas supprimable : les présentations qui s'appuient dessus perdraient leurs mises en page. Le bouton le dit avant le clic plutôt que d'échouer après. #}
{% endfor %}
{% endif %} {# ── Modales ────────────────────────────────────────────────────────── #} {% embed '_organisms/rename-modal/rename-modal.html.twig' with { title: 'Renommer le masque', subtitle: 'Ce nom est celui que verront tous les utilisateurs.', placeholder: 'Nom du masque', hint: 'Max. 20 caractères', color: sdColor, modalAttr: {'data-admin--slidia-templates-target': 'renameModal'}, inputAttr: { 'data-admin--slidia-templates-target': 'renameInput', 'data-action': 'keydown.enter->admin--slidia-templates#confirmRename keydown.escape->admin--slidia-templates#closeRename', 'maxlength': '20' }, cancelAttr: {'data-action': 'click->admin--slidia-templates#closeRename'}, confirmAttr: {'data-action': 'click->admin--slidia-templates#confirmRename'} } only %}{% endembed %} {% embed '_organisms/delete-modal/delete-modal.html.twig' with { title: 'Supprimer ce masque officiel ?', modalAttr: {'data-admin--slidia-templates-target': 'deleteModal', 'data-action': 'keydown.esc@window->admin--slidia-templates#closeDelete'}, cancelAttr: {'data-action': 'click->admin--slidia-templates#closeDelete'}, confirmAttr: {'data-action': 'click->admin--slidia-templates#confirmDelete'} } only %} {% block description %}

sera retiré de l'offre pour tous les comptes. Cette action est irréversible.

{% endblock %} {% endembed %}
{% endblock %}