From 395399f078c39a7cd1b4b29509ab95d7ece0a296 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Tue, 22 Jul 2025 21:54:18 +0800 Subject: [PATCH] feat: add thumbnail records modal (#7630) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #### What type of PR is this? /area ui /kind feature /milestone 2.21.x #### What this PR does / why we need it: Add thumbnail records viewing feature. The main goal is to keep track of failed thumbnail generations, making it easier to check if thumbnails were generated correctly and retry if needed. image image #### Which issue(s) this PR fixes: Fixes # #### Special notes for your reviewer: #### Does this PR introduce a user-facing change? ```release-note 支持查看附件缩略图记录 ``` --- .../run/halo/app/infra/SchemeInitializer.java | 10 + .../contents/attachments/AttachmentList.vue | 18 ++ .../components/AttachmentDetailModal.vue | 12 + .../AttachmentSingleThumbnailItem.vue | 87 +++++++ .../AttachmentSingleThumbnailList.vue | 75 ++++++ .../components/AttachmentThumbnailItem.vue | 96 ++++++++ .../components/AttachmentThumbnailsModal.vue | 216 ++++++++++++++++++ .../composables/use-thumbnail-control.ts | 46 ++++ .../composables/use-thumbnail-detail.ts | 51 +++++ ui/package.json | 2 + ui/packages/api-client/entry/api-client.ts | 8 + ui/pnpm-lock.yaml | 16 ++ ui/src/constants/annotations.ts | 8 + ui/src/locales/_missing_translations_es.yaml | 21 ++ ui/src/locales/en.yaml | 20 ++ ui/src/locales/zh-CN.yaml | 18 ++ ui/src/locales/zh-TW.yaml | 18 ++ 17 files changed, 722 insertions(+) create mode 100644 ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailItem.vue create mode 100644 ui/console-src/modules/contents/attachments/components/AttachmentSingleThumbnailList.vue create mode 100644 ui/console-src/modules/contents/attachments/components/AttachmentThumbnailItem.vue create mode 100644 ui/console-src/modules/contents/attachments/components/AttachmentThumbnailsModal.vue create mode 100644 ui/console-src/modules/contents/attachments/composables/use-thumbnail-control.ts create mode 100644 ui/console-src/modules/contents/attachments/composables/use-thumbnail-detail.ts diff --git a/application/src/main/java/run/halo/app/infra/SchemeInitializer.java b/application/src/main/java/run/halo/app/infra/SchemeInitializer.java index e24074cc6..c8f85fcc8 100644 --- a/application/src/main/java/run/halo/app/infra/SchemeInitializer.java +++ b/application/src/main/java/run/halo/app/infra/SchemeInitializer.java @@ -651,6 +651,16 @@ class SchemeInitializer implements SmartLifecycle { .setIndexFunc(simpleAttribute(LocalThumbnail.class, thumbnail -> thumbnail.getSpec().getThumbSignature()) )); + indexSpec.add(new IndexSpec() + .setName("status.phase") + .setIndexFunc( + simpleAttribute(LocalThumbnail.class, + thumbnail -> Optional.of(thumbnail.getStatus()) + .map(LocalThumbnail.Status::getPhase) + .map(LocalThumbnail.Phase::name) + .orElse(null)) + ) + ); }); // metrics.halo.run schemeManager.register(Counter.class); diff --git a/ui/console-src/modules/contents/attachments/AttachmentList.vue b/ui/console-src/modules/contents/attachments/AttachmentList.vue index 40ccb9694..f897d9343 100644 --- a/ui/console-src/modules/contents/attachments/AttachmentList.vue +++ b/ui/console-src/modules/contents/attachments/AttachmentList.vue @@ -1,6 +1,7 @@