diff --git a/app/templates/local_workspace.html b/app/templates/local_workspace.html
index 46b45bc..77a3cb8 100644
--- a/app/templates/local_workspace.html
+++ b/app/templates/local_workspace.html
@@ -746,16 +746,19 @@ window._wsInitData = (function() {
onContextMenu(ev) {
console.log('onContextMenu fired', ev.clientX, ev.clientY);
var el = ev.target.closest('[data-ws-id]');
- if (!el) { this.ctxMenu.visible = false; return; }
+ if (!el) { this.ctxMenu = {visible:false,x:0,y:0,node:null,tags:[]}; return; }
var id = parseInt(el.getAttribute('data-ws-id'));
- if (!id) { this.ctxMenu.visible = false; return; }
+ if (!id) { this.ctxMenu = {visible:false,x:0,y:0,node:null,tags:[]}; return; }
var node = this._findNodeById(this.displayTree, id);
- if (!node) { this.ctxMenu.visible = false; return; }
- this.ctxMenu.visible = true;
- this.ctxMenu.x = ev.clientX;
- this.ctxMenu.y = ev.clientY;
- this.ctxMenu.node = node;
- this.ctxMenu.tags = [...(node.tags||[])];
+ if (!node) { this.ctxMenu = {visible:false,x:0,y:0,node:null,tags:[]}; return; }
+ // Reassign whole object for Alpine reactivity
+ this.ctxMenu = {
+ visible: true,
+ x: ev.clientX,
+ y: ev.clientY,
+ node: node,
+ tags: [...(node.tags||[])]
+ };
this.ctxTagAdding = false;
this.ctxTagExistingOpen = false;
this.ctxNewTagColor = '#787774';
@@ -775,8 +778,8 @@ window._wsInitData = (function() {
if (y + rect.height > window.innerHeight - 4) y = window.innerHeight - rect.height - 4;
if (x < 4) x = 4;
if (y < 4) y = 4;
- self.ctxMenu.x = x;
- self.ctxMenu.y = y;
+ // Reassign for reactivity
+ self.ctxMenu = {visible:true, x:x, y:y, node:self.ctxMenu.node, tags:self.ctxMenu.tags};
});
},
@@ -826,24 +829,24 @@ window._wsInitData = (function() {
ctxMenuOpenPage() {
if (this.ctxMenu.node) this.openPage(this.ctxMenu.node.id);
- this.ctxMenu.visible = false;
+ this.ctxMenu = {visible:false,x:0,y:0,node:null,tags:[]};
},
ctxMenuOpenFolder() {
if (this.ctxMenu.node) this.navigateToFolder(this.ctxMenu.node.id);
- this.ctxMenu.visible = false;
+ this.ctxMenu = {visible:false,x:0,y:0,node:null,tags:[]};
},
ctxMenuRename() {
- if (this.ctxMenu.node) { this.startRename(this.ctxMenu.node); this.ctxMenu.visible = false; }
+ if (this.ctxMenu.node) { this.startRename(this.ctxMenu.node); this.ctxMenu = {visible:false,x:0,y:0,node:null,tags:[]}; }
},
ctxMenuDuplicate() {
- if (this.ctxMenu.node) { this.duplicateItem(this.ctxMenu.node); this.ctxMenu.visible = false; }
+ if (this.ctxMenu.node) { this.duplicateItem(this.ctxMenu.node); this.ctxMenu = {visible:false,x:0,y:0,node:null,tags:[]}; }
},
ctxMenuDelete() {
- if (this.ctxMenu.node) { this.deleteWithUndo(this.ctxMenu.node); this.ctxMenu.visible = false; }
+ if (this.ctxMenu.node) { this.deleteWithUndo(this.ctxMenu.node); this.ctxMenu = {visible:false,x:0,y:0,node:null,tags:[]}; }
},
ctxRemoveTag(tagId) {