diff --git a/komga-webui/src/components/CollectionsExpansionPanels.vue b/komga-webui/src/components/CollectionsExpansionPanels.vue
new file mode 100644
index 0000000000..1a7b2e0a23
--- /dev/null
+++ b/komga-webui/src/components/CollectionsExpansionPanels.vue
@@ -0,0 +1,71 @@
+
+
+
+ {{ c.name }} collection
+
+
+
+ Manage collection
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/komga-webui/src/components/ItemBrowser.vue b/komga-webui/src/components/ItemBrowser.vue
index a84743cf33..aaa92a4295 100644
--- a/komga-webui/src/components/ItemBrowser.vue
+++ b/komga-webui/src/components/ItemBrowser.vue
@@ -14,24 +14,25 @@
:class="flexClass"
>
@@ -84,6 +85,10 @@ export default Vue.extend({
type: Array,
required: true,
},
+ fixedItemWidth: {
+ type: Number,
+ required: false,
+ },
selectable: {
type: Boolean,
default: true,
@@ -110,6 +115,10 @@ export default Vue.extend({
type: Boolean,
default: false,
},
+ actionMenu: {
+ type: Boolean,
+ default: true,
+ },
},
data: () => {
return {
@@ -152,7 +161,7 @@ export default Vue.extend({
return this.items.length > 0
},
itemWidth (): number {
- return this.width
+ return this.fixedItemWidth ? this.fixedItemWidth : this.width
},
shouldPreselect (): boolean {
return this.selectedItems.length > 0
diff --git a/komga-webui/src/views/BrowseSeries.vue b/komga-webui/src/views/BrowseSeries.vue
index 3a336f833e..0e4c6bac92 100644
--- a/komga-webui/src/views/BrowseSeries.vue
+++ b/komga-webui/src/views/BrowseSeries.vue
@@ -74,65 +74,21 @@
-
+
-
-
- {{ c.name }} collection
-
-
-
- Manage collection
-
-
-
-
-
-
-
-
-
-
-
+
-
-
- {{ c.name }} collection
-
-
-
- Manage collection
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
import Badge from '@/components/Badge.vue'
+import BooksMultiSelectBar from '@/components/bars/BooksMultiSelectBar.vue'
+import ToolbarSticky from '@/components/bars/ToolbarSticky.vue'
+import CollectionsExpansionPanels from '@/components/CollectionsExpansionPanels.vue'
import EmptyState from '@/components/EmptyState.vue'
import FilterMenuButton from '@/components/FilterMenuButton.vue'
-import HorizontalScroller from '@/components/HorizontalScroller.vue'
import ItemBrowser from '@/components/ItemBrowser.vue'
import ItemCard from '@/components/ItemCard.vue'
-import PageSizeSelect from '@/components/PageSizeSelect.vue'
import SeriesActionsMenu from '@/components/menus/SeriesActionsMenu.vue'
+import PageSizeSelect from '@/components/PageSizeSelect.vue'
import SortMenuButton from '@/components/SortMenuButton.vue'
-import ToolbarSticky from '@/components/bars/ToolbarSticky.vue'
import { parseQueryFilter, parseQuerySort } from '@/functions/query-params'
import { seriesThumbnailUrl } from '@/functions/urls'
import { ReadStatus } from '@/types/enum-books'
import { BOOK_CHANGED, LIBRARY_DELETED, SERIES_CHANGED } from '@/types/events'
import Vue from 'vue'
-import BooksMultiSelectBar from '@/components/bars/BooksMultiSelectBar.vue'
const cookiePageSize = 'pagesize'
@@ -192,10 +148,10 @@ export default Vue.extend({
ItemBrowser,
PageSizeSelect,
SeriesActionsMenu,
- HorizontalScroller,
ItemCard,
EmptyState,
BooksMultiSelectBar,
+ CollectionsExpansionPanels,
},
data: () => {
return {
@@ -219,8 +175,6 @@ export default Vue.extend({
pageUnwatch: null as any,
pageSizeUnwatch: null as any,
collections: [] as CollectionDto[],
- collectionsContent: [] as any[][],
- collectionPanel: -1,
}
},
computed: {
@@ -294,7 +248,6 @@ export default Vue.extend({
this.totalElements = null
this.books = []
this.collections = []
- this.collectionPanel = -1
this.loadSeries(Number(to.params.seriesId))
@@ -348,9 +301,6 @@ export default Vue.extend({
async loadSeries (seriesId: number) {
this.series = await this.$komgaSeries.getOneSeries(seriesId)
this.collections = await this.$komgaSeries.getCollections(seriesId)
- for (const c of this.collections) {
- this.collectionsContent[c.id] = (await this.$komgaCollections.getSeries(c.id, { unpaged: true } as PageRequest)).content
- }
await this.loadPage(seriesId, this.page, this.sortActive)
},
parseQuerySortOrDefault (querySort: any): SortActive {
diff --git a/komga-webui/src/views/Dashboard.vue b/komga-webui/src/views/Dashboard.vue
index dbb18cbbb9..8e1e9c3f85 100644
--- a/komga-webui/src/views/Dashboard.vue
+++ b/komga-webui/src/views/Dashboard.vue
@@ -17,7 +17,7 @@
@edit="editMultipleBooks"
/>
-
+
-
+
Keep Reading
@@ -35,11 +35,12 @@
:edit-function="singleEditBook"
:selected.sync="selectedBooks"
:selectable="selectedSeries.length === 0"
+ :fixed-item-width="fixedCardWidth"
/>
-
+
On Deck
@@ -49,11 +50,12 @@
:edit-function="singleEditBook"
:selected.sync="selectedBooks"
:selectable="selectedSeries.length === 0"
+ :fixed-item-width="fixedCardWidth"
/>
-
+
Recently Added Series
@@ -63,11 +65,12 @@
:edit-function="singleEditSeries"
:selected.sync="selectedSeries"
:selectable="selectedBooks.length === 0"
+ :fixed-item-width="fixedCardWidth"
/>
-
+
Recently Updated Series
@@ -77,11 +80,12 @@
:edit-function="singleEditSeries"
:selected.sync="selectedSeries"
:selectable="selectedBooks.length === 0"
+ :fixed-item-width="fixedCardWidth"
/>
-
+
Recently Added Books
@@ -91,6 +95,7 @@
:edit-function="singleEditBook"
:selected.sync="selectedBooks"
:selectable="selectedSeries.length === 0"
+ :fixed-item-width="fixedCardWidth"
/>
@@ -99,14 +104,14 @@