max / makenotwork
1 file changed,
+11 insertions,
-1 deletion
| @@ -39,7 +39,17 @@ Dashboard restructure complete (Phases 1-6 in todo_done.md). Tab layout: Project | |||
| 39 | 39 | - [x] Extract item-details.js (~350 lines) — bundle, section, tag management from item_details.html. Uses htmx:afterSwap for re-init on tab swap | |
| 40 | 40 | - [x] Extract item-upload.js (~220 lines) — audio + version upload from partials. htmx:afterSwap re-init | |
| 41 | 41 | - [x] Extract blog-editor.js (~100 lines) — from dashboard-blog-editor.html. Data attributes for project/post IDs | |
| 42 | - | - [ ] (Deferred) Extract audio-player.js (~450 lines) — complex state machine, full page load only, low priority | |
| 42 | + | - [ ] (Deferred) Extract audio-player.js (~450 lines) — will happen as part of unified media player below | |
| 43 | + | ||
| 44 | + | ### Unified Media Player | |
| 45 | + | ||
| 46 | + | Unify audio and video playback into one shared component. Video gets custom controls, insertions, chapters, speed, volume, progress persistence — matching the audio experience. Plan at `~/.claude/plans/eager-ancient-salmon.md`. | |
| 47 | + | ||
| 48 | + | - [ ] **Phase 1:** Extract media-player.js + media-player.css from audio_player.html (no behavior change, just extraction) | |
| 49 | + | - [ ] **Phase 2:** Make state machine media-type aware (audio: dual-element gapless; video: single-element with segment advancement) | |
| 50 | + | - [ ] **Phase 3:** Create unified media_player.html template + /watch/{slug} route for video items | |
| 51 | + | - [ ] **Phase 4:** Update item.html video section — poster + "Watch" button linking to /watch/ (matches /listen/ pattern) | |
| 52 | + | - [ ] **Phase 5:** Add keyboard shortcuts (Space, arrows, M, F, S) to unified player | |
| 43 | 53 | ||
| 44 | 54 | #### Discoverability | |
| 45 | 55 | - [ ] Add Media Library access from content editors — "Insert Image" button in blog/item editors |