diff --git a/client/assets/app.css b/client/assets/app.css
index 0a572ff8..a7dda9d0 100644
--- a/client/assets/app.css
+++ b/client/assets/app.css
@@ -151,3 +151,18 @@ input[type=number] {
.box-shadow-side {
box-shadow: 5px 0px 5px #11111166;
}
+
+/*
+Bookshelf Label
+*/
+.categoryPlacard {
+ background-image: url(https://image.freepik.com/free-photo/brown-wooden-textured-flooring-background_53876-128537.jpg);
+ letter-spacing: 1px;
+}
+.shinyBlack {
+ background-color: #2d3436;
+ background-image: linear-gradient(315deg, #19191a 0%, rgb(15, 15, 15) 74%);
+ border-color: rgba(255, 244, 182, 0.6);
+ border-style: solid;
+ color: #fce3a6;
+}
\ No newline at end of file
diff --git a/client/components/app/BookListRow.vue b/client/components/app/BookListRow.vue
index 17519e9a..0a44809d 100644
--- a/client/components/app/BookListRow.vue
+++ b/client/components/app/BookListRow.vue
@@ -8,7 +8,7 @@
-
+
|
diff --git a/client/components/app/BookShelf.vue b/client/components/app/BookShelf.vue
index 19f62cc5..cda2031d 100644
--- a/client/components/app/BookShelf.vue
+++ b/client/components/app/BookShelf.vue
@@ -32,12 +32,14 @@
@@ -131,7 +133,9 @@ export default {
return 16 * this.sizeMultiplier
},
bookWidth() {
- var _width = this.bookCoverWidth + this.paddingX * 2
+ var coverWidth = this.bookCoverWidth
+ if (this.page === 'collections') coverWidth *= 2
+ var _width = coverWidth + this.paddingX * 2
return this.showGroups ? _width * 1.6 : _width
},
isSelectionMode() {
@@ -149,6 +153,9 @@ export default {
showGroups() {
return this.page !== '' && this.page !== 'search' && !this.selectedSeries
},
+ isCollections() {
+ return this.page === 'collections'
+ },
categorizedShelves() {
if (this.page !== 'search') return []
var audiobookSearchResults = this.searchResults ? this.searchResults.audiobooks || [] : []
@@ -198,12 +205,7 @@ export default {
var audiobookSearchResults = this.searchResults ? this.searchResults.audiobooks || [] : []
return audiobookSearchResults.map((absr) => absr.audiobook)
} else if (this.page === 'collections') {
- return (this.$store.state.user.collections || []).map((c) => {
- return {
- type: 'collection',
- ...c
- }
- })
+ return this.$store.state.user.collections || []
} else {
var seriesGroups = this.$store.getters['audiobooks/getSeriesGroups']()
if (this.selectedSeries) {
@@ -299,6 +301,11 @@ export default {
console.log('[AudioBookshelf] Audiobooks Updated')
this.setBookshelfEntities()
},
+ collectionsUpdated() {
+ if (!this.isCollections) return
+ console.log('[AudioBookshelf] Collections Updated')
+ this.setBookshelfEntities()
+ },
buildSearchParams() {
if (this.page === 'search' || this.page === 'series' || this.page === 'collections') {
return ''
@@ -357,6 +364,7 @@ export default {
window.addEventListener('resize', this.resize)
this.$store.commit('audiobooks/addListener', { id: 'bookshelf', meth: this.audiobooksUpdated })
this.$store.commit('user/addSettingsListener', { id: 'bookshelf', meth: this.settingsUpdated })
+ this.$store.commit('user/addCollectionsListener', { id: 'bookshelf', meth: this.collectionsUpdated })
this.init()
},
@@ -364,6 +372,7 @@ export default {
window.removeEventListener('resize', this.resize)
this.$store.commit('audiobooks/removeListener', 'bookshelf')
this.$store.commit('user/removeSettingsListener', 'bookshelf')
+ this.$store.commit('user/removeCollectionsListener', 'bookshelf')
}
}
diff --git a/client/components/app/BookShelfRow.vue b/client/components/app/BookShelfRow.vue
index cc11417b..207c795d 100644
--- a/client/components/app/BookShelfRow.vue
+++ b/client/components/app/BookShelfRow.vue
@@ -139,17 +139,7 @@ export default {
/* background: linear-gradient(180deg, rgb(114, 85, 59) 0%, rgb(73, 48, 22) 17%, rgb(71, 43, 15) 88%, rgb(61, 41, 20) 100%); */
box-shadow: 2px 14px 8px #111111aa;
}
-.categoryPlacard {
- background-image: url(https://image.freepik.com/free-photo/brown-wooden-textured-flooring-background_53876-128537.jpg);
- letter-spacing: 1px;
-}
-.shinyBlack {
- background-color: #2d3436;
- background-image: linear-gradient(315deg, #19191a 0%, rgb(15, 15, 15) 74%);
- border-color: rgba(255, 244, 182, 0.6);
- border-style: solid;
- color: #fce3a6;
-}
+
.book-shelf-arrow-right {
height: calc(100% - 24px);
background: rgb(48, 48, 48);
diff --git a/client/components/app/StreamContainer.vue b/client/components/app/StreamContainer.vue
index 03d84907..2f68eca7 100644
--- a/client/components/app/StreamContainer.vue
+++ b/client/components/app/StreamContainer.vue
@@ -1,7 +1,7 @@
-
+
diff --git a/client/components/cards/AudiobookSearchCard.vue b/client/components/cards/AudiobookSearchCard.vue
index a7de5c21..784d74d3 100644
--- a/client/components/cards/AudiobookSearchCard.vue
+++ b/client/components/cards/AudiobookSearchCard.vue
@@ -1,6 +1,6 @@
-
+
{{ title }}
diff --git a/client/components/cards/BookCard.vue b/client/components/cards/BookCard.vue
index f0803efc..94d36c74 100644
--- a/client/components/cards/BookCard.vue
+++ b/client/components/cards/BookCard.vue
@@ -11,7 +11,7 @@
-
+
diff --git a/client/components/cards/CollectionCard.vue b/client/components/cards/CollectionCard.vue
new file mode 100644
index 00000000..a24ed47c
--- /dev/null
+++ b/client/components/cards/CollectionCard.vue
@@ -0,0 +1,112 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/client/components/cards/GroupCard.vue b/client/components/cards/GroupCard.vue
index 7f5cc981..3e2143b3 100644
--- a/client/components/cards/GroupCard.vue
+++ b/client/components/cards/GroupCard.vue
@@ -2,10 +2,10 @@
-
-
+
+
-
+
@@ -66,7 +66,10 @@ export default {
return `/library/${this.currentLibraryId}/bookshelf?filter=tags.${this.groupEncode}`
}
},
- height() {
+ coverWidth() {
+ return this.coverHeight
+ },
+ coverHeight() {
return this.width * 1.6
},
sizeMultiplier() {
@@ -90,9 +93,6 @@ export default {
groupName() {
return this._group.name || 'No Name'
},
- groupType() {
- return this._group.type
- },
groupEncode() {
return this.$encode(this.groupName)
},
diff --git a/client/components/cards/SeriesSearchCard.vue b/client/components/cards/SeriesSearchCard.vue
index 95c2db1d..4959f2d3 100644
--- a/client/components/cards/SeriesSearchCard.vue
+++ b/client/components/cards/SeriesSearchCard.vue
@@ -1,6 +1,6 @@
-
+
diff --git a/client/components/cards/BookCover.vue b/client/components/covers/BookCover.vue
similarity index 100%
rename from client/components/cards/BookCover.vue
rename to client/components/covers/BookCover.vue
diff --git a/client/components/covers/CollectionCover.vue b/client/components/covers/CollectionCover.vue
new file mode 100644
index 00000000..fea176d9
--- /dev/null
+++ b/client/components/covers/CollectionCover.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ ![]()
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/client/components/cards/GroupCover.vue b/client/components/covers/GroupCover.vue
similarity index 100%
rename from client/components/cards/GroupCover.vue
rename to client/components/covers/GroupCover.vue
diff --git a/client/components/cards/HoverBookCover.vue b/client/components/covers/HoverBookCover.vue
similarity index 92%
rename from client/components/cards/HoverBookCover.vue
rename to client/components/covers/HoverBookCover.vue
index db50974b..95a80a55 100644
--- a/client/components/cards/HoverBookCover.vue
+++ b/client/components/covers/HoverBookCover.vue
@@ -1,6 +1,6 @@
-
+
diff --git a/client/components/cards/PreviewCover.vue b/client/components/covers/PreviewCover.vue
similarity index 100%
rename from client/components/cards/PreviewCover.vue
rename to client/components/covers/PreviewCover.vue
diff --git a/client/components/modals/EditCollectionModal.vue b/client/components/modals/EditCollectionModal.vue
new file mode 100644
index 00000000..19a84164
--- /dev/null
+++ b/client/components/modals/EditCollectionModal.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/client/components/modals/UserCollectionsModal.vue b/client/components/modals/UserCollectionsModal.vue
index c875e0ee..62f9a9d4 100644
--- a/client/components/modals/UserCollectionsModal.vue
+++ b/client/components/modals/UserCollectionsModal.vue
@@ -8,7 +8,7 @@
-
+
diff --git a/client/components/modals/collections/UserCollectionItem.vue b/client/components/modals/collections/UserCollectionItem.vue
index 689d464c..d7655484 100644
--- a/client/components/modals/collections/UserCollectionItem.vue
+++ b/client/components/modals/collections/UserCollectionItem.vue
@@ -2,9 +2,9 @@
-
+
-
+
- {{ collection.name }}
+ {{ collection.name }}
|