{# # PAGE: SLIDIA — ÉCRAN D'ATTENTE DE LA GÉNÉRATION # # Même écran que celui de Scormia (templates/scormia/configure.html.twig, cible `loader`) : # emblème animé, titre, étape en cours, barre de progression, pourcentage, actions. # Seules changent les COULEURS (celles de Slidia, lues en base via tool_color_details) et # les ÉTAPES (celles de Slidia, définies dans assets/controllers/slidia/generate_controller.js). # # L'ancien décor — orbes flottants, cartes squelettes, chapelet de pastilles d'étapes — a # disparu : il ne disait rien de plus que la barre, occupait tout l'écran, et n'existait # nulle part ailleurs dans l'application. # # DIFFÉRENCE DE TRANSPORT AVEC SCORMIA, à ne pas gommer : Scormia SONDE une route de # statut depuis un overlay posé sur son formulaire ; Slidia lit un FLUX (SSE) sur une page # dédiée. Seul le visuel est commun. Les cibles Stimulus ci-dessous sont celles du # contrôleur Slidia, pas de celui de Scormia. # # DONNÉES REQUISES (SlidiaController::generate) : presentation, streamUrl. # L'écran ne dit plus QUE l'attente : ni pastille « 2/5 · Génération du plan », ni compte de # masques actifs. La première doublait le message du flux, plus précis qu'elle ; le second # relevait du réglage de la bibliothèque et n'appelait aucune décision à ce moment-là. #} {% extends 'base.html.twig' %} {% block title %}Génération en cours — Slidia{% endblock %} {% block meta_description %}Slidia génère votre présentation PowerPoint à partir de votre brief. Patientez quelques instants.{% endblock %} {% block og_title %}Génération en cours — Slidia{% endblock %} {% block og_description %}Slidia génère votre présentation PowerPoint à partir de votre brief.{% endblock %} {% block twitter_title %}Génération en cours — Slidia{% endblock %} {% block twitter_description %}Slidia génère votre présentation PowerPoint à partir de votre brief.{% endblock %} {# Supprime le px/py injecté par le layout de base #} {% block main_class %}p-0 overflow-hidden{% endblock %} {% block body %} {% set sdColor = tool_color_details['slidia'] %} {# `fixed inset-0 z-50` comme le loader de Scormia : l'attente occupe TOUT l'écran, barre latérale comprise. Rien d'autre n'est actionnable pendant la génération — laisser la navigation accessible inviterait à quitter la page, ce qui interrompt le flux. Le fond radial est celui de Scormia, dont il tient la sobriété : un dégradé très clair, neutre, qui laisse l'emblème coloré porter seul l'identité de l'outil. #}
{# ── Emblème animé (styles et keyframes : assets/styles/pages/slidia/generate.css) ── #}

Slidia génère votre présentation

{# Trait d'accent sous le titre, comme sur l'écran de Scormia : il sépare le titre de l'étape en cours sans la lourdeur d'un filet pleine largeur. #} {# Message RÉEL publié par le flux : plus précis que l'étape (« Rédaction : lot 2/5 »). Le titre de la présentation le précède, quand il y en a un. #}

Initialisation…

{# Barre de progression réelle + pourcentage. #}

5 %

{# ── Annuler ───────────────────────────────────────────────────────── Même geste que Scormia : une confirmation, puis retour à la bibliothèque. Ce que la modale annonce diffère en revanche, et c'est voulu — chez Slidia une génération abandonnée n'est PAS facturée (règle posée pour tout l'outil : les échecs ne sont jamais débités). Annoncer un débit qui n'a pas lieu serait un mensonge. #}
{# ── Erreur ────────────────────────────────────────────────────────── MÊME LANGAGE VISUEL QUE MOODIA (`templates/moodia/generation.html.twig`) : une carte flottante en bas d'écran, fond blanc, icône d'alerte dans un carré arrondi, titre et détail — et non plus un pavé rouge inséré dans le flux, qui poussait la page vers le bas au pire moment. Une différence assumée : Slidia offre DEUX actions là où Moodia n'en a qu'une. La reprise ne rejoue que les lots manquants, elle mérite d'être proposée avant le retour à la bibliothèque. `hidden` est une CLASSE et non l'attribut : c'est elle que `#showError()` retire. Le centrage passe donc par `mx-auto` sur la carte, jamais par un `flex` sur le conteneur — deux utilitaires de `display` sur le même élément se disputeraient la priorité selon l'ordre de la feuille de style, pas selon l'ordre des classes. #}
{% endblock %}