-
-
+
+
-
+
{{ title }}
+
@@ -124,14 +125,6 @@
{{ sizePretty }}
-
-
- {{ $strings.LabelAbridged }}
-
-
- {{ isAbridged ? 'Yes' : 'No' }}
-
-
@@ -209,7 +202,7 @@
- more_vert
+ more_horiz
@@ -231,7 +224,7 @@
-
+
@@ -562,12 +555,12 @@ export default {
})
}
- // if (this.userCanDelete) {
- // items.push({
- // text: this.$strings.ButtonDelete,
- // action: 'delete'
- // })
- // }
+ if (this.userCanDelete) {
+ items.push({
+ text: this.$strings.ButtonDelete,
+ action: 'delete'
+ })
+ }
return items
}
@@ -818,14 +811,18 @@ export default {
},
deleteLibraryItem() {
const payload = {
- message: 'This will delete the library item files from your file system. Are you sure?',
- callback: (confirmed) => {
+ message: 'This will delete the library item from the database and your file system. Are you sure?',
+ checkboxLabel: 'Delete from file system. Uncheck to only remove from database.',
+ yesButtonText: this.$strings.ButtonDelete,
+ yesButtonColor: 'error',
+ checkboxDefaultValue: true,
+ callback: (confirmed, hardDelete) => {
if (confirmed) {
this.$axios
- .$delete(`/api/items/${this.libraryItemId}?hard=1`)
+ .$delete(`/api/items/${this.libraryItemId}?hard=${hardDelete ? 1 : 0}`)
.then(() => {
this.$toast.success('Item deleted')
- this.$router.replace(`/library/${this.libraryId}/bookshelf`)
+ this.$router.replace(`/library/${this.libraryId}`)
})
.catch((error) => {
console.error('Failed to delete item', error)
diff --git a/client/strings/de.json b/client/strings/de.json
index 5f09a73d..ae80a73c 100644
--- a/client/strings/de.json
+++ b/client/strings/de.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "Zum Schutz vor Fehlkonfigurationen schlagen Sicherungen fehl, wenn sie die konfigurierte Größe überschreiten.",
"LabelBackupsNumberToKeep": "Anzahl der aufzubewahrenden Sicherungen",
"LabelBackupsNumberToKeepHelp": "Es wird immer nur 1 Sicherung auf einmal entfernt. Wenn Sie bereits mehrere Sicherungen als die definierte max. Anzahl haben, sollten Sie diese manuell entfernen.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Bücher",
"LabelChangePassword": "Passwort ändern",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "gefundene Kapitel",
"LabelChapterTitle": "Kapitelüberschrift",
"LabelClosePlayer": "Player schließen",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Serien zusammenfassen",
"LabelCollections": "Sammlungen",
"LabelComplete": "Vollständig",
@@ -213,6 +217,7 @@
"LabelDuration": "Laufzeit",
"LabelDurationFound": "Gefundene Laufzeit:",
"LabelEdit": "Bearbeiten",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Aktivieren",
"LabelEnd": "Ende",
"LabelEpisode": "Episode",
@@ -230,6 +235,7 @@
"LabelFinished": "beendet",
"LabelFolder": "Ordner",
"LabelFolders": "Verzeichnisse",
+ "LabelFormat": "Format",
"LabelGenre": "Kategorie",
"LabelGenres": "Kategorien",
"LabelHardDeleteFile": "Datei dauerhaft löschen",
@@ -271,10 +277,12 @@
"LabelMediaType": "Medientyp",
"LabelMetadataProvider": "Metadatenanbieter",
"LabelMetaTag": "Meta Schlagwort",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Minute",
"LabelMissing": "Fehlend",
"LabelMissingParts": "Fehlende Teile",
"LabelMore": "Mehr",
+ "LabelMoreInfo": "More Info",
"LabelName": "Name",
"LabelNarrator": "Erzähler",
"LabelNarrators": "Erzähler",
@@ -405,6 +413,7 @@
"LabelTags": "Schlagwörter",
"LabelTagsAccessibleToUser": "Für Benutzer zugängliche Schlagwörter",
"LabelTasks": "Tasks Running",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Gehörte Zeit",
"LabelTimeListenedToday": "Heute gehörte Zeit",
"LabelTimeRemaining": "{0} verbleibend",
diff --git a/client/strings/en-us.json b/client/strings/en-us.json
index 029c0422..07d8bbe9 100644
--- a/client/strings/en-us.json
+++ b/client/strings/en-us.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "As a safeguard against misconfiguration, backups will fail if they exceed the configured size.",
"LabelBackupsNumberToKeep": "Number of backups to keep",
"LabelBackupsNumberToKeepHelp": "Only 1 backup will be removed at a time so if you already have more backups than this you should manually remove them.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Books",
"LabelChangePassword": "Change Password",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "chapters found",
"LabelChapterTitle": "Chapter Title",
"LabelClosePlayer": "Close player",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Collapse Series",
"LabelCollections": "Collections",
"LabelComplete": "Complete",
@@ -213,6 +217,7 @@
"LabelDuration": "Duration",
"LabelDurationFound": "Duration found:",
"LabelEdit": "Edit",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Enable",
"LabelEnd": "End",
"LabelEpisode": "Episode",
@@ -230,6 +235,7 @@
"LabelFinished": "Finished",
"LabelFolder": "Folder",
"LabelFolders": "Folders",
+ "LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Genres",
"LabelHardDeleteFile": "Hard delete file",
@@ -271,10 +277,12 @@
"LabelMediaType": "Media Type",
"LabelMetadataProvider": "Metadata Provider",
"LabelMetaTag": "Meta Tag",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Minute",
"LabelMissing": "Missing",
"LabelMissingParts": "Missing Parts",
"LabelMore": "More",
+ "LabelMoreInfo": "More Info",
"LabelName": "Name",
"LabelNarrator": "Narrator",
"LabelNarrators": "Narrators",
@@ -405,6 +413,7 @@
"LabelTags": "Tags",
"LabelTagsAccessibleToUser": "Tags Accessible to User",
"LabelTasks": "Tasks Running",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Time Listened",
"LabelTimeListenedToday": "Time Listened Today",
"LabelTimeRemaining": "{0} remaining",
diff --git a/client/strings/es.json b/client/strings/es.json
index b74d8f27..99d25e6f 100644
--- a/client/strings/es.json
+++ b/client/strings/es.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "Como protección contra una configuración errónea, los respaldos fallaran si se excede el tamaño configurado.",
"LabelBackupsNumberToKeep": "Numero de respaldos para conservar",
"LabelBackupsNumberToKeepHelp": "Solamente 1 respaldo se removerá a la vez. Si tiene mas respaldos guardados, necesita removerlos manualmente.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Libros",
"LabelChangePassword": "Cambiar Contraseña",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "Capitulo Encontrado",
"LabelChapterTitle": "Titulo del Capitulo",
"LabelClosePlayer": "Close player",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Colapsar Series",
"LabelCollections": "Colecciones",
"LabelComplete": "Completo",
@@ -213,6 +217,7 @@
"LabelDuration": "Duración",
"LabelDurationFound": "Duración Comprobada:",
"LabelEdit": "Editar",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Habilitar",
"LabelEnd": "Fin",
"LabelEpisode": "Episodio",
@@ -230,6 +235,7 @@
"LabelFinished": "Terminado",
"LabelFolder": "Carpeta",
"LabelFolders": "Carpetas",
+ "LabelFormat": "Format",
"LabelGenre": "Genero",
"LabelGenres": "Géneros",
"LabelHardDeleteFile": "Eliminar Definitivamente",
@@ -271,10 +277,12 @@
"LabelMediaType": "Tipo de Multimedia",
"LabelMetadataProvider": "Proveedor de Metadata",
"LabelMetaTag": "Meta Tag",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Minuto",
"LabelMissing": "Ausente",
"LabelMissingParts": "Partes Ausentes",
"LabelMore": "Mas",
+ "LabelMoreInfo": "More Info",
"LabelName": "Nombre",
"LabelNarrator": "Narrador",
"LabelNarrators": "Narradores",
@@ -405,6 +413,7 @@
"LabelTags": "Etiquetas",
"LabelTagsAccessibleToUser": "Etiquetas Accessible para el Usuario",
"LabelTasks": "Tareas Corriendo",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Tiempo Escuchando",
"LabelTimeListenedToday": "Tiempo Escuchando Hoy",
"LabelTimeRemaining": "{0} restante",
diff --git a/client/strings/fr.json b/client/strings/fr.json
index 397b5958..2488a00f 100644
--- a/client/strings/fr.json
+++ b/client/strings/fr.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "Afin de prévenir les mauvaises configuration, la sauvegarde échouera si elle excède la taille limite.",
"LabelBackupsNumberToKeep": "Nombre de sauvegardes à maintenir",
"LabelBackupsNumberToKeepHelp": "Une seule sauvegarde sera effacée à la fois. Si vous avez plus de sauvegardes à effacer, vous devrez le faire manuellement.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Livres",
"LabelChangePassword": "Modifier le mot de passe",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "Chapitres trouvés",
"LabelChapterTitle": "Titres du chapitre",
"LabelClosePlayer": "Fermer le lecteur",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Réduire les séries",
"LabelCollections": "Collections",
"LabelComplete": "Complet",
@@ -213,6 +217,7 @@
"LabelDuration": "Durée",
"LabelDurationFound": "Durée trouvée :",
"LabelEdit": "Modifier",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Activer",
"LabelEnd": "Fin",
"LabelEpisode": "Épisode",
@@ -230,6 +235,7 @@
"LabelFinished": "Fini(e)",
"LabelFolder": "Dossier",
"LabelFolders": "Dossiers",
+ "LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Genres",
"LabelHardDeleteFile": "Suppression du fichier",
@@ -271,10 +277,12 @@
"LabelMediaType": "Type de média",
"LabelMetadataProvider": "Fournisseur de métadonnées",
"LabelMetaTag": "Etiquette de métadonnée",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Minute",
"LabelMissing": "Manquant",
"LabelMissingParts": "Parties manquantes",
"LabelMore": "Plus",
+ "LabelMoreInfo": "More Info",
"LabelName": "Nom",
"LabelNarrator": "Narrateur",
"LabelNarrators": "Narrateurs",
@@ -405,6 +413,7 @@
"LabelTags": "Étiquettes",
"LabelTagsAccessibleToUser": "Étiquettes accessibles à l’utilisateur",
"LabelTasks": "Tasks Running",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Temps d’écoute",
"LabelTimeListenedToday": "Nombres d’écoutes Aujourd’hui",
"LabelTimeRemaining": "{0} restantes",
diff --git a/client/strings/gu.json b/client/strings/gu.json
index ca8be820..c1d80158 100644
--- a/client/strings/gu.json
+++ b/client/strings/gu.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "As a safeguard against misconfiguration, backups will fail if they exceed the configured size.",
"LabelBackupsNumberToKeep": "Number of backups to keep",
"LabelBackupsNumberToKeepHelp": "Only 1 backup will be removed at a time so if you already have more backups than this you should manually remove them.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Books",
"LabelChangePassword": "Change Password",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "chapters found",
"LabelChapterTitle": "Chapter Title",
"LabelClosePlayer": "Close player",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Collapse Series",
"LabelCollections": "Collections",
"LabelComplete": "Complete",
@@ -213,6 +217,7 @@
"LabelDuration": "Duration",
"LabelDurationFound": "Duration found:",
"LabelEdit": "Edit",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Enable",
"LabelEnd": "End",
"LabelEpisode": "Episode",
@@ -230,6 +235,7 @@
"LabelFinished": "Finished",
"LabelFolder": "Folder",
"LabelFolders": "Folders",
+ "LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Genres",
"LabelHardDeleteFile": "Hard delete file",
@@ -271,10 +277,12 @@
"LabelMediaType": "Media Type",
"LabelMetadataProvider": "Metadata Provider",
"LabelMetaTag": "Meta Tag",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Minute",
"LabelMissing": "Missing",
"LabelMissingParts": "Missing Parts",
"LabelMore": "More",
+ "LabelMoreInfo": "More Info",
"LabelName": "Name",
"LabelNarrator": "Narrator",
"LabelNarrators": "Narrators",
@@ -405,6 +413,7 @@
"LabelTags": "Tags",
"LabelTagsAccessibleToUser": "Tags Accessible to User",
"LabelTasks": "Tasks Running",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Time Listened",
"LabelTimeListenedToday": "Time Listened Today",
"LabelTimeRemaining": "{0} remaining",
diff --git a/client/strings/hi.json b/client/strings/hi.json
index 29092ed7..928d9cf2 100644
--- a/client/strings/hi.json
+++ b/client/strings/hi.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "As a safeguard against misconfiguration, backups will fail if they exceed the configured size.",
"LabelBackupsNumberToKeep": "Number of backups to keep",
"LabelBackupsNumberToKeepHelp": "Only 1 backup will be removed at a time so if you already have more backups than this you should manually remove them.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Books",
"LabelChangePassword": "Change Password",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "chapters found",
"LabelChapterTitle": "Chapter Title",
"LabelClosePlayer": "Close player",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Collapse Series",
"LabelCollections": "Collections",
"LabelComplete": "Complete",
@@ -213,6 +217,7 @@
"LabelDuration": "Duration",
"LabelDurationFound": "Duration found:",
"LabelEdit": "Edit",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Enable",
"LabelEnd": "End",
"LabelEpisode": "Episode",
@@ -230,6 +235,7 @@
"LabelFinished": "Finished",
"LabelFolder": "Folder",
"LabelFolders": "Folders",
+ "LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Genres",
"LabelHardDeleteFile": "Hard delete file",
@@ -271,10 +277,12 @@
"LabelMediaType": "Media Type",
"LabelMetadataProvider": "Metadata Provider",
"LabelMetaTag": "Meta Tag",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Minute",
"LabelMissing": "Missing",
"LabelMissingParts": "Missing Parts",
"LabelMore": "More",
+ "LabelMoreInfo": "More Info",
"LabelName": "Name",
"LabelNarrator": "Narrator",
"LabelNarrators": "Narrators",
@@ -405,6 +413,7 @@
"LabelTags": "Tags",
"LabelTagsAccessibleToUser": "Tags Accessible to User",
"LabelTasks": "Tasks Running",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Time Listened",
"LabelTimeListenedToday": "Time Listened Today",
"LabelTimeRemaining": "{0} remaining",
diff --git a/client/strings/hr.json b/client/strings/hr.json
index 97c740ba..45fffdf4 100644
--- a/client/strings/hr.json
+++ b/client/strings/hr.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "As a safeguard against misconfiguration, backups will fail if they exceed the configured size.",
"LabelBackupsNumberToKeep": "Broj backupa zadržati",
"LabelBackupsNumberToKeepHelp": "Samo 1 backup će biti odjednom obrisan. Ako koristite više njih, morati ćete ih ručno ukloniti.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Knjige",
"LabelChangePassword": "Promijeni lozinku",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "poglavlja pronađena",
"LabelChapterTitle": "Ime poglavlja",
"LabelClosePlayer": "Close player",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Collapse Series",
"LabelCollections": "Kolekcije",
"LabelComplete": "Complete",
@@ -213,6 +217,7 @@
"LabelDuration": "Trajanje",
"LabelDurationFound": "Pronađeno trajanje:",
"LabelEdit": "Uredi",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Uključi",
"LabelEnd": "Kraj",
"LabelEpisode": "Epizoda",
@@ -230,6 +235,7 @@
"LabelFinished": "Finished",
"LabelFolder": "Folder",
"LabelFolders": "Folderi",
+ "LabelFormat": "Format",
"LabelGenre": "Genre",
"LabelGenres": "Žanrovi",
"LabelHardDeleteFile": "Obriši datoteku zauvijek",
@@ -271,10 +277,12 @@
"LabelMediaType": "Media Type",
"LabelMetadataProvider": "Poslužitelj metapodataka ",
"LabelMetaTag": "Meta Tag",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Minuta",
"LabelMissing": "Nedostaje",
"LabelMissingParts": "Nedostajali dijelovi",
"LabelMore": "Više",
+ "LabelMoreInfo": "More Info",
"LabelName": "Ime",
"LabelNarrator": "Narrator",
"LabelNarrators": "Naratori",
@@ -405,6 +413,7 @@
"LabelTags": "Tags",
"LabelTagsAccessibleToUser": "Tags dostupni korisniku",
"LabelTasks": "Tasks Running",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Vremena odslušano",
"LabelTimeListenedToday": "Vremena odslušano danas",
"LabelTimeRemaining": "{0} preostalo",
diff --git a/client/strings/it.json b/client/strings/it.json
index b81ca9e5..6ca8ae99 100644
--- a/client/strings/it.json
+++ b/client/strings/it.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "Come protezione contro gli errori di config, i backup falliranno se superano la dimensione configurata.",
"LabelBackupsNumberToKeep": "Numero di backup da mantenere",
"LabelBackupsNumberToKeepHelp": "Verrà rimosso solo 1 backup alla volta, quindi se hai più backup, dovrai rimuoverli manualmente.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Libri",
"LabelChangePassword": "Cambia Password",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "Capitoli Trovati",
"LabelChapterTitle": "Titoli dei Capitoli",
"LabelClosePlayer": "Chiudi player",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Comprimi Serie",
"LabelCollections": "Raccolte",
"LabelComplete": "Completo",
@@ -213,6 +217,7 @@
"LabelDuration": "Durata",
"LabelDurationFound": "Durata Trovata:",
"LabelEdit": "Modifica",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Abilita",
"LabelEnd": "Fine",
"LabelEpisode": "Episodio",
@@ -230,6 +235,7 @@
"LabelFinished": "Finita",
"LabelFolder": "Cartella",
"LabelFolders": "Cartelle",
+ "LabelFormat": "Format",
"LabelGenre": "Genere",
"LabelGenres": "Generi",
"LabelHardDeleteFile": "Elimina Definitivamente",
@@ -271,10 +277,12 @@
"LabelMediaType": "Tipo Media",
"LabelMetadataProvider": "Metadata Provider",
"LabelMetaTag": "Meta Tag",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Minuto",
"LabelMissing": "Altro",
"LabelMissingParts": "Parti rimantenti",
"LabelMore": "Molto",
+ "LabelMoreInfo": "More Info",
"LabelName": "Nome",
"LabelNarrator": "Narratore",
"LabelNarrators": "Narratori",
@@ -405,6 +413,7 @@
"LabelTags": "Tags",
"LabelTagsAccessibleToUser": "Tags permessi agli Utenti",
"LabelTasks": "Processi in esecuzione",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Tempo di Ascolto",
"LabelTimeListenedToday": "Tempo di Ascolto Oggi",
"LabelTimeRemaining": "{0} rimanente",
diff --git a/client/strings/pl.json b/client/strings/pl.json
index 12402df4..5b52c210 100644
--- a/client/strings/pl.json
+++ b/client/strings/pl.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "Jako zabezpieczenie przed błędną konfiguracją, kopie zapasowe nie będą wykonywane, jeśli przekroczą skonfigurowany rozmiar.",
"LabelBackupsNumberToKeep": "Liczba kopii zapasowych do przechowywania",
"LabelBackupsNumberToKeepHelp": "Tylko 1 kopia zapasowa zostanie usunięta, więc jeśli masz już więcej kopii zapasowych, powinieneś je ręcznie usunąć.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Książki",
"LabelChangePassword": "Zmień hasło",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "Znalezione rozdziały",
"LabelChapterTitle": "Tytuł rozdziału",
"LabelClosePlayer": "Zamknij odtwarzacz",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Podsumuj serię",
"LabelCollections": "Kolekcje",
"LabelComplete": "Ukończone",
@@ -213,6 +217,7 @@
"LabelDuration": "Czas trwania",
"LabelDurationFound": "Znaleziona długość:",
"LabelEdit": "Edytuj",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Włącz",
"LabelEnd": "Zakończ",
"LabelEpisode": "Odcinek",
@@ -230,6 +235,7 @@
"LabelFinished": "Zakończone",
"LabelFolder": "Folder",
"LabelFolders": "Foldery",
+ "LabelFormat": "Format",
"LabelGenre": "Gatunek",
"LabelGenres": "Gatunki",
"LabelHardDeleteFile": "Usuń trwale plik",
@@ -271,10 +277,12 @@
"LabelMediaType": "Typ mediów",
"LabelMetadataProvider": "Dostawca metadanych",
"LabelMetaTag": "Tag",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Minuta",
"LabelMissing": "Brakujący",
"LabelMissingParts": "Brakujące cześci",
"LabelMore": "Więcej",
+ "LabelMoreInfo": "More Info",
"LabelName": "Nazwa",
"LabelNarrator": "Narrator",
"LabelNarrators": "Lektorzy",
@@ -405,6 +413,7 @@
"LabelTags": "Tagi",
"LabelTagsAccessibleToUser": "Tagi dostępne dla użytkownika",
"LabelTasks": "Tasks Running",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Czas odtwarzania",
"LabelTimeListenedToday": "Czas odtwarzania dzisiaj",
"LabelTimeRemaining": "Pozostało {0}",
diff --git a/client/strings/ru.json b/client/strings/ru.json
index 45c64498..1a04e611 100644
--- a/client/strings/ru.json
+++ b/client/strings/ru.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "В качестве защиты процесс бэкапирования будет завершаться ошибкой, если будет превышен настроенный размер.",
"LabelBackupsNumberToKeep": "Сохранять бэкапов",
"LabelBackupsNumberToKeepHelp": "За один раз только 1 бэкап будет удален, так что если у вас будет больше бэкапов, то их нужно удалить вручную.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "Книги",
"LabelChangePassword": "Изменить пароль",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "глав найдено",
"LabelChapterTitle": "Название главы",
"LabelClosePlayer": "Закрыть проигрыватель",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "Свернуть серии",
"LabelCollections": "Коллекции",
"LabelComplete": "Завершить",
@@ -213,6 +217,7 @@
"LabelDuration": "Длина",
"LabelDurationFound": "Найденная длина:",
"LabelEdit": "Редактировать",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "Включить",
"LabelEnd": "Конец",
"LabelEpisode": "Эпизод",
@@ -230,6 +235,7 @@
"LabelFinished": "Закончен",
"LabelFolder": "Папка",
"LabelFolders": "Папки",
+ "LabelFormat": "Format",
"LabelGenre": "Жанр",
"LabelGenres": "Жанры",
"LabelHardDeleteFile": "Жесткое удаление файла",
@@ -271,10 +277,12 @@
"LabelMediaType": "Тип медиа",
"LabelMetadataProvider": "Провайдер",
"LabelMetaTag": "Мета тег",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "Минуты",
"LabelMissing": "Потеряно",
"LabelMissingParts": "Потерянные части",
"LabelMore": "Еще",
+ "LabelMoreInfo": "More Info",
"LabelName": "Имя",
"LabelNarrator": "Читает",
"LabelNarrators": "Чтецы",
@@ -405,6 +413,7 @@
"LabelTags": "Теги",
"LabelTagsAccessibleToUser": "Теги доступные для пользователя",
"LabelTasks": "Запущенные задачи",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "Время прослушивания",
"LabelTimeListenedToday": "Время прослушивания сегодня",
"LabelTimeRemaining": "{0} осталось",
diff --git a/client/strings/zh-cn.json b/client/strings/zh-cn.json
index bf84b937..87293a35 100644
--- a/client/strings/zh-cn.json
+++ b/client/strings/zh-cn.json
@@ -183,11 +183,15 @@
"LabelBackupsMaxBackupSizeHelp": "为了防止错误配置, 如果备份超过配置的大小, 备份将失败.",
"LabelBackupsNumberToKeep": "要保留的备份个数",
"LabelBackupsNumberToKeepHelp": "一次只能删除一个备份, 因此如果你已经有超过此数量的备份, 则应手动删除它们.",
+ "LabelBitrate": "Bitrate",
"LabelBooks": "图书",
"LabelChangePassword": "修改密码",
+ "LabelChannels": "Channels",
+ "LabelChapters": "Chapters",
"LabelChaptersFound": "找到的章节",
"LabelChapterTitle": "章节标题",
"LabelClosePlayer": "关闭播放器",
+ "LabelCodec": "Codec",
"LabelCollapseSeries": "折叠系列",
"LabelCollections": "收藏",
"LabelComplete": "已完成",
@@ -213,6 +217,7 @@
"LabelDuration": "持续时间",
"LabelDurationFound": "找到持续时间:",
"LabelEdit": "编辑",
+ "LabelEmbeddedCover": "Embedded Cover",
"LabelEnable": "启用",
"LabelEnd": "结束",
"LabelEpisode": "剧集",
@@ -230,6 +235,7 @@
"LabelFinished": "已听完",
"LabelFolder": "文件夹",
"LabelFolders": "文件夹",
+ "LabelFormat": "Format",
"LabelGenre": "流派",
"LabelGenres": "流派",
"LabelHardDeleteFile": "完全删除文件",
@@ -271,10 +277,12 @@
"LabelMediaType": "媒体类型",
"LabelMetadataProvider": "元数据提供者",
"LabelMetaTag": "元数据标签",
+ "LabelMetaTags": "Meta Tags",
"LabelMinute": "分钟",
"LabelMissing": "丢失",
"LabelMissingParts": "丢失的部分",
"LabelMore": "更多",
+ "LabelMoreInfo": "More Info",
"LabelName": "名称",
"LabelNarrator": "演播者",
"LabelNarrators": "演播者",
@@ -405,6 +413,7 @@
"LabelTags": "标签",
"LabelTagsAccessibleToUser": "用户可访问的标签",
"LabelTasks": "正在运行的任务",
+ "LabelTimeBase": "Time Base",
"LabelTimeListened": "收听时间",
"LabelTimeListenedToday": "今日收听的时间",
"LabelTimeRemaining": "剩余 {0}",
diff --git a/server/controllers/LibraryItemController.js b/server/controllers/LibraryItemController.js
index 842db177..19f287f0 100644
--- a/server/controllers/LibraryItemController.js
+++ b/server/controllers/LibraryItemController.js
@@ -66,7 +66,15 @@ class LibraryItemController {
}
async delete(req, res) {
+ const hardDelete = req.query.hard == 1 // Delete from file system
+ const libraryItemPath = req.libraryItem.path
await this.handleDeleteLibraryItem(req.libraryItem)
+ if (hardDelete) {
+ Logger.info(`[LibraryItemController] Deleting library item from file system at "${libraryItemPath}"`)
+ await fs.remove(libraryItemPath).catch((error) => {
+ Logger.error(`[LibraryItemController] Failed to delete library item from file system at "${libraryItemPath}"`, error)
+ })
+ }
res.sendStatus(200)
}
@@ -292,19 +300,27 @@ class LibraryItemController {
Logger.warn(`[LibraryItemController] User attempted to delete without permission`, req.user)
return res.sendStatus(403)
}
+ const hardDelete = req.query.hard == 1 // Delete files from filesystem
- var { libraryItemIds } = req.body
+ const { libraryItemIds } = req.body
if (!libraryItemIds || !libraryItemIds.length) {
return res.sendStatus(500)
}
- var itemsToDelete = this.db.libraryItems.filter(li => libraryItemIds.includes(li.id))
+ const itemsToDelete = this.db.libraryItems.filter(li => libraryItemIds.includes(li.id))
if (!itemsToDelete.length) {
return res.sendStatus(404)
}
for (let i = 0; i < itemsToDelete.length; i++) {
+ const libraryItemPath = itemsToDelete[i].path
Logger.info(`[LibraryItemController] Deleting Library Item "${itemsToDelete[i].media.metadata.title}"`)
await this.handleDeleteLibraryItem(itemsToDelete[i])
+ if (hardDelete) {
+ Logger.info(`[LibraryItemController] Deleting library item from file system at "${libraryItemPath}"`)
+ await fs.remove(libraryItemPath).catch((error) => {
+ Logger.error(`[LibraryItemController] Failed to delete library item from file system at "${libraryItemPath}"`, error)
+ })
+ }
}
res.sendStatus(200)
}
@@ -489,7 +505,9 @@ class LibraryItemController {
return res.sendStatus(404)
}
- await fs.remove(libraryFile.metadata.path)
+ await fs.remove(libraryFile.metadata.path).catch((error) => {
+ Logger.error(`[LibraryItemController] Failed to delete library file at "${libraryFile.metadata.path}"`, error)
+ })
req.libraryItem.removeLibraryFile(req.params.ino)
if (req.libraryItem.media.removeFileWithInode(req.params.ino)) {