summaryrefslogtreecommitdiff
path: root/web/js/keyboard.js
AgeCommit message (Collapse)Author
2026-05-17Restructure repo: move Go server into player-server/Paul Buetow
2026-05-09s1 add media rescan hotkey and progress indicatorPaul Buetow
2026-05-09Fix media Enter key handling (o1)Paul Buetow
2026-05-09Refine media browsing and set coversPaul Buetow
2026-05-07h1 fix browser auth theme shortcuts QAPaul Buetow
2026-05-06Add q hotkey to stop playback and close playerPaul Buetow
2026-05-06Add T hotkey to regenerate thumbnail of selected itemPaul Buetow
2026-05-06Add crop position/anchor control hotkeysPaul Buetow
2026-05-06Add PgUp/PgDn 10% seek in fullscreen modePaul Buetow
2026-05-06Add search syntax help tooltip (? key in search box)Paul Buetow
2026-05-06Add Down/j hotkey to exit filter and return to thumbnail gridPaul Buetow
2026-05-06Add 'R' hotkey to play a random track from the current media listPaul Buetow
2026-05-05Add fullscreen crop mode toggle (hotkey c)Paul Buetow
- In fullscreen, press 'c' to toggle object-fit between contain (default) and fill (stretches to fill, no aspect ratio preservation). - Adds .player.crop-mode video { object-fit: fill; } in player.css. - Adds toggleCrop() in player.js that toggles a crop-mode class and a small UI indicator (✂️) in the controls, visible only in fullscreen. - Resets crop mode back to contain when exiting fullscreen (via Escape, minimize, or fullscreenchange event). - Wires the 'c' hotkey in keyboard.js and registers toggleCrop in app.js. - Adds crop-indicator to index.html and detach.html controls, and documents the shortcut in the help modal.
2026-05-03fix(admin): fix rescan goroutine lifecycle and race on shared ScanProgressPaul Buetow
- Protect adminService scan state (cancel func + progress pointer) with sync.Mutex. - Allocate fresh ScanProgress per trigger and pass it to the scanner, eliminating races on the previously shared progress struct. - Cancel previous scan context before starting a new one. - Add tests for cancellation, fresh progress per scan, concurrent triggers, and empty progress when never started. - Fix race-prone tests by polling Running==true before waiting for completion.
2026-05-03Fix media info and detached playback statePaul Buetow
2026-05-03feat: hybrid cache-busting for thumbnails and coversPaul Buetow
- Add Cache-Control: no-cache headers to thumbnail and cover endpoints (GET /api/media/{id}/thumbnail, GET /api/sets/{id}/cover, GET /s/{token}/thumbnail) so browsers revalidate instead of serving stale cached images after regeneration. - Add frontend cache-busting via ?t=Date.now() after folder cover regeneration so the browser fetches the newly overwritten image. - Replace toolbar filters with inline search syntax (min:, max:, tag:, like:, type:, sort:, minsize:, maxsize:) for faster filtering. - Remove dedicated toolbar and advanced filter panel; consolidate all filtering into the search bar. - Expand filter state to support filesize_min/filesize_max.
2026-05-02refine playback navigation and player modesPaul Buetow
2026-05-02add playback navigation shortcutsPaul Buetow
2026-05-02add player minimize togglePaul Buetow
2026-05-02fix detached playback and scan progressPaul Buetow
2026-05-02feat: secure shares with keyboard-first My Shares modal (hotkeys S/L)Paul Buetow
2026-05-02more on thisPaul Buetow
2026-05-02switch sidebar hotkey to s, always rebuild/rescan in start.sh, bump sw.js cachePaul Buetow
2026-05-02fix:xPaul Buetow
2026-05-01Add player stage collapse, multi-set selection, grid nav, m4b support, ↵Paul Buetow
content-type fixes, thumbnail refresh, and verbose logging
2026-05-01add readme and so onPaul Buetow
2026-05-01Add support for audiobook/cover images with ancestor lookup and fix keyboard ↵Paul Buetow
navigation Backend: - Add UpdateMediaThumbnail to MediaRepo for efficient thumbnail-only updates - Update ScannerStore interface to include thumbnail update capability - Update mock implementations across repository and API layers for interface changes - Enhance scanner to detect image files in ancestor directories for audio covers - Add background goroutine for async rescan to avoid HTTP timeout Frontend: - Fix hjkl cursor keys to navigate grid properly - Implement ancestor directory cover image lookup for audiobooks Infrastructure: - Add start.sh helper script for quick server startup during development
2026-05-01Minimalist UI: hide all elements until activated; add help modal and ↵Paul Buetow
keyboard shortcuts - Redesign UI to be invisible by default: only header + '?' button shown - Press m to show sidebar, t for toolbar, / for search, ? for help - Add help modal with all keyboard shortcuts - Fix scanner to skip corrupt/unprobeable files instead of aborting - Fix scanner to skip thumbnail errors instead of aborting - Fix rescan to use background context so it completes after HTTP response - Rename project from KISS Media Player to Player
2026-04-30[ma] Add missing SPA controls: download, tags, thumbnail/cover regen, ↵Paul Buetow
upload, filesize display, duration/filesize/tag filters, favorites
2026-04-29feat: create web PWA frontendPaul Buetow