From 1f852dbce9b953f8efeeb09af6eff7bec2291cde Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Wed, 19 Feb 2025 15:49:10 +0800 Subject: [PATCH] feat(webui): sort books within a series by last modified date or read date --- komga-webui/src/types/items.ts | 6 ++++++ komga-webui/src/views/BrowseSeries.vue | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/komga-webui/src/types/items.ts b/komga-webui/src/types/items.ts index f7cd1dda8..5efed2a0c 100644 --- a/komga-webui/src/types/items.ts +++ b/komga-webui/src/types/items.ts @@ -133,6 +133,12 @@ export class BookItem extends Item { } else { text = i18n.t('book_card.unread') } + } else if (context.includes(ItemContext.DATE_UPDATED)) { + text = new Intl.DateTimeFormat(i18n.locale, {dateStyle: 'medium'} as Intl.DateTimeFormatOptions).format(this.item.lastModified) + title = new Intl.DateTimeFormat(i18n.locale, { + dateStyle: 'long', + timeStyle: 'medium', + } as Intl.DateTimeFormatOptions).format(this.item.lastModified) } else if (context.includes(ItemContext.FILE_SIZE)) text = getFileSize(this.item.sizeBytes) else diff --git a/komga-webui/src/views/BrowseSeries.vue b/komga-webui/src/views/BrowseSeries.vue index a17265666..a1df0bd3f 100644 --- a/komga-webui/src/views/BrowseSeries.vue +++ b/komga-webui/src/views/BrowseSeries.vue @@ -639,6 +639,8 @@ export default Vue.extend({ itemContext(): ItemContext[] { if (this.sortActive.key === 'metadata.releaseDate') return [ItemContext.RELEASE_DATE] if (this.sortActive.key === 'createdDate') return [ItemContext.DATE_ADDED] + if (this.sortActive.key === 'lastModifiedDate') return [ItemContext.DATE_UPDATED] + if (this.sortActive.key === 'readProgress.readDate') return [ItemContext.READ_DATE] if (this.sortActive.key === 'fileSize') return [ItemContext.FILE_SIZE] return [] }, @@ -646,7 +648,9 @@ export default Vue.extend({ return [ {name: this.$t('sort.number').toString(), key: 'metadata.numberSort'}, {name: this.$t('sort.date_added').toString(), key: 'createdDate'}, + {name: this.$t('sort.date_updated').toString(), key: 'lastModifiedDate'}, {name: this.$t('sort.release_date').toString(), key: 'metadata.releaseDate'}, + {name: this.$t('sort.date_read').toString(), key: 'readProgress.readDate'}, {name: this.$t('sort.file_size').toString(), key: 'fileSize'}, {name: this.$t('sort.file_name').toString(), key: 'name'}, {name: this.$t('sort.page_count').toString(), key: 'media.pagesCount'},