feat(offline): Offline Library shows cached albums from all servers (#719)

* feat(offline): show cached albums from all servers in Offline Library

List every offline album regardless of active server; load cover art per
source server and switch before play/enqueue. Sidebar, mobile nav, and
disconnect auto-nav use any cached content; multi-server cards show a label.

* docs(changelog): link offline library PR #719

* chore(pr-719): address review — CHANGELOG in Added, helper tests

Move release note to ## Added per team changelog policy; cover
offlineAlbumCoverArt and ensureServerForOfflineAlbum in unit tests.
This commit is contained in:
cucadmuh
2026-05-15 17:20:19 +03:00
committed by GitHub
parent 651a3f276a
commit ea6ac49885
17 changed files with 243 additions and 41 deletions
+1
View File
@@ -11,6 +11,7 @@ export const connection = {
offlineNoCacheBanner: 'Keine Serververbindung — {{server}} nicht erreichbar',
offlineLibraryTitle: 'Offline-Bibliothek',
offlineLibraryEmpty: 'Noch keine Alben gecacht. Online gehen, Album öffnen und "Offline verfügbar machen" klicken.',
offlineCachedOnServer: 'Auf {{server}}',
offlineAlbumCount: '{{n}} Album',
offlineAlbumCount_plural: '{{n}} Alben',
offlineFilterAll: 'Alle',
+1
View File
@@ -11,6 +11,7 @@ export const connection = {
offlineNoCacheBanner: 'No server connection — cannot reach {{server}}',
offlineLibraryTitle: 'Offline Library',
offlineLibraryEmpty: 'No albums cached yet. Go online, open an album and click "Make available offline".',
offlineCachedOnServer: 'On {{server}}',
offlineAlbumCount: '{{n}} album',
offlineAlbumCount_plural: '{{n}} albums',
offlineFilterAll: 'All',
+1
View File
@@ -11,6 +11,7 @@ export const connection = {
offlineNoCacheBanner: 'Sin conexión al servidor — no se puede acceder a {{server}}',
offlineLibraryTitle: 'Biblioteca Offline',
offlineLibraryEmpty: 'No hay álbumes en caché aún. Conéctate, abre un álbum y click en "Disponible offline".',
offlineCachedOnServer: 'En {{server}}',
offlineAlbumCount: '{{n}} álbum',
offlineAlbumCount_plural: '{{n}} álbumes',
offlineFilterAll: 'Todos',
+1
View File
@@ -11,6 +11,7 @@ export const connection = {
offlineNoCacheBanner: 'Pas de connexion au serveur — {{server}} inaccessible',
offlineLibraryTitle: 'Bibliothèque hors ligne',
offlineLibraryEmpty: 'Aucun album en cache. Connectez-vous, ouvrez un album et cliquez sur "Rendre disponible hors ligne".',
offlineCachedOnServer: 'Sur {{server}}',
offlineAlbumCount: '{{n}} album',
offlineAlbumCount_plural: '{{n}} albums',
offlineFilterAll: 'Tout',
+1
View File
@@ -11,6 +11,7 @@ export const connection = {
offlineNoCacheBanner: 'Ingen servertilkobling — kan ikke nå {{server}}',
offlineLibraryTitle: 'Frakoblet bibliotek',
offlineLibraryEmpty: 'Ingen album bufret ennå. Kobl deg til nettverket, åpne et album og klikk "Gjør tilgjengelig frakoblet".',
offlineCachedOnServer: 'På {{server}}',
offlineAlbumCount: '{{n}} album',
offlineAlbumCount_plural: '{{n}} album',
offlineFilterAll: 'Alle',
+1
View File
@@ -11,6 +11,7 @@ export const connection = {
offlineNoCacheBanner: 'Geen serververbinding — {{server}} niet bereikbaar',
offlineLibraryTitle: 'Offline bibliotheek',
offlineLibraryEmpty: 'Nog geen albums gecached. Ga online, open een album en klik op "Offline beschikbaar maken".',
offlineCachedOnServer: 'Op {{server}}',
offlineAlbumCount: '{{n}} album',
offlineAlbumCount_plural: '{{n}} albums',
offlineFilterAll: 'Alles',
+1
View File
@@ -11,6 +11,7 @@ export const connection = {
offlineNoCacheBanner: 'Nicio conexiune la server — nu s-a putut ajunge la {{server}}',
offlineLibraryTitle: 'Librărie offline',
offlineLibraryEmpty: 'Niciun album adăugat în cache. Conectează-te, deschide un album și apasă "Fă disponibil offline".',
offlineCachedOnServer: 'Pe {{server}}',
offlineAlbumCount: '{{n}} album',
offlineAlbumCount_plural: '{{n}} albume',
offlineFilterAll: 'Toate',
+1
View File
@@ -12,6 +12,7 @@ export const connection = {
offlineLibraryTitle: 'Офлайн-библиотека',
offlineLibraryEmpty:
'Пока ничего не сохранено. Подключитесь к сети, откройте альбом и нажмите «Сохранить офлайн».',
offlineCachedOnServer: 'С сервера {{server}}',
offlineAlbumCount_one: '{{n}} альбом',
offlineAlbumCount_few: '{{n}} альбома',
offlineAlbumCount_many: '{{n}} альбомов',
+1
View File
@@ -11,6 +11,7 @@ export const connection = {
offlineNoCacheBanner: '无服务器连接 — 无法访问 {{server}}',
offlineLibraryTitle: '离线音乐库',
offlineLibraryEmpty: '尚未缓存任何专辑。请联网,打开专辑并点击"设为离线可用"。',
offlineCachedOnServer: '来自 {{server}}',
offlineAlbumCount_one: '{{n}} 张专辑',
offlineAlbumCount_plural: '{{n}} 张专辑',
retry: '重试',