You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Related Issues
Main issue:
- #2016
Issues related to this PR:
- TBD
- #2289
- #2291
## Summarize your change.
[cueweb] Job/Layer/Frame context-menu parity + frame log viewer
enhancements
Bring the Cuetopia tables to CueGUI parity across the Job, Layer and
Frame right-click menus, add the supporting REST-gateway routes and
dialogs, and extend the frame log viewer (search, follow/tail, line
numbers, per-line copy, preview). Also adds a Blender render demo to the
sandbox.
1) Job menu
- [x] Set User Color paints the whole row with CueGUI's 15 default
swatches plus a bright palette (app/utils/user_colors.ts);
- [x] Change Comments in a new tab to Comments popup
(job-comments-dialog.tsx);
- [x] New auto-eat column;
- [x] Set Min/Max Cores
- [x] Set Min/Max GPUs
- [x] Max Retries
- [x] Use Local Cores
- [x] Reorder
- [x] Stagger via job-extra-dialogs.tsx;
- [x] Show Progress Bar. This option shows a configurable command. Layer
menu (layer-extra-dialogs.tsx + routes)
- [x] View Layer
- [x] View Dependencies
- [x] Dependency Wizard (LAYER_ON_LAYER)
- [x] Mark done
- [x] Reorder
- [x] Stagger
- [x] Properties (min cores/memory/gpu-memory, threadable, tags)
- [x] Eat and Mark done
- [x] View Processes.
2) Frame menu (frame-extra-dialogs.tsx + routes)
- [x] View Host
- [x] View Dependencies
- [x] Dependency Wizard (FRAME_ON_FRAME)
- [x] Drop depends
- [x] Mark as waiting
- [x] Mark done
- [x] Filter Selected Layers
- [x] Reorder
- [x] Preview All (external viewer configurable)
- [x] Eat and Mark done
- [x] View Processes.
- [x] Frame range selector (frame-range-selector.tsx): drag /
shift-click to select a contiguous range and Retry / Eat / Kill it.
3) Frame log viewer (app/frames/[frame-name]/page.tsx)
- [x] Search bar with highlight, n/total counter, Enter/Shift+Enter
navigation, case + regex toggles (frame-log-search.tsx).
Follow tail mode:
- [x] Auto-scroll on new lines
- [x] Pause on scroll-up
- [x] Jump to bottom
- [x] "Tail Log" action opens it by default (last 200 lines, 1s poll).
- [x] Absolute line numbers + hover/click per-line copy with toast.
- [x] Frame preview thumbnail viewer (frame-preview-panel.tsx +
/api/frame/preview + preview_utils.ts)
4) Fixes
- [x] Correct gateway package on the layer/frame createdepend* routes
(/layer.* and /frame.* -> /job.LayerInterface and /job.FrameInterface);
depend creation now succeeds.
- [x] Mount DependencyWizardDialog once per page (was opening twice on
Monitor Jobs); Add an initialType open option.
New API routes
Frame:
- [x] getdepends
- [x] dropdepends
- [x] markaswaiting
- [x] preview
Job:
- [x] addrenderpart
- [x] markdoneframes
- [x] reorderframes
- [x] staggerframes
- [x] setmingpus
- [x] setmaxgpus
Layer:
- [x] getdepends
- [x] getoutputpaths
- [x] markdone
- [x] reorderframes
- [x] staggerframes
- [x] setmincores
- [x] setminmemory
- [x] setmingpumemory
- [x] settags
- [x] setthreadable
Config
Dockerfile + docker-compose.yml:
- [x] NEXT_PUBLIC_CUEPROGBAR_COMMAND
- [x] NEXT_PUBLIC_PREVIEW_COMMAND
- [x] NEXT_PUBLIC_PREVIEW_URL build args + runtime env.
Sandbox
load_test_jobs.py:
- [x] New `blender` subcommand renders a real image sequence and
registers the layer output path so the frame preview has real frames
- [x] Cross-platform Blender discovery (macOS/Windows/Linux)
- [x] Standalone render_blender_demo.py wrapper
- [x] README updated.
[cueweb] Other menu: add Immersive + Split view to sidebar/mobile;
document job/layer/frame + log-viewer features
Code:
- [x] app-sidebar / mobile-nav-sheet: the left sidebar (collapsed
icon-rail and expanded) and the mobile nav drawer now carry the full
Other menu, matching the header — Attributes, Immersive (full-screen),
Split view, Show Shortcuts, Notify on Shortcut (Immersive toggles via
useImmersiveMode; Split view links to the split workspace).
Docs (Job/Layer/Frame context-menu parity + frame log viewer
enhancements):
- [x] reference: added the new env vars
(NEXT_PUBLIC_CUEPROGBAR_COMMAND/_URL, NEXT_PUBLIC_PREVIEW_COMMAND/_URL);
de-placeholdered the Job/Layer/Frame action tables (Reorder/Stagger,
Unbook, Properties, dependency items, Preview All, Mark done, etc.) and
added Set Min/Max GPUs, Use Local Cores, Set User Color, Mark as
waiting; new "Frame log viewer features" table (search, follow/tail,
line numbers, per-line copy, download, preview panel).
- [x] developer-guide: new section listing the *-extra-dialogs,
frame-log-search, frame-preview-panel, frame-range-selector,
preview_utils, user_colors files and all new API routes, plus the
depend-package fix, single-wizard-mount, configurable commands, and the
Blender sandbox demo.
- [x] getting-started / quick-starts: the new env vars in the .env
config.
- [x] user-guide / other-guides / tutorials: frame actions (Mark as
waiting, Mark done, Preview All, frame-range selector) and the
log-viewer features.
- [x] README: full Job/Layer/Frame menu parity + frame log viewer
bullets.
Other-menu parity reflected across all guides + README (header, sidebar,
and mobile drawer enumerations now include Immersive (full-screen) and
Split view).
## LLM usage disclosure
Parts of this solution's implementation were developed with assistance
from Claude Opus.
Copy file name to clipboardExpand all lines: cueweb/README.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ CueWeb replicates the core functionality of CueGUI (Cuetopia and Cuecommander) i
43
43
-**Cuebot Facility** → `local` · `dev` · `cloud` · `external` (overridable via `NEXT_PUBLIC_CUEBOT_FACILITIES`). The active facility is shown as a small chip on the menu trigger. Each facility may target its own gateway via the server-only pair `CUEBOT_<NAME>_REST_GATEWAY_URL` / `CUEBOT_<NAME>_JWT_SECRET` (falling back to `NEXT_PUBLIC_OPENCUE_ENDPOINT` / `NEXT_JWT_SECRET`). The menu polls `/api/facility/health` every 30s to show a green/red dot per facility and disables selecting one whose gateway is down. **Manage facilities…** opens an admin screen (`/settings/facilities`) to edit each facility's gateway URL / JWT secret at runtime — applied without a redeploy, layered over the env defaults, with a change-history log; persist these overrides by pointing `CUEWEB_FACILITY_STORE` at a mounted volume.
-**Other** → **Attributes** (toggles the docked Attributes panel, see below), **Show Shortcuts** (opens the same overlay as pressing `?`), **Notify on Shortcut** (toggles the per-shortcut toast).
46
+
-**Other** → **Attributes** (toggles the docked Attributes panel, see below), **Immersive (full-screen)** (hides the header, sidebar and status bar so the active table fills the viewport; also bound to `F` / Cmd-Ctrl+Shift+F), **Split view** (open two pages side-by-side in a resizable split workspace), **Show Shortcuts** (opens the same overlay as pressing `?`), **Notify on Shortcut** (toggles the per-shortcut toast).
47
47
-**Help** → search box that searches *every* menu command in CueWeb (CueGUI parity), an **About CueWeb** dialog showing the build version, Build SHA, active Cuebot facility, masked REST gateway URL, Apache 2.0 license link, OpenCue/ASWF credits, and a **Copy diagnostics** button, plus links to the Online User Guide, Make a Suggestion, and Report a Bug (URLs overridable via `NEXT_PUBLIC_DOCS_URL` / `NEXT_PUBLIC_SUGGESTIONS_URL` / `NEXT_PUBLIC_BUGS_URL`).
48
48
- Theme toggle on the right.
49
49
- An always-visible **Sign out** button on the right. With an active session, `signOut()` clears it and redirects to `/login`; without a session it just navigates to `/login`. The `/login` page itself handles both auth configurations — empty `NEXT_PUBLIC_AUTH_PROVIDER` renders the **CueWeb Home** button, while a populated value renders the provider buttons.
@@ -73,7 +73,7 @@ CueWeb replicates the core functionality of CueGUI (Cuetopia and Cuecommander) i
73
73
- Hidden on `/login*`; matches the chrome's translucent surface so it integrates with both light and dark themes.
74
74
-**Mobile-friendly UI:**
75
75
- Every authenticated route works on phone-sized viewports. The Jobs page stacks its filter / toolbar / table vertically on small screens instead of forcing a wide layout, and each data table can be swiped horizontally to reach off-screen columns.
76
-
- On phones the desktop sidebar is replaced by a **hamburger** menu in the global header. Tapping it opens a side drawer mirroring every sidebar group: Dashboard, File, Cuebot Facility, Cuetopia, CueCommander, Other (Attributes / Show Shortcuts / Notify on Shortcut), and Help. The drawer is scrollable and auto-closes when you tap a navigation link.
76
+
- On phones the desktop sidebar is replaced by a **hamburger** menu in the global header. Tapping it opens a side drawer mirroring every sidebar group: Dashboard, File, Cuebot Facility, Cuetopia, CueCommander, Other (Attributes / Immersive (full-screen) / Split view / Show Shortcuts / Notify on Shortcut), and Help. The drawer is scrollable and auto-closes when you tap a navigation link.
77
77
- Every Jobs / Layers / Frames row has a small `⋮` Actions button as its leftmost cell, so touch users get the full right-click menu via a tap.
78
78
- The keyboard-shortcuts overlay (Other ▸ Show Shortcuts or `?`) is itself touch-friendly: every key badge in the list is tappable, so users on phones can trigger `/`, `r`, and `t` from inside the dialog instead of needing a physical keyboard.
79
79
-**LAN access (CueWeb usable from phones / tablets):**
@@ -404,6 +404,8 @@ The current CueWeb system offers a robust set of features designed to enhance us
404
404
-**Search:** Advanced search with regex support, dropdown suggestions, and optimized loading.
405
405
-**Dark mode:** Toggle between light and dark themes.
406
406
-**Actions:** Job, layer, and frame actions (pause, retry, kill, eat, and others) through CueGUI-parity right-click context menus. Includes **View Job Details** (opens the tabbed `/jobs/<jobName>` page with Overview / Layers / Frames / Comments / Dependencies), **Set Priority...** (themed 1-100 slider + number input dialog with optimistic in-row update; available on both Cuetopia Monitor Jobs and CueCommander Monitor Cue), Copy Job / Layer / Frame Name, Copy Log Path, View Log + Tail Log, and an optional **View Log on <editor>** item that launches the rqlog in VSCode / Sublime / TextMate / IntelliJ via a custom URL scheme (configured at build time, default is VSCode).
407
+
-**Full Job/Layer/Frame menu parity:** the menus also cover **Set User Color** (15 CueGUI swatches + a bright palette, stored per browser), **Set Min/Max Cores** & **Set Min/Max GPUs**, **Max Retries**, **Use Local Cores**, **Reorder** / **Stagger**, **Auto-Eat**, and **Show Progress Bar** on jobs; **View Layer**, **Properties** (min cores/memory/GPU-memory, threadable, tags), **Mark done** / **Eat and Mark done**, **View Processes**, and dependency items (View / Drop / **Dependency Wizard**) on layers; and **View Host**, **Mark as waiting**, **Filter Selected Layers**, **Preview All**, **Reorder**, dependency items, plus a drag/shift-click **frame range selector** (Retry / Eat / Kill a contiguous range) on frames. **Show Progress Bar** shows a configurable launch command (`NEXT_PUBLIC_CUEPROGBAR_COMMAND` / `NEXT_PUBLIC_CUEPROGBAR_URL`); **Preview All** opens rendered output in an external viewer (`NEXT_PUBLIC_PREVIEW_COMMAND` / `NEXT_PUBLIC_PREVIEW_URL`, default `rv {paths}`).
408
+
-**Frame log viewer enhancements:** in-log search (highlight + `n/total` counter, Enter / Shift+Enter, case + regex toggles), follow/tail mode (auto-scroll, pause-on-scroll-up, jump-to-bottom; **Tail Log** opens it by default at the last 200 lines with a ~1s poll), absolute line numbers, per-line copy (hover glyph / context menu, with a toast), raw-log download, and a **frame preview thumbnail** panel (`/api/frame/preview`, web-renderable formats only).
407
409
-**CueSubmit (browser job submission):** dedicated `/cuesubmit` route reachable from the **CueSubmit** top-level dropdown in the header, the matching **CueSubmit > Submit Job** group in the left sidebar, and the mobile nav drawer. Mirrors the standalone CueSubmit CLI tool with Job Info / Layer Info / per-type panels for Shell / Maya / Nuke / Blender, a live read-only Final command preview that updates per-keystroke, and a multi-layer Submission Details table with add / remove / reorder controls. Browser-only conveniences: per-field autocomplete history (Job Name / Shot / Layer Name), draft auto-save so refreshes don't wipe a multi-layer setup, themed `?` help popovers for frame-spec patterns and cuebot tokens, themed Radix Reset-confirm dialog, and a **View in Monitor Jobs** deep-link button on the resulting job detail page. Sandbox-tuned defaults (Memory `256m`, Facility `local`, stable non-zero per-user UID) so a `sleep 5` test job runs end-to-end out of the box.
408
410
-**Email Artist:** right-click a job and pick **Email Artist...** to open a themed dialog mirroring CueGUI's Email dialog (From / To / CC / BCC / Subject / Body), pre-filled from the job (artist as **To**, `<show>-<suffix>@<domain>` as **From** / **CC**, `cuemail: please check <jobName>` as **Subject**) and editable. Send hands the result to the user's default mail client via a `mailto:` URL. Configure the placeholders at build time with `NEXT_PUBLIC_EMAIL_DOMAIN` (default `your.domain.com`) and `NEXT_PUBLIC_EMAIL_SUPPORT_SUFFIX` (default `pst`).
409
411
-**Request Cores:** right-click a job and pick **Request Cores...** to open a themed email composer mirroring CueGUI's `RequestCoresDialog`, pre-filled with **From** (your signed-in session), **CC** (`<show>-support@<domain>`), and **Subject** (`Requesting Cores for <jobName>`); the body is auto-populated with a fixed-width table of the job's still-active layers (Layer Name / Minimum Memory / Min Cores), followed by editable **Date/Time by which completion is needed** and **Additional notes** sections. Send hands the result to your default mail client via a `mailto:` URL. Configure the support-team alias at build time with `NEXT_PUBLIC_EMAIL_REQUEST_CORES_SUFFIX` (default `support`).
Copy file name to clipboardExpand all lines: docs/_docs/concepts/cueweb-rest-gateway.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ CueWeb is a web-based application that brings the core functionality of CueGUI t
31
31
32
32
### Key Features
33
33
34
-
-**Persistent Global Header**: OpenCue logo + **CueWeb** wordmark, plus the full CueGUI menu bar (**File**, **Cuebot Facility**, **Cuetopia**, **CueCommander**, **Other**[Attributes / Show Shortcuts / Notify on Shortcut], **Help** with a search box that finds commands across every menu), a theme toggle, and an always-visible Sign out button
34
+
-**Persistent Global Header**: OpenCue logo + **CueWeb** wordmark, plus the full CueGUI menu bar (**File**, **Cuebot Facility**, **Cuetopia**, **CueCommander**, **Other**[Attributes / Immersive (full-screen) / Split view / Show Shortcuts / Notify on Shortcut], **Help** with a search box that finds commands across every menu), a theme toggle, and an always-visible Sign out button
35
35
-**Collapsible Left Sidebar**: Same six groups as the header, organized as accordion sections; persists open/closed state and overall collapsed-vs-expanded width across reloads
36
36
-**Disable Job Interaction**: Global read-only safety toggle (File ▸ Disable Job Interaction) that dims every destructive action and shows an amber banner under the header
37
37
-**Attributes Panel**: Docked drawer (Other ▸ Attributes) with a position picker (right / bottom / left / top), filter input, and a collapsible key/value tree of the selected entity
0 commit comments