Fix plugin modal paths to use absolute URLs instead of relative paths

Change all plugin modal path references from relative (`../plugins/`) to absolute (`/plugins/`) URLs for consistency and to avoid path resolution issues across different webui components.

frdel committed Mar 10, 2026 at 22:27 UTC 5e7253282c4d66810ff4c0df842ee450b5f0bf4e
5 files changed +6 -6
plugins/_memory/extensions/webui/sidebar-quick-actions-dropdown-start/memory-entry.html
+1 -1
@@ -5,7 +5,7 @@
5 class="dropdown-item"
6 id="memory-dash-dropdown"
7 title="Memory"
8 - @click="openModal('../plugins/_memory/webui/memory-dashboard.html'); dropdownOpen = false">
8 + @click="openModal('/plugins/_memory/webui/memory-dashboard.html'); dropdownOpen = false">
9 <span class="material-symbols-outlined">psychology</span>
10 <span>Memory</span>
11 </button>
plugins/_memory/extensions/webui/sidebar-quick-actions-main-start/memory-entry.html
+1 -1
@@ -1,6 +1,6 @@
1 <!-- Memory -->
2 <div x-data>
3 - <button x-move-after=".config-button#dashboard" class="config-button" id="memory-dash" @click="openModal('../plugins/_memory/webui/memory-dashboard.html')"
3 + <button x-move-after=".config-button#dashboard" class="config-button" id="memory-dash" @click="openModal('/plugins/_memory/webui/memory-dashboard.html')"
4 title="Memory">
5 <span class="material-symbols-outlined">psychology</span>
6 </button>
plugins/_memory/webui/memory-dashboard-store.js
+2 -2
@@ -54,7 +54,7 @@ const memoryDashboardStore = {
54 pollingEnabled: false,
55
56 async openModal() {
57 - await openModal("../plugins/_memory/webui/memory-dashboard.html");
57 + await openModal("/plugins/_memory/webui/memory-dashboard.html");
58 },
59
60 init() {
@@ -449,7 +449,7 @@ ${memory.content_full}
449 this.editMode = false;
450 this.editMemoryBackup = null;
451 // Use global modal system
452 - openModal("../plugins/_memory/webui/memory-detail-modal.html");
452 + openModal("/plugins/_memory/webui/memory-detail-modal.html");
453 },
454
455 closeMemoryDetails() {
plugins/_plugin_installer/extensions/webui/plugins-list-header-buttons/install-buttons.html
+1 -1
@@ -5,7 +5,7 @@
5
6 <button type="button"
7 class="button confirm"
8 - @click="openModal('../plugins/_plugin_installer/webui/main.html')">
8 + @click="openModal('/plugins/_plugin_installer/webui/main.html')">
9 <span class="icon material-symbols-outlined">add</span> Install
10 </button>
11 </span>
webui/components/welcome/welcome-store.js
+1 -1
@@ -1,7 +1,7 @@
1 import { createStore } from "/js/AlpineStore.js";
2 import { getContext } from "/index.js";
3 import { store as chatsStore } from "/components/sidebar/chats/chats-store.js";
4 -import { store as memoryStore } from "../../../plugins/_memory/webui/memory-dashboard-store.js";
4 +import { store as memoryStore } from "/plugins/_memory/webui/memory-dashboard-store.js";
5 import { store as projectsStore } from "/components/projects/projects-store.js";
6 import { store as chatInputStore } from "/components/chat/input/input-store.js";
7 import * as API from "/js/api.js";