/** * Shared helpers for the opt-in Workflow management feature. * * Used by the disabled page so that enabling the feature goes through the same * settings API call as the Settings modal toggle. */ /** * Turn on Workflow management and reload so the server-rendered nav and the * scanner state pick up the change. */ export async function enableWorkflows() { const response = await fetch('/api/lm/settings', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ enable_workflows: true }), }); const data = await response.json().catch(() => ({})); if (!response.ok || data.success === false) { throw new Error(data.error || `HTTP ${response.status}`); } window.location.reload(); } /** * Open the settings modal on the Library section and scroll the Workflows * toggle into view. */ export function openWorkflowsSettings() { const modalManager = window.modalManager; if (modalManager && typeof modalManager.showModal === 'function') { modalManager.showModal('settingsModal'); } window.setTimeout(() => { document.querySelectorAll('.settings-section').forEach((section) => { section.classList.remove('active'); }); document.getElementById('section-library')?.classList.add('active'); document.querySelectorAll('.settings-nav-item').forEach((item) => { item.classList.remove('active'); }); document.querySelector('.settings-nav-item[data-section="library"]')?.classList.add('active'); document.getElementById('enableWorkflows')?.scrollIntoView({ behavior: 'smooth', block: 'center', }); }, 100); } /** * Open the settings modal on the standalone-only Model Paths section, where * primary folder_paths are edited. The section only exists in standalone mode, * so the nav item lookup simply no-ops elsewhere. */ export function openModelPathsSettings() { const modalManager = window.modalManager; if (modalManager && typeof modalManager.showModal === 'function') { modalManager.showModal('settingsModal'); } window.setTimeout(() => { document.querySelector('.settings-nav-item[data-section="modelPaths"]')?.click(); }, 100); }