From 37d302130252da144b5d2d8fbef0b2321c5efd8a Mon Sep 17 00:00:00 2001 From: advplyr Date: Sat, 4 Dec 2021 19:56:29 -0600 Subject: [PATCH] Add:Lazy bookshelf --- Server.js | 8 + assets/app.css | 14 + components/app/Appbar.vue | 2 - components/app/Bookshelf.vue | 3 +- components/app/BookshelfList.vue | 5 +- components/app/SideDrawer.vue | 31 +- components/bookshelf/LazyBookshelf.vue | 400 ++++++++++++++++++ components/bookshelf/Shelf.vue | 32 +- components/cards/AuthorSearchCard.vue | 46 ++ components/cards/BookCard.vue | 40 +- components/cards/BookSearchCard.vue | 89 ++++ components/cards/LazyBookCard.vue | 264 ++++++++++++ components/cards/LazyCollectionCard.vue | 82 ++++ components/cards/LazySeriesCard.vue | 100 +++++ components/cards/SeriesSearchCard.vue | 39 ++ components/covers/BookCover.vue | 383 +++++++++++++++++ components/covers/CollectionCover.vue | 61 +++ components/covers/GroupCover.vue | 225 ++++++++++ components/home/BookshelfToolbar.vue | 46 +- components/modals/FilterModal.vue | 24 +- components/modals/LibrariesModal.vue | 6 +- components/tables/CollectionBooksTable.vue | 2 +- components/widgets/ConnectionIcon.vue | 117 ----- layouts/default.vue | 34 +- mixins/bookshelfCardsHelpers.js | 87 ++++ nuxt.config.js | 3 +- objects/TouchEvent.js | 65 +++ pages/bookshelf.vue | 62 +-- pages/bookshelf/collections.vue | 5 +- pages/bookshelf/index.vue | 96 ++++- pages/bookshelf/library.vue | 74 +--- pages/bookshelf/series/_id.vue | 19 + .../{series.vue => series/index.vue} | 5 +- pages/downloads.vue | 10 +- pages/index.vue | 91 +--- pages/search.vue | 74 ++-- plugins/constants.js | 26 ++ plugins/init.client.js | 2 + store/audiobooks.js | 174 -------- store/downloads.js | 24 +- store/index.js | 16 +- store/libraries.js | 36 +- store/user.js | 8 +- 43 files changed, 2264 insertions(+), 666 deletions(-) create mode 100644 components/bookshelf/LazyBookshelf.vue create mode 100644 components/cards/AuthorSearchCard.vue create mode 100644 components/cards/BookSearchCard.vue create mode 100644 components/cards/LazyBookCard.vue create mode 100644 components/cards/LazyCollectionCard.vue create mode 100644 components/cards/LazySeriesCard.vue create mode 100644 components/cards/SeriesSearchCard.vue create mode 100644 components/covers/BookCover.vue create mode 100644 components/covers/CollectionCover.vue create mode 100644 components/covers/GroupCover.vue delete mode 100644 components/widgets/ConnectionIcon.vue create mode 100644 mixins/bookshelfCardsHelpers.js create mode 100644 objects/TouchEvent.js create mode 100644 pages/bookshelf/series/_id.vue rename pages/bookshelf/{series.vue => series/index.vue} (96%) create mode 100644 plugins/constants.js diff --git a/Server.js b/Server.js index 760db0c5..424fed3d 100644 --- a/Server.js +++ b/Server.js @@ -14,6 +14,7 @@ class Server extends EventEmitter { this.user = null this.connected = false + this.initialized = false this.stream = null @@ -231,6 +232,8 @@ class Server extends EventEmitter { console.log('[SOCKET] Socket Disconnected: ' + reason) this.connected = false this.emit('connected', false) + this.emit('initialized', false) + this.initialized = false this.store.commit('setSocketConnected', false) // this.socket.removeAllListeners() @@ -246,6 +249,11 @@ class Server extends EventEmitter { this.store.commit('setStreamAudiobook', data.stream.audiobook) this.emit('initialStream', data.stream) } + if (data.serverSettings) { + this.store.commit('setServerSettings', data.serverSettings) + } + this.initialized = true + this.emit('initialized', true) }) this.socket.on('user_updated', (user) => { diff --git a/assets/app.css b/assets/app.css index 5184f350..b9d89c28 100644 --- a/assets/app.css +++ b/assets/app.css @@ -19,6 +19,9 @@ .box-shadow-book { box-shadow: 4px 1px 8px #11111166, -4px 1px 8px #11111166, 1px -4px 8px #11111166; } +.shadow-height { + height: calc(100% - 4px); +} .bookshelfRow { background-image: url(/wood_panels.jpg); @@ -42,4 +45,15 @@ Bookshelf Label border-color: rgba(255, 244, 182, 0.6); border-style: solid; color: #fce3a6; +} + +.cover-bg { + width: calc(100% + 40px); + height: calc(100% + 40px); + top: -20px; + left: -20px; + background-size: 100% 100%; + background-position: center; + opacity: 1; + filter: blur(20px); } \ No newline at end of file diff --git a/components/app/Appbar.vue b/components/app/Appbar.vue index 21b59d65..03fb8e88 100644 --- a/components/app/Appbar.vue +++ b/components/app/Appbar.vue @@ -22,8 +22,6 @@ - - search diff --git a/components/app/Bookshelf.vue b/components/app/Bookshelf.vue index d7850545..8508bb07 100644 --- a/components/app/Bookshelf.vue +++ b/components/app/Bookshelf.vue @@ -54,7 +54,7 @@ export default { var booksPerShelf = Math.floor(this.pageWidth / (this.cardWidth + 32)) var groupedBooks = [] - var audiobooksSorted = this.$store.getters['audiobooks/getFilteredAndSorted']() + var audiobooksSorted = [] this.currFilterOrderKey = this.filterOrderKey var numGroups = Math.ceil(audiobooksSorted.length / booksPerShelf) @@ -86,7 +86,6 @@ export default { if (currentLibrary) { this.$store.commit('libraries/setCurrentLibrary', currentLibrary.id) } - this.$store.dispatch('audiobooks/load') }, socketConnected(isConnected) { if (isConnected) { diff --git a/components/app/BookshelfList.vue b/components/app/BookshelfList.vue index 9db8e510..6ae91184 100644 --- a/components/app/BookshelfList.vue +++ b/components/app/BookshelfList.vue @@ -51,9 +51,7 @@ export default { mobileFilterBy: 'all' }) }, - calcShelves() { - this.audiobooks = this.$store.getters['audiobooks/getFilteredAndSorted']() - }, + calcShelves() {}, audiobooksUpdated() { this.calcShelves() }, @@ -76,7 +74,6 @@ export default { if (currentLibrary) { this.$store.commit('libraries/setCurrentLibrary', currentLibrary.id) } - this.$store.dispatch('audiobooks/load') }, socketConnected(isConnected) { if (isConnected) { diff --git a/components/app/SideDrawer.vue b/components/app/SideDrawer.vue index 4a047a27..4bf09093 100644 --- a/components/app/SideDrawer.vue +++ b/components/app/SideDrawer.vue @@ -28,15 +28,25 @@ diff --git a/components/bookshelf/Shelf.vue b/components/bookshelf/Shelf.vue index d112903d..41cef813 100644 --- a/components/bookshelf/Shelf.vue +++ b/components/bookshelf/Shelf.vue @@ -1,8 +1,10 @@