| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
- Add logo.svg at project root and reference it in README.md
- Generate favicon.ico from logo and place in web/
- Serve logo.svg and favicon.ico as static assets
- Display logo on the login page with responsive sizing
|
|
- 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
content-type fixes, thumbnail refresh, and verbose logging
|
|
|
|
During scanning, when an audio file is found in a directory that also
contains an image file (jpg/png/gif), the scanner now assigns that image
as the audio file's thumbnail_path. This is common for audiobooks which
have cover.jpg alongside the audio files.
Changes:
- scanner: two-pass walk to collect sibling images, then pair with audio
- CSS: add .row-cover style for audio items with covers
- JS: render audio rows with cover images when thumbnail_path is set
|
|
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
|
|
- Add mobile breakpoints (860px/520px) with compact header, full-width sidebar overlay,
flexible search bar, and adaptive toolbar.
- Player now spans full width on mobile and has reduced stage height.
- Progress bar gains touch-drag support (touchstart/move/end) for mobile seeking.
- Collapse advanced filters (tags/duration/filesize) behind a 'Filters' toggle to keep
the default toolbar KISS. Only type and favorites remain always visible.
|
|
upload, filesize display, duration/filesize/tag filters, favorites
|
|
|
|
|