From 0c599488280d7bc43da1e4a26fc02ceae75ce047 Mon Sep 17 00:00:00 2001 From: tetsuya-ki <64536338+tetsuya-ki@users.noreply.github.com> Date: Sat, 19 Oct 2024 15:11:38 +0000 Subject: [PATCH] =?UTF-8?q?Feat:=20=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AD?= =?UTF-8?q?=E3=83=BC=E3=83=AB=E3=83=91=E3=83=8D=E3=83=AB=E5=86=85=E3=81=AE?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E4=B8=80=E8=A6=A7=E3=81=A7?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E5=90=8D=E3=81=A8=E8=AA=AC?= =?UTF-8?q?=E6=98=8E=E3=81=A7=E6=A4=9C=E7=B4=A2=E3=81=A7=E3=81=8D=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB(#14789)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/server/api/endpoints/admin/drive/files.ts | 12 ++++++++++++ packages/frontend/src/pages/admin/files.vue | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/packages/backend/src/server/api/endpoints/admin/drive/files.ts b/packages/backend/src/server/api/endpoints/admin/drive/files.ts index 915d777e77..0ffcdcd6ec 100644 --- a/packages/backend/src/server/api/endpoints/admin/drive/files.ts +++ b/packages/backend/src/server/api/endpoints/admin/drive/files.ts @@ -43,6 +43,8 @@ export const paramDef = { default: null, description: 'The local host is represented with `null`.', }, + name: { type: 'string', nullable: true }, + comment: { type: 'string', nullable: true }, }, required: [], } as const; @@ -81,6 +83,16 @@ export default class extends Endpoint { // eslint- } } + if (ps.name) { + // 前方一致検索(%と_は無害化) + query.andWhere('file.name ilike :name', { name: ps.name.replaceAll('%', '\\%').replaceAll('_', '\\_') + '%' }); + } + + if (ps.comment) { + // 前方一致検索(%と_は無害化) + query.andWhere('file.comment ilike :comment', { comment: ps.comment.replaceAll('%', '\\%').replaceAll('_', '\\_') + '%' }); + } + const files = await query.limit(ps.limit).getMany(); return await this.driveFileEntityService.packMany(files, { detail: true, withUser: true, self: true }); diff --git a/packages/frontend/src/pages/admin/files.vue b/packages/frontend/src/pages/admin/files.vue index 4cc859227f..c13f70a8fe 100644 --- a/packages/frontend/src/pages/admin/files.vue +++ b/packages/frontend/src/pages/admin/files.vue @@ -28,6 +28,14 @@ SPDX-License-Identifier: AGPL-3.0-only +
+ + + + + + +
@@ -51,6 +59,8 @@ const type = ref(null); const searchHost = ref(''); const userId = ref(''); const viewMode = ref('grid'); +const name = ref(''); +const comment = ref(''); const pagination = { endpoint: 'admin/drive/files' as const, limit: 10, @@ -59,6 +69,8 @@ const pagination = { userId: (userId.value && userId.value !== '') ? userId.value : null, origin: origin.value, hostname: (searchHost.value && searchHost.value !== '') ? searchHost.value : null, + name: (name.value && name.value !== '') ? name.value : null, + comment: (comment.value && comment.value !== '') ? comment.value : null, })), };