From c883d695e9713a8a5d258d1df213973ffd6fd552 Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Sat, 10 Jan 2026 13:51:08 -0600 Subject: [PATCH] checkpoint --- index.html | 92 ------------------------------------------------------ 1 file changed, 92 deletions(-) diff --git a/index.html b/index.html index f454ee56..8b9900a5 100644 --- a/index.html +++ b/index.html @@ -1196,98 +1196,6 @@ } }; - // API service - Updated to use xattrs for runtime configuration - const API = { - async request(url, options = {}) { - try { - const response = await fetch(url, { - headers: { - 'Content-Type': 'application/json', - ...options.headers - }, - ...options - }); - - if (!response.ok) { - const errorData = await response.json().catch(() => ({})); - throw new Error(errorData.message || `HTTP ${response.status}: ${response.statusText}`); - } - - return await response.json(); - } catch (error) { - console.error('API request failed:', error); - showToast(error.message || 'Request failed', 'error'); - throw error; - } - }, - - async getMounts() { - const data = await this.request('/mounts/mergerfs'); - AppState.mounts = data; - return data; - }, - - async getAllMounts() { - return await this.request('/mounts'); - }, - - async getBranches(mount) { - const response = await fetch(`/kvs/branches?mount=${encodeURIComponent(mount)}`); - if (!response.ok) { - const errorData = await response.json().catch(() => ({})); - throw new Error(errorData.message || `HTTP ${response.status}: ${response.statusText}`); - } - return await response.text(); - }, - - async getConfig(mount) { - const data = await this.request(`/kvs?mount=${encodeURIComponent(mount)}`); - return data; - }, - - async setConfig(mount, key, value) { - return await this.request(`/kvs/${encodeURIComponent(key)}?mount=${encodeURIComponent(mount)}`, { - method: 'POST', - body: JSON.stringify(value) - }); - }, - - async setBranches(mount, branches) { - return await this.request(`/kvs/branches?mount=${encodeURIComponent(mount)}`, { - method: 'POST', - body: JSON.stringify(branches) - }); - }, - - // Runtime xattr operations - async setXattr(mount, key, value) { - // Use the .mergerfs pseudo file for runtime configuration - const xattrKey = `user.mergerfs.${key}`; - return await this.request(`/${encodeURIComponent(mount)}/.mergerfs`, { - method: 'POST', - headers: { - 'X-Attr-Key': xattrKey, - 'Content-Type': 'text/plain' - }, - body: value - }); - }, - - async getXattr(mount, key) { - const xattrKey = `user.mergerfs.${key}`; - return await this.request(`/${encodeURIComponent(mount)}/.mergerfs?xattr=${encodeURIComponent(xattrKey)}`); - }, - - async executeCommand(mount, command) { - return await this.setXattr(mount, `cmd.${command}`, ''); - }, - - async getFileInfo(mount, filePath, infoType) { - const xattrKey = `user.mergerfs.${infoType}`; - return await this.request(`/${encodeURIComponent(mount)}${filePath}?xattr=${encodeURIComponent(xattrKey)}`); - } - }; - // UI Components const UI = { showLoading(element) {