Commit Graph

17 Commits

Author SHA1 Message Date
0dab3077cf feat: unify search state and dynamic container routing
Refactor search handling across the frontend and backend to use a unified reactive state and dynamic container ID generation. The frontend now leverages a centralized `useMediaServers` composable for search queries and results, while the backend computes container IDs dynamically from source entries instead of using hardcoded values. Bumps version to 0.3.52.
2026-06-11 22:17:53 +02:00
ba40d07f73 fix: prevent direct playback of single-item playlists
Update `isNavigable` to explicitly validate `item.is_container` and disable navigation for playlists with only one item. This forces users to enter the playlist container, preserving metadata update benefits.
2026-06-07 14:52:51 +02:00
037435af20 style: optimize drawer layout for mobile portrait viewports
Update mobile portrait media queries in RendererDrawer and ServerDrawer to span full viewport width, reduce background opacity to 6%, and remove side box shadows. This flattens the visual style and improves layout for narrow screens.
2026-06-07 14:27:15 +02:00
2b3fae7778 feat: handle SSE cache invalidation and nightly rust toolchain config
Adds a Vue watch in `ServerDrawer.vue` to trigger a manual container directory refresh when SSE cache invalidation clears `browseData`. Includes guards to prevent redundant requests during active loads and properly manages the `isLoading` state. Additionally, introduces `rust-toolchain.toml` to enforce the nightly Rust compiler across all environments, ensuring consistent builds and access to recent language improvements.
2026-06-07 14:20:25 +02:00
4b7c482bf3 [webapp] Add debug logging to search functionality
- Bump Cargo.lock version from v0.3.41 to v0.3.52
- Add console.log statements in ServerDrawer.vue and useMediaServers.ts to trace search flow: handleSearch call, server ID/query passed in API request
- Include logging for number of entries returned by search
2026-04-08 09:01:42 +02:00
843f474a98 feat: ajouter la recherche dans les serveurs media
Implémente une fonctionnalité de recherche pour les serveurs media (Qobuz et autres) avec:
- Nouvelle API endpoint /servers/{serverId}/search côté backend
- Fonction searchServer dans useMediaServers.ts pour gérer la requête
- Composants MediaBrowser.vue et ServerDrawer.vue avec barre de recherche interactive
- Support des résultats mixtes (albums, artistes, pistes, playlists)
- Gestion des états de chargement, erreur et résultat vide
- Affichage conditionnel selon le mode navigation/recherche
2026-03-30 06:36:32 +02:00
832068a61f refactor: centralize common styles and utilities in pmocontrol.css
- Move protocol badge styles to global pmocontrol.css
- Extract .section-title, .icon-btn, and scrollbar utilities into pmocontrol.css
- Add --color-primary-rgb variable for rgba() usage
- Deprecate duplicate .protocol-* and @keyframes spin definitions across components
- Update version to 0.3.29
2026-03-25 21:13:18 +01:00
e47c1f1a86 feat: refactor drawers with shared styles and add unified debug hub
- Extract common drawer styles into new `drawers.css`
- Refactor `ServerDrawer` and `RendererDrawer` to use shared `.app-drawer` class
- Update routing: replace `/debug/api-dashboard` with unified `/debug` route pointing to new `DebugView`
- Add debug tools grid view (`DebugView.vue`) with icons and navigation
- Refactor `PlayListManager` styles to use CSS variables for consistency
- Update font sizing: replace global zoom with base `15px` font size in `main.css`
- Improve lazy metadata fallback logic in Rust API
2026-03-25 20:51:10 +01:00
04793da52c Remove backdrop on mobile portrait for full-width drawers
Remove the backdrop element in mobile portrait mode since the drawer now covers 100vw, making the overlay unnecessary. Applied to both RendererDrawer and ServerDrawer components.
2026-03-25 12:34:22 +01:00
0137a4675f feat: add Qobuz playlist caching with versioning and infinite scroll UI
- Add qobuz_debug to .gitignore
- Bump PMOMusic version to 0.3.26
- Add .cargo/ copy in Dockerfile for registry config
- Implement infinite scroll in ServerDrawer.vue with IntersectionObserver and sentinel element
- Add source/source_version fields to playlists for cache invalidation
- Update pmocache and pmoplaylist DB schemas with versioning (SCHEMA_VERSION)
- Add Qobuz API metadata fetching and pagination for playlist tracks
- Implement album/playlist cache invalidation based on released_at/updated_at timestamps
- Refactor adapt_playlist_items_to_qobuz → adapt_items_to_qobuz with cleaner logic
- Add debug mode to save Qobuz API responses when QOBUZ_DEBUG_DIR is set
2026-03-25 11:08:28 +01:00
b08112699e feat: implement infinite scroll with pagination for media browsing
Add infinite scroll functionality to MediaBrowser component using IntersectionObserver, introduce BrowseState and pagination support (offset/limit) in API and backend, update version to 0.3.24
2026-03-24 15:25:19 +01:00
83f814c729 Remove lazy loading attribute from cover image
Removed the 'loading="lazy"' attribute from the album art image to ensure immediate loading for better UX in server drawer.
2026-03-24 11:00:46 +01:00
c9dda75628 Bump version to 0.3.10
Update version number from 0.3.9 to 0.3.10 in Cargo.toml and version.txt files.

Also, enhance image loading handling in multiple Vue components (ContainerItem, CurrentTrack, MediaItem, QueueItem, ServerDrawer) by:
- Adding ref and watch for tracking image loading states
- Implementing proper load and error handlers
- Using v-show to control image visibility based on loading state
- Adding image state tracking for each item in ServerDrawer
- Improving placeholder display logic
2026-01-17 21:06:19 +01:00
38f49d4439 Implémentation du menu déroulant pour les actions d'éléments dans le ServerDrawer
Ajout d'un menu déroulant avec les actions 'Ajouter à la queue' et 'Ajouter après' pour les éléments dans le ServerDrawer.

- Remplacement des fonctions handlePlayItem et handleQueueItem par des fonctions plus spécifiques (handlePlayItem, handleAddToQueue, handleAddAfterCurrent)
- Ajout d'une gestion du menu déroulant avec ouverture/fermeture
- Intégration du composant useRenderers pour les actions de lecture
- Mise à jour des styles pour le menu déroulant avec animations
- Correction de l'alignement du backdrop sur mobile
- Amélioration des transitions et animations du drawer
- Ajout de la fonction addAfterCurrent dans l'API et le control point
- Support de l'ajout d'éléments après le morceau actuel dans les queues
2026-01-09 17:26:46 +01:00
7546072d2b Correction de petits bugs d'interface 2026-01-04 20:45:51 +01:00
6b5282903e Grosse correction sur l'interface graphique et débugage de Open Home.
All checks were successful
Build and Push Docker Image / build (push) Successful in 28m52s
2025-12-27 13:46:17 +01:00
d6f8d94ca5 Plus de dashboard. 2025-12-27 11:21:49 +01:00