From aa30f6ef986ef6bca4b04d7a2f6a1df2e40889b1 Mon Sep 17 00:00:00 2001 From: Johannes Zellner Date: Thu, 18 Dec 2025 16:56:19 +0100 Subject: [PATCH] Add some quick actions in users listing --- dashboard/src/views/UsersView.vue | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/dashboard/src/views/UsersView.vue b/dashboard/src/views/UsersView.vue index 630ef3ba6..5d729d381 100644 --- a/dashboard/src/views/UsersView.vue +++ b/dashboard/src/views/UsersView.vue @@ -8,6 +8,7 @@ import { ref, onMounted, computed, useTemplateRef, inject } from 'vue'; import { Button, Menu, TextInput, SingleSelect, TableView, InputDialog } from '@cloudron/pankow'; import { ROLES } from '../constants.js'; import Section from '../components/Section.vue'; +import ActionBar from '../components/ActionBar.vue'; import UserDialog from '../components/UserDialog.vue'; import ImpersonateDialog from '../components/ImpersonateDialog.vue'; import InvitationDialog from '../components/InvitationDialog.vue'; @@ -41,18 +42,15 @@ const usersColumns = { nowrap: true, width: '400px', }, - actions: { - width: '55px', - } + actions: {} }; -const actionMenuModel = ref([]); -const actionMenuElement = useTemplateRef('actionMenuElement'); -function onUserActionMenu(user, event) { - actionMenuModel.value = [{ +function createUserActionMenu(user) { + return [{ icon: 'fa fa-pencil-alt', label: t('main.action.edit'), disabled: !canEdit(user), + quickAction: true, action: onEditOrAddUser.bind(null, user), }, { separator: true, @@ -61,6 +59,7 @@ function onUserActionMenu(user, event) { label: t('users.users.invitationTooltip'), visible: !user.inviteAccepted && !isMe(user) && !user.source, disabled: !canEdit(user), + quickAction: true, action: onInvitation.bind(null, user), }, { icon: 'fa-solid fa-qrcode', @@ -87,8 +86,6 @@ function onUserActionMenu(user, event) { disabled: !canEdit(user) || isMe(user), action: onRemoveUser.bind(null, user), }]; - - actionMenuElement.value.open(event, event.currentTarget); } const external2FA = ref(false); @@ -259,7 +256,6 @@ onMounted(async () => {