Corrige la modale "Utiliser un modèle" : aucune sélection par défaut, aperçu plein espace, navigation entre pages
Trois retours distincts : - Plus de présélection du thème déjà appliqué à l'ouverture — un choix toujours explicite de l'utilisateur. - L'état vide (.docTemplatePreviewEmpty) restait visible EN MÊME TEMPS que l'iframe une fois un thème sélectionné : `display:flex` posé directement dessus battait le `display:none` natif de [hidden] (même bug déjà rencontré pour .docSidebarTabPanel[hidden] plus tôt dans le projet) — les deux se partageaient flex:1, coupant l'aperçu en deux au lieu de lui laisser tout l'espace. - L'aperçu ne montrait que la première page du modèle sans aucun moyen d'en voir les autres : la route /document/<slug>/theme/<id>/preview rend désormais TOUTES les pages, une barre Précédent/Suivant (entièrement côté client, aucun aller-retour serveur supplémentaire) permet de naviguer entre elles. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
bd8f1d4b1e
commit
7730b3688f
@@ -8,16 +8,23 @@ from core.flask_app import app
|
||||
@app.route("/document/<slug>/theme/<theme_id>/preview")
|
||||
def document_theme_preview(slug: str, theme_id: str) -> str:
|
||||
"""Aperçu isolé (destiné à un <iframe>, voir la modale "Utiliser un
|
||||
modèle" dans static/document/js/document-editor.js) de la première
|
||||
page de démonstration d'un thème — RÉELLEMENT rendue par le moteur
|
||||
modèle" dans static/document/js/document-editor.js) de TOUTES les
|
||||
pages de démonstration d'un thème — RÉELLEMENT rendues par le moteur
|
||||
(document_engine.render_document), jamais une image statique ou une
|
||||
resucée manuelle du CSS : ce qui est prévisualisé est EXACTEMENT ce
|
||||
qui s'affichera une fois le thème appliqué. `slug` sert uniquement à
|
||||
la garde de propriété (core/auth_guard.py, générique sur toute route
|
||||
<slug>) — l'aperçu ne dépend d'aucune donnée de CE support."""
|
||||
qui s'affichera une fois le thème appliqué. La navigation entre pages
|
||||
(retour utilisateur du 24/09/2026 : "je dois pouvoir naviguer dans
|
||||
l'aperçu pour voir toutes les pages") se fait entièrement côté
|
||||
client dans le template, jamais par un nouvel aller-retour serveur —
|
||||
toutes les pages sont déjà rendues ici en une fois. `slug` sert
|
||||
uniquement à la garde de propriété (core/auth_guard.py, générique
|
||||
sur toute route <slug>) — l'aperçu ne dépend d'aucune donnée de CE
|
||||
support."""
|
||||
theme = document_engine.get_document_theme_entry(theme_id)
|
||||
if theme is None:
|
||||
raise NotFound
|
||||
elements = document_engine.seed_blocks_to_elements(theme["seed_pages"][0])
|
||||
rendered_page = document_engine.render_document(elements)
|
||||
return render_template("document/document_theme_preview.html", theme=theme, rendered_page=rendered_page)
|
||||
rendered_pages = [
|
||||
document_engine.render_document(document_engine.seed_blocks_to_elements(page_blocks))
|
||||
for page_blocks in theme["seed_pages"]
|
||||
]
|
||||
return render_template("document/document_theme_preview.html", theme=theme, rendered_pages=rendered_pages)
|
||||
|
||||
Reference in New Issue
Block a user