From c4eeb1cfb746a3c9a21694bf57a8875582fafc11 Mon Sep 17 00:00:00 2001 From: advplyr Date: Thu, 17 Mar 2022 12:25:12 -0500 Subject: [PATCH] New data model Book media type contains Audiobooks updates --- .../components/app/BookShelfCategorized.vue | 2 +- client/components/app/BookShelfRow.vue | 4 +- client/components/app/StreamContainer.vue | 2 +- client/components/cards/LazyBookCard.vue | 18 ++--- client/components/controls/FilterSelect.vue | 15 +++- client/components/controls/OrderSelect.vue | 12 +-- client/components/modals/item/EditModal.vue | 10 +-- .../components/modals/item/tabs/Chapters.vue | 81 +++++++++---------- client/components/modals/item/tabs/Files.vue | 52 ++---------- client/components/tables/AudioFilesTable.vue | 2 +- client/components/tables/TracksTable.vue | 12 ++- client/components/widgets/AudiobookData.vue | 76 +++++++++++++++++ client/pages/{item => audiobook}/_id/edit.vue | 20 ++--- client/pages/item/_id/index.vue | 72 +++-------------- client/store/user.js | 5 +- server/ApiController.js | 9 ++- server/CacheManager.js | 4 + server/Server.js | 2 +- server/controllers/AudiobookController.js | 57 +++++++++++++ server/controllers/LibraryController.js | 18 ++--- server/controllers/LibraryItemController.js | 11 --- server/objects/LibraryItem.js | 3 +- server/objects/legacy/Book.js | 4 +- server/objects/mediaTypes/Book.js | 4 + server/objects/metadata/BookMetadata.js | 9 ++- server/objects/user/LibraryItemProgress.js | 18 ++--- server/objects/user/User.js | 1 - server/utils/dbMigration.js | 24 +++++- server/utils/libraryHelpers.js | 36 ++++----- server/utils/parseNameString.js | 11 ++- 30 files changed, 347 insertions(+), 247 deletions(-) create mode 100644 client/components/widgets/AudiobookData.vue rename client/pages/{item => audiobook}/_id/edit.vue (93%) create mode 100644 server/controllers/AudiobookController.js diff --git a/client/components/app/BookShelfCategorized.vue b/client/components/app/BookShelfCategorized.vue index ad5efa29..4f198844 100644 --- a/client/components/app/BookShelfCategorized.vue +++ b/client/components/app/BookShelfCategorized.vue @@ -104,7 +104,7 @@ export default { shelves.push({ id: 'books', label: 'Books', - type: 'books', + type: 'book', entities: this.results.books.map((res) => res.libraryItem) }) } diff --git a/client/components/app/BookShelfRow.vue b/client/components/app/BookShelfRow.vue index 217c67a3..757d8cd8 100644 --- a/client/components/app/BookShelfRow.vue +++ b/client/components/app/BookShelfRow.vue @@ -2,7 +2,7 @@
-
+
@@ -108,7 +108,7 @@ export default { }, updateSelectionMode(val) { var selectedLibraryItems = this.$store.state.selectedLibraryItems - if (this.shelf.type === 'books') { + if (this.shelf.type === 'book') { this.shelf.entities.forEach((ent) => { var component = this.$refs[`shelf-book-${ent.id}`] if (!component || !component.length) return diff --git a/client/components/app/StreamContainer.vue b/client/components/app/StreamContainer.vue index a991a359..45fd7c56 100644 --- a/client/components/app/StreamContainer.vue +++ b/client/components/app/StreamContainer.vue @@ -97,7 +97,7 @@ export default { }, userAudiobook() { if (!this.libraryItemId) return - return this.$store.getters['user/getUserAudiobook'](this.libraryItemId) + return this.$store.getters['user/getUserLibraryItemProgress'](this.libraryItemId) }, userAudiobookCurrentTime() { return this.userAudiobook ? this.userAudiobook.currentTime || 0 : 0 diff --git a/client/components/cards/LazyBookCard.vue b/client/components/cards/LazyBookCard.vue index 0fc37f57..676704a7 100644 --- a/client/components/cards/LazyBookCard.vue +++ b/client/components/cards/LazyBookCard.vue @@ -35,7 +35,7 @@
-
+