From 7cbfc12e0dc9a8e1eebb04ce3561c2124c81d4ba Mon Sep 17 00:00:00 2001 From: Alex Date: Thu, 22 Jan 2026 06:44:08 -0600 Subject: [PATCH] chore: use context menu for user table (#25428) * chore: use context menu for user table * chore: reorder columns --------- Co-authored-by: Jason Rasmussen --- web/src/lib/services/user-admin.service.ts | 9 +++++- .../routes/admin/users/(list)/+layout.svelte | 32 ++++++++++++------- .../routes/admin/users/[id]/+layout.svelte | 4 +-- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/web/src/lib/services/user-admin.service.ts b/web/src/lib/services/user-admin.service.ts index 71d20bd9ce..233eb88657 100644 --- a/web/src/lib/services/user-admin.service.ts +++ b/web/src/lib/services/user-admin.service.ts @@ -23,6 +23,7 @@ import { import { modalManager, toastManager, type ActionItem } from '@immich/ui'; import { mdiDeleteRestore, + mdiInformationOutline, mdiLockReset, mdiLockSmart, mdiPencilOutline, @@ -46,6 +47,12 @@ export const getUserAdminsActions = ($t: MessageFormatter) => { }; export const getUserAdminActions = ($t: MessageFormatter, user: UserAdminResponseDto) => { + const Detail: ActionItem = { + icon: mdiInformationOutline, + title: $t('details'), + onAction: () => goto(Route.viewUser(user)), + }; + const Update: ActionItem = { icon: mdiPencilOutline, title: $t('edit'), @@ -92,7 +99,7 @@ export const getUserAdminActions = ($t: MessageFormatter, user: UserAdminRespons onAction: () => handleResetPinCodeUserAdmin(user), }; - return { Update, Delete, Restore, ResetPassword, ResetPinCode }; + return { Detail, Update, Delete, Restore, ResetPassword, ResetPinCode }; }; export const handleCreateUserAdmin = async (dto: UserAdminCreateDto) => { diff --git a/web/src/routes/admin/users/(list)/+layout.svelte b/web/src/routes/admin/users/(list)/+layout.svelte index 368ce5ed18..b895e72de5 100644 --- a/web/src/routes/admin/users/(list)/+layout.svelte +++ b/web/src/routes/admin/users/(list)/+layout.svelte @@ -1,15 +1,18 @@ @@ -68,16 +76,18 @@ - {$t('email')} - {$t('name')} + {$t('name')} + {$t('email')} {$t('has_quota')} {#each users as user (user.id)} - {user.email} - {user.name} + + {user.name} + + {user.email}
{#if user.quotaSizeInBytes !== null && user.quotaSizeInBytes >= 0} @@ -88,7 +98,7 @@
- +
{/each} diff --git a/web/src/routes/admin/users/[id]/+layout.svelte b/web/src/routes/admin/users/[id]/+layout.svelte index 92d29aa5e2..61fd184303 100644 --- a/web/src/routes/admin/users/[id]/+layout.svelte +++ b/web/src/routes/admin/users/[id]/+layout.svelte @@ -198,8 +198,8 @@ })} >

{$t('storage')}

-
-
+
+
{/if}