dragonflight/services
Zac Gaetano 3ffffd5b32 feat(schedule): right-click menu + drag-to-resize on EPG event blocks
Right-click any event block to open a context menu (Edit, Cancel,
Copy schedule ID, Delete) — actions per status mirror the List view so
the two surfaces stay in lockstep. Menu is viewport-clamped and
dismisses on outside click / scroll, same pattern as the asset menu in
the Library.

Drag-to-resize works for pending schedules only (the schedules PUT
rejects edits to running rows, and terminal statuses are read-only):
- Drag the left edge to move the start time
- Drag the right edge to move the end time
- Drag the body to shift the whole block in time
All gestures snap to 15-minute increments to match the new-schedule
click snap. Minimum duration is clamped to 5 minutes; the block clamps
to the visible day on both edges. While dragging the title shows the
preview range ("Start time → end time") and the block lifts with a
project-tinted shadow.

A short pointer click (< 4px travel) still opens the edit modal — the
click and drag share the same pointerdown so the operator never has
to know which gesture they made first.

Implementation: replaces the <button> block with a <div> hosting three
zones (left handle / body / right handle). Pointer events with
setPointerCapture so drags survive losing the cursor over the block,
and pointerup demotes back to click if travel was below threshold.
Optimistic local update on resize, PUT /schedules/:id with just the
two changed time fields, refetch to reconcile.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 16:33:57 -04:00
..
capture fix(recorders,library): empty-capture handling + right-click context menu 2026-05-23 03:52:30 +00:00
editor fix: override user-select:none on draggable media items to fix drag initiation 2026-05-19 14:45:47 -04:00
mam-api fix(jobs): backfill asset_name from DB so non-YouTube jobs show their asset 2026-05-23 16:23:29 -04:00
node-agent fix(decklink): mount /dev/blackmagic in sidecar + remote node routing via node-agent 2026-05-21 18:51:09 -04:00
premiere-plugin feat: live HLS preview, proxy worker fixes, Settings tabs, growing-files + Premier panel 2026-05-22 19:12:53 -04:00
web-ui feat(schedule): right-click menu + drag-to-resize on EPG event blocks 2026-05-23 16:33:57 -04:00
worker feat(ingest): YouTube importer — paste link, asset travels normal pipeline 2026-05-23 16:05:41 -04:00