Diocrafts
f08cffc0e8
feat: add VitePress docs site, music file picker modal, Dockerfile optimization, i18n keys for 14 locales
...
- Add docs/ with VitePress site (19 pages): guide, config, architecture, FAQ
- Add GitHub Actions workflow for auto-deploy to GitHub Pages
- Replace music 'Add Tracks' upload picker with in-app audio file browser modal
- Add music picker CSS styles with dark theme support
- Add missing i18n keys (search_audio, no_audio_files, etc.) to all 14 locales
- Optimize Dockerfile: shared base stage, COPY --chmod, consolidated RUN, HEALTHCHECK
- Improve README: docs links, updated stats (222+ tests, 14 languages), feature status
2026-04-11 20:58:34 +02:00
Dionisio Pozo
1bb65e6448
Merge pull request #275 from EdouardVanbelle/refactor/css-variables
...
refactor(css): maximize usage of variables (1st part)
2026-04-11 20:49:52 +02:00
Edouard Vanbelle
8d6964a0ff
POC: use FontAwesome / svg on card view to simplify code
2026-04-11 20:24:43 +02:00
Diocrafts
78fcf5f08f
perf: move audio metadata I/O to spawn_blocking + stream reextract_all
...
- Move all sync I/O (id3::Tag, mp3_duration) into spawn_blocking via
extract_metadata_blocking() to avoid stalling Tokio worker threads
- Replace fetch_all with streaming .fetch() in reextract_all_audio_metadata
for O(1) memory usage regardless of audio file count
- Consolidate get_duration_secs into extract_metadata_blocking, eliminating
redundant file open (tag was read twice before)
2026-04-11 19:36:34 +02:00
Diocrafts
63bcd0ffe7
perf: non-blocking hash + parallel thumbnail generation
...
- Replace blocking blake3::hash() with DedupService::hash_file() in
file_upload_service (create_file, update_file). Uses spawn_blocking +
mmap_rayon instead of blocking the Tokio async worker.
- Parallelize thumbnail resize+encode with rayon par_iter() for the 3
sizes (Icon, Preview, Large) inside spawn_blocking.
2026-04-11 19:13:48 +02:00
Dionisio Pozo
3dc4e6a68b
Merge pull request #280 from EdouardVanbelle/style/apply-biome-formatter-linter-recos
...
style(js/css): apply biome formatter & linter recos
2026-04-11 19:06:43 +02:00
Edouard Vanbelle
5f87dbf612
fix(device-verify): includes main.css + rename class to avoid collision
2026-04-11 18:58:38 +02:00
Edouard Vanbelle
3ab219f77d
refactor(css): reduce css icons
2026-04-11 18:39:03 +02:00
Edouard Vanbelle
49c3406e4b
refacor(css): reduce dependency of theme=dark
2026-04-11 18:39:03 +02:00
Edouard Vanbelle
56a067ee96
refactor(css): apply biome format on css
2026-04-11 18:39:03 +02:00
Edouard Vanbelle
94b36e41e0
refactor(css): maximize usage of variables (1st part, to simplify CSS & style)
...
note: there is still work to do, but has there are risks to conflict I prefer to commit this first part now
2026-04-11 18:39:03 +02:00
Edouard Vanbelle
13aa90cf3c
style(js): correct linter main warnings
2026-04-11 18:27:54 +02:00
Edouard Vanbelle
c7eeb734d7
style(css+js): apply biome formatter
2026-04-11 18:20:43 +02:00
Dionisio Pozo
904aca5edf
Merge pull request #279 from EdouardVanbelle/fix/file-list-display
2026-04-11 18:19:07 +02:00
Diocrafts
a2aece0752
perf: scale thumbnail decode semaphore with available CPUs
...
Replace hardcoded DEFAULT_MAX_CONCURRENT_DECODES=4 with adaptive
max_concurrent_decodes() that uses available_parallelism()/2 (min 2).
Matches the pattern already used in image_transcode_service.
Improves thumbnail throughput on 16+ core servers by 2-4x.
2026-04-11 18:14:33 +02:00
Edouard Vanbelle
21a551b836
fix(style): correct file list display (was overlapped by header)
2026-04-11 18:10:50 +02:00
Diocrafts
d32a32c30a
perf: add TTL/TTI to content cache and invalidate on file mutations
2026-04-11 17:39:17 +02:00
Diocrafts
725f661f72
style: fix cargo fmt formatting in dedup_handler
2026-04-11 16:19:49 +02:00
Diocrafts
81f33458e0
perf: streaming hash-on-write dedup upload, remove dead code
2026-04-11 16:17:47 +02:00
Diocrafts
57b99f962e
fix(reset.css): use important on .hidden to override display styles
2026-04-11 11:18:05 +02:00
Diocrafts
c343b26420
chore: bump version to 0.5.5
2026-04-11 11:09:21 +02:00
Dionisio Pozo
06cb9b7ba5
Merge pull request #278 from kabakaev/fix-blank-login-page
...
fix blank login page regression
2026-04-11 11:00:03 +02:00
Diocrafts
3ce8ec25d6
feat(music): complete music UI overhaul - bugs, UX, missing features & styling
...
- Fix dead buttons (fa-edit/fa-share → fa-pen/fa-share-alt matching icon registry)
- Fix volume icon, shuffle bias, queue removal, repeat-one CSS
- Replace native prompt/confirm/alert with Modal system
- Add click-to-select, dblclick-to-play, playback error notifications
- Add loading indicators, success toasts, close player button
- Implement remove track from playlist (DELETE endpoint)
- Implement drag & drop track reorder (PUT reorder endpoint)
- Implement manage shares dialog (GET/DELETE shares endpoints)
- Implement cover art upload & display (cover_file_id in UpdatePlaylistDto)
- Implement public/private toggle (is_public in UpdatePlaylistDto)
- Mount get_audio_metadata route in backend routes.rs
- Redesign empty state: full-width centered onboarding when 0 playlists
- Move create button into sidebar header as compact + button
- Add music.css to build.rs production CSS bundle
- Add 16+ i18n keys in en.json and es.json
- Add CSS for drag handles, track remove, cover overlay, shares dialog, public badge
2026-04-11 10:59:01 +02:00
Alexander Kabakaev
cb8e74375f
fix(reset.css): blank login page regression
2026-04-11 10:11:47 +02:00
Dionisio Pozo
6880edf641
Merge pull request #274 from EdouardVanbelle/chore/claude
2026-04-08 17:24:41 +02:00
Edouard Vanbelle
4fbb8883af
chore(claude): add frontend part to CLAUDE.md + .claudeignore for security
2026-04-08 16:25:46 +02:00
Dionisio Pozo
d4da43ebe0
Merge pull request #273 from EdouardVanbelle/fix/photo-section
2026-04-08 14:29:01 +02:00
Dionisio Pozo
46fbcc6f0f
Merge pull request #272 from EdouardVanbelle/feat/sticky-action-bar
2026-04-08 14:28:32 +02:00
Dionisio Pozo
f34b2815ed
Merge pull request #270 from andreytkachenko/music
2026-04-08 14:27:28 +02:00
Andrey Tkachenko
da066f47fa
Music Player & Playlist Manager
2026-04-08 15:14:03 +03:00
Edouard Vanbelle
2c33eeb74c
fix(section): hide list view header in photos' section
2026-04-08 13:51:25 +02:00
Edouard Vanbelle
669623adbe
feat(layout): add a sticky page header
...
- keep action bar, breadcrumb, dropzone visible even during scroll down
2026-04-08 10:41:42 +02:00
Dionisio Pozo
2e8e0ef6c5
Merge pull request #271 from EdouardVanbelle/linter
2026-04-08 00:20:33 +02:00
Edouard Vanbelle
a4266a6e93
style: apply linter suggestions
2026-04-08 00:09:27 +02:00
Edouard Vanbelle
1ce29c101d
style: apply biome CSS/JS format
2026-04-08 00:09:27 +02:00
Edouard Vanbelle
786a778546
fix(main.js): add missing break in swithc/case + apply linter
2026-04-08 00:09:27 +02:00
Edouard Vanbelle
057bab5dad
chore: prepare JS + CSS linter and add CI depending frontend of backend changes
2026-04-08 00:09:24 +02:00
Dionisio Pozo
e752f24c8c
Merge pull request #268 from EdouardVanbelle/feat/file-url-history
2026-04-07 18:49:42 +02:00
Dionisio Pozo
b4e12b012e
Merge pull request #267 from EdouardVanbelle/fix/inlineviewer-stop-media-on-close
2026-04-07 18:49:01 +02:00
Edouard Vanbelle
c16e3c973e
feat(url,history): add shown file in the url
2026-04-07 11:56:09 +02:00
Edouard Vanbelle
29b01529da
fix(inlineViewer): stops media when viewer is closed
2026-04-07 11:40:14 +02:00
Dionisio Pozo
4a4f38c418
Merge pull request #266 from EdouardVanbelle/fix/bar-icon
2026-04-07 00:57:26 +02:00
Edouard Vanbelle
72af70505d
fix(icon): add missing menu bar icon, visible on small media screen
2026-04-07 00:53:46 +02:00
Dionisio Pozo
2df2789824
Merge pull request #264 from EdouardVanbelle/fix/hash-url
2026-04-05 10:09:54 +02:00
Dionisio Pozo
a85bbea3d2
Merge pull request #263 from EdouardVanbelle/fix/select-all
2026-04-05 10:09:13 +02:00
Edouard Vanbelle
a110d281c3
fix(url): fix historyUrl serialization
2026-04-05 02:11:43 +02:00
Edouard Vanbelle
f72dec6fe1
fix(multiSelect): correct select all checkbox, correct shift click
2026-04-05 02:00:10 +02:00
Dionisio
4c796aaf61
fix(ui): resolve hidden class vs style.display conflict, polish toggle buttons
...
style.display='block'. All panel show/hide now uses classList.
- Fix admin badge/panel not showing in user menu (same root cause).
- Fix profile page main-content/auth-error panels (same root cause).
- Add hidden class to admin-setup-panel in login.html for consistency.
- Remove redundant .admin-setup-panel{display:none} CSS rule.
- Polish view toggle buttons: tighter gap, smaller size, subtler shadow.
2026-04-05 00:51:17 +02:00
Dionisio
e90fb2ea3c
fix(release): v0.5.4 — fix Docker build and publish pipeline
...
- Dockerfile: add dummy src/bin/generate-openapi.rs in cacher stage to satisfy
Cargo.toml [[bin]] target resolution during dependency caching
- docker-publish.yml: add explicit ref to checkout steps so workflow_dispatch
builds the correct tag instead of HEAD of main
- docker-publish.yml: increase timeout to 180min for multi-arch QEMU builds
- Bump version to 0.5.4
Closes #250
2026-04-04 21:25:18 +02:00
Dionisio Pozo
f0b710e5af
Merge pull request #260 from EdouardVanbelle/refactor/merge-grid-and-list-builder
2026-04-04 17:25:54 +02:00