From aa2db0103d2b97edd20cf47fe29dd74c4b0a50f3 Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Thu, 3 Sep 2026 01:09:31 -0400 Subject: [PATCH] fix(editor): v4.7.1 popovers Share/More/Activity/Move rendus sous le viewport + sous-menu Export inatteignable - share-dialog/more-menu/activity-popover/move-dialog: enfants de .page-editor-wrapper (overflow-y:auto) ancores en absolute top:100% -> invisibles sous le viewport. Repositionnes en fixed sous la topbar, scope .page-editor-wrapper > (pas de regression sur .more-menu de library/local_workspace) + variante mobile <768px. - Item Export du menu More faisait moreOpen=false avant d'ouvrir exportOpen: les 4 formats etaient inaccessibles. Devient un toggle, le menu reste ouvert. - Cache busting app.css v=4.7.1; VERSION/main.py bump 4.7.1; CHANGELOG+ROADMAP a jour. - Verifie Playwright headless: Share/More/Export/download Markdown/toast OK, 0 pageerror; 190/190 tests. --- CHANGELOG.md | 11 +++++++++ ROADMAP.md | 8 ++++++- VERSION | 2 +- app/main.py | 4 ++-- app/templates/_page_editor_content.html | 2 +- app/templates/base.html | 2 +- static/css/app.css | 31 +++++++++++++++++++++++++ uv.lock | 3 +++ 8 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 uv.lock diff --git a/CHANGELOG.md b/CHANGELOG.md index a5d1c7a..2faf326 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog — FlowDeck +## v4.7.1 (2026-09-03) — Fix UI éditeur : menus Share / More invisibles + +### Fixed +- **Boutons « Share » et « ⋯ » (More) sans réaction visible dans l'éditeur de page** — les popovers (share-dialog, more-menu, activity-popover, move-dialog), enfants de `.page-editor-wrapper` (conteneur à `overflow-y:auto`), étaient ancrés en `absolute; top:100%` → rendus SOUS le viewport, donc invisibles. Repositionnés en `position:fixed` sous la topbar (scoped `.page-editor-wrapper > …` pour ne pas casser les `.more-menu` des pages library/local_workspace) + variantes mobile dans le media query < 768px. +- **Sous-menu Export se refermait** — l'itém « ↗ Export » faisait `moreOpen=false` avant d'ouvrir `exportOpen` : les 4 formats restaient inaccessibles au clic. Devient un toggle (`exportOpen = !exportOpen`), le menu More reste ouvert. +- **Cache CSS** — version du query string `app.css` bumpée (`v=3.0.0` → `v=4.7.1`) pour invalider le cache navigateur. + +### Vérifié +- Playwright headless (desktop 1280×800) : Share, More, sous-menu Export, popover Activity et menu More après scroll = tous visibles dans le viewport ; téléchargement Markdown + toast « Exported as Markdown » OK ; zéro pageerror. +- 190/190 tests pytest passent. + ## v4.7.0 (2026-09-03) — Export ### Added diff --git a/ROADMAP.md b/ROADMAP.md index d026855..7271a40 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -285,6 +285,12 @@ Détails livrés : - PDF généré via `xhtml2pdf` (pip) — aucun lib système requise - 6 nouveaux tests (Markdown, sous-pages, HTML, PDF, Site, 404) +### v4.7.1 — Fix UI Export / Share / More ✅ (2026-09-03) +- [x] **Share / More / Activity / Move-to popovers** — rendus sous le viewport (absolute + parent scrollable) → repositionnés fixed sous la topbar +- [x] **Sous-menu Export** — l'itém Export fermait le menu More ; devient un toggle, formats accessibles +- [x] **Cache CSS** — query string app.css bumpé v4.7.1 +- [x] Vérifié Playwright headless + 190/190 tests + ### v4.8.0 — Collaboration - [ ] **Inline comments** — commentaires sur sélection de texte - [ ] **@mentions** — notifier un utilisateur → page/commentaire @@ -437,4 +443,4 @@ v4.0.2 ✅ v4.1.0 ✅ v4.2.0 ✅ v4.3.0 ✅ v4.4.0 ✅ v4.5.0 ✅ Quality Data Sources Templates + 10 Views Tasks & Sprints & Content Export Collab + Pro + Agent & Tests & Linked DB Dashboards complets Dependencies My Tasks Blocks MD/PDF/HTML Agent IA (futur) -*Dernière mise à jour: 2026-09-03 — v4.7.0 Export complété ✅* +*Dernière mise à jour: 2026-09-03 — v4.7.1 Fix UI Share/More/Export ✅* diff --git a/VERSION b/VERSION index 1163055..cfacfe4 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.7.0 \ No newline at end of file +4.7.1 \ No newline at end of file diff --git a/app/main.py b/app/main.py index b6c2d4f..1388457 100644 --- a/app/main.py +++ b/app/main.py @@ -39,13 +39,13 @@ async def lifespan(_app: FastAPI): (admin_hash,) ) conn.commit() - logger.info("FlowDeck v4.7.0 started on port %d", settings.app_port) + logger.info("FlowDeck v4.7.1 started on port %d", settings.app_port) yield app = FastAPI( title="FlowDeck", - version="4.7.0", + version="4.7.1", docs_url="/docs" if settings.log_level == "DEBUG" else None, redoc_url=None, lifespan=lifespan, diff --git a/app/templates/_page_editor_content.html b/app/templates/_page_editor_content.html index ae804fd..16b0ff6 100644 --- a/app/templates/_page_editor_content.html +++ b/app/templates/_page_editor_content.html @@ -345,7 +345,7 @@ @click.outside="!_justOpened && (moreOpen = false)" x-transition > -
↗ Export
+
↗ Export ▾