diff --git a/locales/en-US.yml b/locales/en-US.yml index e33999d6d4..ddcf610903 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -34,6 +34,7 @@ signup: "Sign Up" uploading: "Uploading..." save: "Save" users: "Users" +approvals: "Approvals" addUser: "Add a user" favorite: "Add to favorites" favorites: "Favorites" diff --git a/locales/index.d.ts b/locales/index.d.ts index 93f5e65af0..aad4c59bb5 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -37,6 +37,7 @@ export interface Locale { "uploading": string; "save": string; "users": string; + "approvals": string; "addUser": string; "favorite": string; "favorites": string; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 0d43a5d5a6..fff677aa36 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -34,6 +34,7 @@ signup: "新規登録" uploading: "アップロード中" save: "保存" users: "ユーザー" +approvals: "承認" addUser: "ユーザーを追加" favorite: "お気に入り" favorites: "お気に入り" diff --git a/packages/frontend/src/components/SkApprovalUser.vue b/packages/frontend/src/components/SkApprovalUser.vue new file mode 100644 index 0000000000..332997ca6b --- /dev/null +++ b/packages/frontend/src/components/SkApprovalUser.vue @@ -0,0 +1,114 @@ + + + + {{ i18n.ts.user }}: {{ user.username }} + + + + + {{ i18n.ts.createdAt }} + + + + {{ i18n.ts.emailAddress }} + {{ email }} + + + Reason + {{ reason }} + + + + {{ i18n.ts.approveAccount }} + {{ i18n.ts.denyAccount }} + + + + + + + + \ No newline at end of file diff --git a/packages/frontend/src/pages/admin/approvals.vue b/packages/frontend/src/pages/admin/approvals.vue new file mode 100644 index 0000000000..a326e15ef7 --- /dev/null +++ b/packages/frontend/src/pages/admin/approvals.vue @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/frontend/src/pages/admin/index.vue b/packages/frontend/src/pages/admin/index.vue index ce608c89ce..55fb1fc28d 100644 --- a/packages/frontend/src/pages/admin/index.vue +++ b/packages/frontend/src/pages/admin/index.vue @@ -16,7 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-only {{ i18n.ts.noMaintainerInformationWarning }} {{ i18n.ts.configure }} {{ i18n.ts.noBotProtectionWarning }} {{ i18n.ts.configure }} {{ i18n.ts.noEmailServerWarning }} {{ i18n.ts.configure }} - {{ i18n.ts.pendingUserApprovals }} {{ i18n.ts.check }} + {{ i18n.ts.pendingUserApprovals }} {{ i18n.ts.check }} @@ -114,6 +114,11 @@ const menuDef = $computed(() => [{ text: i18n.ts.invite, to: '/admin/invites', active: currentPage?.route.name === 'invites', + }, { + icon: 'ph-chalkboard-teacher ph-bold ph-lg', + text: i18n.ts.approvals, + to: '/admin/approvals', + active: currentPage?.route.name === 'approvals', }, { icon: 'ph-seal-check ph-bold pg-lg', text: i18n.ts.roles, diff --git a/packages/frontend/src/router.ts b/packages/frontend/src/router.ts index 2a444d8b0d..96a9b751a3 100644 --- a/packages/frontend/src/router.ts +++ b/packages/frontend/src/router.ts @@ -443,6 +443,10 @@ export const routes = [{ path: '/invites', name: 'invites', component: page(() => import('./pages/admin/invites.vue')), + }, { + path: '/approvals', + name: 'approvals', + component: page(() => import('./pages/admin/approvals.vue')), }, { path: '/', component: page(() => import('./pages/_empty_.vue')),