From 83608fffcfe730b45098c1e67a8f02294f612e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Fri, 6 Mar 2026 22:28:42 +0100 Subject: [PATCH] Do not scroll up the sidebar when clicking on a treeview --- assets/controllers/elements/sidebar_tree_controller.js | 2 ++ assets/controllers/elements/tree_controller.js | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/assets/controllers/elements/sidebar_tree_controller.js b/assets/controllers/elements/sidebar_tree_controller.js index d50cf900..c80de6ed 100644 --- a/assets/controllers/elements/sidebar_tree_controller.js +++ b/assets/controllers/elements/sidebar_tree_controller.js @@ -40,6 +40,8 @@ export default class extends TreeController { //Check if we have a saved mode const stored_mode = localStorage.getItem(this._storage_key); + this._frame = this.element.dataset.frame || "content"; //By default, navigate in the content frame, if a frame is defined + //Use stored mode if possible, otherwise use default if(stored_mode) { try { diff --git a/assets/controllers/elements/tree_controller.js b/assets/controllers/elements/tree_controller.js index bb64839c..28957e2a 100644 --- a/assets/controllers/elements/tree_controller.js +++ b/assets/controllers/elements/tree_controller.js @@ -39,6 +39,8 @@ export default class extends Controller { */ _tree = null; + _frame = "frame"; + connect() { const treeElement = this.treeTarget; if (!treeElement) { @@ -48,6 +50,7 @@ export default class extends Controller { this._url = this.element.dataset.treeUrl; this._data = this.element.dataset.treeData; + this._frame = this.element.dataset.frame || "content"; //By default, navigate in the content frame, if a frame is defined if(this.element.dataset.treeShowTags === "true") { this._showTags = true; @@ -99,7 +102,7 @@ export default class extends Controller { onNodeSelected: (event) => { const node = event.detail.node; if (node.href) { - window.Turbo.visit(node.href, {action: "advance"}); + window.Turbo.visit(node.href, {action: "advance", frame: this._frame}); this._registerURLWatcher(node); } }, @@ -198,4 +201,4 @@ export default class extends Controller { return myResolve(this._data); }); } -} \ No newline at end of file +}