screentinker/frontend/js
ScreenTinker 436a3be7f6 Phase 3: playlist publish/draft state with auto-publish from device detail
Schema: add status and published_snapshot columns to playlists table.
Migration snapshots all existing playlists as published (idempotent via schema_migrations).

Devices always receive the published_snapshot, not live playlist_items.
Edits from device-detail/groups auto-publish immediately (display updates instantly).
Edits from playlist detail page go to draft (requires explicit publish).
POST /playlists/:id/publish snapshots and pushes to all devices.
POST /playlists/:id/discard reverts playlist_items from published snapshot.
Content deletion scrubs references from all published snapshots.

Frontend: draft badge in playlist list, prominent yellow banner with publish/discard
buttons on playlist detail and device detail pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 20:52:29 -05:00
..
components Initial open source release 2026-04-08 12:14:53 -05:00
views Phase 3: playlist publish/draft state with auto-publish from device detail 2026-04-13 20:52:29 -05:00
api.js Phase 3: playlist publish/draft state with auto-publish from device detail 2026-04-13 20:52:29 -05:00
app.js Add playlists route to frontend app.js router 2026-04-11 21:16:08 -05:00
i18n.js Initial open source release 2026-04-08 12:14:53 -05:00
socket.js Initial open source release 2026-04-08 12:14:53 -05:00
utils.js Security audit remediation: auth, IDOR, XSS, hardening 2026-04-11 22:48:07 -05:00