From f904f8d1d34ed3cc6457c0c6ae958ebb75ef1a72 Mon Sep 17 00:00:00 2001 From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sun, 6 Jul 2025 17:25:01 +0900 Subject: [PATCH 01/10] =?UTF-8?q?refactor(frontend):=20=E3=83=AD=E3=83=BC?= =?UTF-8?q?=E3=83=AB=E3=83=9D=E3=83=AA=E3=82=B7=E3=83=BC=E3=82=A8=E3=83=87?= =?UTF-8?q?=E3=82=A3=E3=82=BF=E3=82=92=E7=B5=B1=E5=90=88=EF=BC=8B=E5=9E=8B?= =?UTF-8?q?=E5=BC=B7=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frontend/src/pages/admin/roles.editor.vue | 752 +----------------- .../pages/admin/roles.policy-editor.def.ts | 190 +++++ .../pages/admin/roles.policy-editor.form.vue | 114 +++ ...licy-editor.uploadableFileTypesCaption.vue | 13 + .../src/pages/admin/roles.policy-editor.vue | 124 +++ packages/frontend/src/pages/admin/roles.vue | 331 +------- .../frontend/src/types/role-policy-editor.ts | 85 ++ 7 files changed, 574 insertions(+), 1035 deletions(-) create mode 100644 packages/frontend/src/pages/admin/roles.policy-editor.def.ts create mode 100644 packages/frontend/src/pages/admin/roles.policy-editor.form.vue create mode 100644 packages/frontend/src/pages/admin/roles.policy-editor.uploadableFileTypesCaption.vue create mode 100644 packages/frontend/src/pages/admin/roles.policy-editor.vue create mode 100644 packages/frontend/src/types/role-policy-editor.ts diff --git a/packages/frontend/src/pages/admin/roles.editor.vue b/packages/frontend/src/pages/admin/roles.editor.vue index a266e1df6f..1eb794ad11 100644 --- a/packages/frontend/src/pages/admin/roles.editor.vue +++ b/packages/frontend/src/pages/admin/roles.editor.vue @@ -79,728 +79,35 @@ SPDX-License-Identifier: AGPL-3.0-only -
- - - - - - -
- - - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - - - - -
-
- - - - -
- - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - -
-
- - - - -
- - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - -
-
- - - - -
- - - - - - - - -
-
- - - - -
- - - - - - - - -
-
- - - - -
- - - - - - - - -
-
- - - - -
- - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - - -
-
- - - - -
- - - - - - - - -
-
-
+
diff --git a/packages/frontend/src/pages/admin/roles.policy-editor.uploadableFileTypesCaption.vue b/packages/frontend/src/pages/admin/roles.policy-editor.uploadableFileTypesCaption.vue new file mode 100644 index 0000000000..8d62884162 --- /dev/null +++ b/packages/frontend/src/pages/admin/roles.policy-editor.uploadableFileTypesCaption.vue @@ -0,0 +1,13 @@ + + + + + diff --git a/packages/frontend/src/pages/admin/roles.policy-editor.vue b/packages/frontend/src/pages/admin/roles.policy-editor.vue new file mode 100644 index 0000000000..da1a85304d --- /dev/null +++ b/packages/frontend/src/pages/admin/roles.policy-editor.vue @@ -0,0 +1,124 @@ + + + + + + + diff --git a/packages/frontend/src/pages/admin/roles.vue b/packages/frontend/src/pages/admin/roles.vue index dee0fb1e5c..01b4a651fd 100644 --- a/packages/frontend/src/pages/admin/roles.vue +++ b/packages/frontend/src/pages/admin/roles.vue @@ -12,286 +12,12 @@ SPDX-License-Identifier: AGPL-3.0-only -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ {{ i18n.ts._role.new }}
@@ -314,14 +40,11 @@ SPDX-License-Identifier: AGPL-3.0-only diff --git a/packages/frontend/src/pages/admin/roles.policy-editor.vue b/packages/frontend/src/pages/admin/roles.policy-editor.vue index ed18ee9675..37175bf163 100644 --- a/packages/frontend/src/pages/admin/roles.policy-editor.vue +++ b/packages/frontend/src/pages/admin/roles.policy-editor.vue @@ -10,13 +10,10 @@ SPDX-License-Identifier: AGPL-3.0-only - + @@ -57,8 +54,8 @@ import MkFolder from '@/components/MkFolder.vue'; import MkSwitch from '@/components/MkSwitch.vue'; import MkRange from '@/components/MkRange.vue'; import XForm from './roles.policy-editor.form.vue'; -import { rolePolicyEditorDef } from './roles.policy-editor.def.js'; -import type { GetRolePolicyEditorValuesType, RolePolicyEditorDef, RolePolicyEditorItemBaseFolderSuffixGetter } from '@/types/role-policy-editor.js'; +import { rolePolicyDef, getPolicyDisplayValue } from '@/utility/role-policy.js'; +import type { GetRolePolicyEditorValuesType, RolePolicyDefItem } from '@/types/role-policy-editor.js'; const props = withDefaults(defineProps<{ withUseDefault: UD; @@ -75,14 +72,14 @@ type RemoveNever = { }; type RolePolicyEditorValueItem = { - value: GetRolePolicyEditorValuesType; + value: GetRolePolicyEditorValuesType; } & RemoveNever< (UD extends true ? { useDefault: boolean } : { useDefault: never }) & (WP extends true ? { priority: 0 | 1 | 2 } : { priority: never }) >; type RolePolicyEditorValue = { - [K in keyof typeof rolePolicyEditorDef]: RolePolicyEditorValueItem; + [K in keyof typeof rolePolicyDef]: RolePolicyEditorValueItem; }; const model = defineModel({ required: true }); @@ -95,15 +92,15 @@ function matchQuery(keywords: string[]) { } const filteredDefs = computed(() => { - if (!props.withSearchBar) return rolePolicyEditorDef; + if (!props.withSearchBar) return rolePolicyDef; return Object.fromEntries( - Object.entries(rolePolicyEditorDef as RolePolicyEditorDef).filter(([key, def]) => { + Object.entries(rolePolicyDef).filter(([key, def]) => { if (searchQuery.value.trim().length === 0) return true; const matchTerms = [ key, - def.folderLabel, - ...(def.searchTerms ?? []), + def.displayLabel, + ...((def as RolePolicyDefItem).searchTerms ? (def as RolePolicyDefItem).searchTerms ?? [] : []), ]; return matchQuery(matchTerms); }), diff --git a/packages/frontend/src/pages/admin/roles.vue b/packages/frontend/src/pages/admin/roles.vue index 01b4a651fd..01e0e160f2 100644 --- a/packages/frontend/src/pages/admin/roles.vue +++ b/packages/frontend/src/pages/admin/roles.vue @@ -41,7 +41,7 @@ SPDX-License-Identifier: AGPL-3.0-only