feat: redesign libraries page UI with fan thumbnails and modal settings
- Replace thumbnail mosaic with fan/arc layout using series covers as background - Move library settings from dropdown to full-page portal modal with sections - Move FolderPicker modal to portal for proper z-index stacking - Add descriptions to each setting for better clarity - Move delete button to card header, compact config tags - Add i18n keys for new labels and descriptions (en/fr) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -140,6 +140,9 @@ const en: Record<TranslationKey, string> = {
|
||||
"libraries.imminent": "Imminent",
|
||||
"libraries.nextMetadataRefresh": "Next metadata refresh: {{time}}",
|
||||
"libraries.nextMetadataRefreshShort": "Meta.: {{time}}",
|
||||
"libraries.scanLabel": "Scan: {{mode}}",
|
||||
"libraries.watcherLabel": "File watch",
|
||||
"libraries.metaRefreshLabel": "Meta refresh: {{mode}}",
|
||||
"libraries.index": "Index",
|
||||
"libraries.fullIndex": "Full",
|
||||
"libraries.batchMetadata": "Batch metadata",
|
||||
@@ -157,14 +160,22 @@ const en: Record<TranslationKey, string> = {
|
||||
"librarySeries.noBooksInSeries": "No books in this series",
|
||||
|
||||
// Library actions
|
||||
"libraryActions.autoScan": "Auto scan",
|
||||
"libraryActions.fileWatch": "File watch ⚡",
|
||||
"libraryActions.schedule": "📅 Schedule",
|
||||
"libraryActions.settingsTitle": "Library settings",
|
||||
"libraryActions.sectionIndexation": "Indexation",
|
||||
"libraryActions.sectionMetadata": "Metadata",
|
||||
"libraryActions.autoScan": "Scheduled scan",
|
||||
"libraryActions.autoScanDesc": "Automatically scan for new and modified files",
|
||||
"libraryActions.fileWatch": "Real-time file watch",
|
||||
"libraryActions.fileWatchDesc": "Detect file changes instantly via filesystem events",
|
||||
"libraryActions.schedule": "Frequency",
|
||||
"libraryActions.provider": "Provider",
|
||||
"libraryActions.fallback": "Fallback",
|
||||
"libraryActions.providerDesc": "Source used to fetch series and volume metadata",
|
||||
"libraryActions.fallback": "Fallback provider",
|
||||
"libraryActions.fallbackDesc": "Used when the primary provider returns no results",
|
||||
"libraryActions.default": "Default",
|
||||
"libraryActions.none": "None",
|
||||
"libraryActions.metadataRefreshSchedule": "Refresh meta.",
|
||||
"libraryActions.metadataRefreshSchedule": "Auto-refresh",
|
||||
"libraryActions.metadataRefreshDesc": "Periodically re-fetch metadata for existing series",
|
||||
"libraryActions.saving": "Saving...",
|
||||
|
||||
// Library sub-page header
|
||||
|
||||
@@ -138,6 +138,9 @@ const fr = {
|
||||
"libraries.imminent": "Imminent",
|
||||
"libraries.nextMetadataRefresh": "Prochain rafraîchissement méta. : {{time}}",
|
||||
"libraries.nextMetadataRefreshShort": "Méta. : {{time}}",
|
||||
"libraries.scanLabel": "Scan : {{mode}}",
|
||||
"libraries.watcherLabel": "Surveillance fichiers",
|
||||
"libraries.metaRefreshLabel": "Rafraîch. méta. : {{mode}}",
|
||||
"libraries.index": "Indexer",
|
||||
"libraries.fullIndex": "Complet",
|
||||
"libraries.batchMetadata": "Métadonnées en lot",
|
||||
@@ -155,14 +158,22 @@ const fr = {
|
||||
"librarySeries.noBooksInSeries": "Aucun livre dans cette série",
|
||||
|
||||
// Library actions
|
||||
"libraryActions.autoScan": "Scan auto",
|
||||
"libraryActions.fileWatch": "Surveillance fichiers ⚡",
|
||||
"libraryActions.schedule": "📅 Planification",
|
||||
"libraryActions.settingsTitle": "Paramètres de la bibliothèque",
|
||||
"libraryActions.sectionIndexation": "Indexation",
|
||||
"libraryActions.sectionMetadata": "Métadonnées",
|
||||
"libraryActions.autoScan": "Scan planifié",
|
||||
"libraryActions.autoScanDesc": "Scanner automatiquement les fichiers nouveaux et modifiés",
|
||||
"libraryActions.fileWatch": "Surveillance en temps réel",
|
||||
"libraryActions.fileWatchDesc": "Détecter les changements de fichiers instantanément",
|
||||
"libraryActions.schedule": "Fréquence",
|
||||
"libraryActions.provider": "Fournisseur",
|
||||
"libraryActions.fallback": "Secours",
|
||||
"libraryActions.providerDesc": "Source utilisée pour récupérer les métadonnées des séries",
|
||||
"libraryActions.fallback": "Fournisseur de secours",
|
||||
"libraryActions.fallbackDesc": "Utilisé quand le fournisseur principal ne retourne aucun résultat",
|
||||
"libraryActions.default": "Par défaut",
|
||||
"libraryActions.none": "Aucun",
|
||||
"libraryActions.metadataRefreshSchedule": "Rafraîchir méta.",
|
||||
"libraryActions.metadataRefreshSchedule": "Rafraîchissement auto",
|
||||
"libraryActions.metadataRefreshDesc": "Re-télécharger périodiquement les métadonnées existantes",
|
||||
"libraryActions.saving": "Enregistrement...",
|
||||
|
||||
// Library sub-page header
|
||||
|
||||
Reference in New Issue
Block a user