fix: @contextmenu.prevent remis (avait été perdu lors du revert)
FlowDeck CI / test (push) Failing after 3s
FlowDeck CI / docker (push) Has been skipped

- Erreur critique: @contextmenu.prevent="onContextMenu" manquait
  → le handler n'était JAMAIS appelé par Alpine
- Rajouté @contextmenu.prevent sur ws-split (entre @keydown et @click.self)
- ctxMenu utilise mutations individuelles (pas de remplacement d'objet)
  pour une meilleure réactivité Alpine
- @click.self conserve la fermeture en cliquant sur le fond du workspace
This commit is contained in:
2026-07-12 18:01:36 -04:00
parent 4dc9ff29b8
commit 40a5d4edeb
2 changed files with 7 additions and 8 deletions
+1 -1
View File
@@ -39,7 +39,7 @@ async def lifespan(_app: FastAPI):
app = FastAPI(
title="FlowDeck",
version="2.4.3",
version="2.4.4",
docs_url="/docs" if settings.log_level == "DEBUG" else None,
redoc_url=None,
lifespan=lifespan,
+6 -7
View File
@@ -341,6 +341,7 @@
@dragleave="onDragLeave($event)"
@drop.prevent="onDrop($event)"
@keydown="onKeydown($event)"
@contextmenu.prevent="onContextMenu($event)"
@click.self="ctxMenu.visible = false"
tabindex="0"
x-ref="layout">
@@ -1267,13 +1268,11 @@ document.addEventListener('alpine:init', function() {
if (!id) { this.ctxMenu.visible = false; return; }
var node = this._findNodeById(this.displayTree, id);
if (!node) { this.ctxMenu.visible = false; return; }
this.ctxMenu = {
visible: true,
x: ev.clientX,
y: ev.clientY,
node: node,
tags: [...(node.tags||[])]
};
this.ctxMenu.visible = true;
this.ctxMenu.x = ev.clientX;
this.ctxMenu.y = ev.clientY;
this.ctxMenu.node = node;
this.ctxMenu.tags = [...(node.tags||[])];
this.ctxTagAdding = false;
this.ctxTagExistingOpen = false;
this.ctxNewTagColor = '#787774';