The shared toolbar gains the concept's Save view between sort and Filters
on Images and the Prompt library. It opens the concept's simpleInput
("Save this view", "View name", default "Search: <q>" or "My workspace
view", Cancel / Save); an empty name is "Saved view". A save posts the
page's full whitelisted state (toolbar value plus Refine filters) and
toasts "Saved view added to the sidebar.".
The shell adds the concept's SAVED VIEWS label and nav#saved-nav, loaded
with the shell and re-read after every save. Rows use the concept's
links() markup (search icon, name, no count) and link #/saved/<id>.
Opening one mounts its page with the saved state through the page's own
filters, so the toolbar and "Filters · N" (D44) show it; the h1,
breadcrumb and title are the view's name. A removed Source or Folder is
dropped to its default after discovery, so no listing read is rejected;
an unknown id re-reads the list once, then opens Images; a failed list
read offers Retry.
D16 is retired: images-concept and library-concept no longer map Save
view out. New deviations: D49 (no PROPOSED badge) and D50 (no Needs
review row); shell-concept maps Favorites out until Task 3 and compares
a saved row against the concept's. Browser fixtures now wipe
saved_views.
50 lines
2.7 KiB
HTML
50 lines
2.7 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="color-scheme" content="light dark">
|
|
<title>Prompt Manager · Workspace</title>
|
|
<link rel="stylesheet" href="js/shared/toolkit/controls.css">
|
|
<link rel="stylesheet" href="lib/viewerjs/viewer.min.css">
|
|
<link rel="stylesheet" href="js/workspace/concept.css">
|
|
<link rel="stylesheet" href="js/workspace/workspace.css">
|
|
<script src="lib/viewerjs/viewer.min.js" defer></script>
|
|
<script src="js/comfy-metadata.js" defer></script>
|
|
<script src="js/gallery-settings.js" defer></script>
|
|
<script type="module" src="js/workspace/index.mjs"></script>
|
|
</head>
|
|
<body class="ca-tools">
|
|
<a class="skip" href="#workspace-main">Skip to workspace</a>
|
|
<div class="app-shell">
|
|
<aside class="sidebar">
|
|
<a class="brand" href="#/images"><span class="brand-mark">P<span>±</span></span><span>Prompt Manager<small>COMFYASSETS</small></span></a>
|
|
<div class="sidebar-label">WORKSPACE</div>
|
|
<nav id="primary-nav" aria-label="Workspace"></nav>
|
|
<!-- D49: the concept's SAVED VIEWS group without its "PROPOSED" badge (saved views are persisted, #249 D16). -->
|
|
<div class="sidebar-label">SAVED VIEWS</div>
|
|
<nav id="saved-nav" aria-label="Saved views"></nav>
|
|
<div class="sidebar-bottom">
|
|
<nav id="system-nav" aria-label="Tools and system"></nav>
|
|
<div class="connection"><i></i><div>ComfyUI workspace<small>Your library, on your server</small></div></div>
|
|
</div>
|
|
</aside>
|
|
<div class="workspace">
|
|
<header class="topbar">
|
|
<div class="breadcrumbs">ComfyAssets <span>/</span> <span id="workspace-breadcrumb">Images</span></div>
|
|
<div class="top-actions"><label class="theme-label" for="theme">Theme
|
|
<select id="theme" aria-label="Theme">
|
|
<option value="dark">Dark</option>
|
|
<option value="light">Light</option>
|
|
<option value="system" selected>System</option>
|
|
</select></label><a class="canvas-link" href="../">ComfyUI <span aria-hidden="true">↗</span></a></div>
|
|
</header>
|
|
<main id="workspace-main" tabindex="-1"></main>
|
|
<footer class="app-footer"><span>ComfyAssets · Local tools. Your library.</span></footer>
|
|
</div>
|
|
</div>
|
|
<div id="workspace-toast" class="toast" role="status" aria-live="polite" aria-atomic="true"></div>
|
|
<noscript><p>This workspace needs JavaScript. <a href="admin">Open the existing dashboard</a>.</p></noscript>
|
|
</body>
|
|
</html>
|