Use ActionBar also for GroupsView

This commit is contained in:
Johannes Zellner
2025-12-19 10:45:29 +01:00
parent 7377476f97
commit 4f518d2315
2 changed files with 11 additions and 18 deletions
+10 -17
View File
@@ -5,7 +5,8 @@ const i18n = useI18n();
const t = i18n.t;
import { ref, onMounted, useTemplateRef, inject, computed } from 'vue';
import { Button, Menu, TableView, InputDialog, TextInput } from '@cloudron/pankow';
import { Button, TableView, InputDialog, TextInput } from '@cloudron/pankow';
import ActionBar from '../components/ActionBar.vue';
import Section from '../components/Section.vue';
import GroupDialog from '../components/GroupDialog.vue';
import UsersModel from '../models/UsersModel.js';
@@ -16,9 +17,6 @@ const usersModel = UsersModel.create();
const groupsModel = GroupsModel.create();
const profileModel = ProfileModel.create();
const actionMenuModel = ref([]);
const actionMenuElement = useTemplateRef('actionMenuElement');
const groupsColumns = {
name: {
label: t('users.groups.name'),
@@ -27,20 +25,17 @@ const groupsColumns = {
},
users: {
label: t('users.groups.users'),
sort: true,
nowrap: true,
hideMobile: true,
width: '500px',
},
actions: {
width: '55px',
}
actions: {}
};
function onGroupActionMenu(group, event) {
actionMenuModel.value = [{
function createGroupActionMenu(group) {
return [{
icon: 'fa-solid fa-pencil-alt',
label: t('main.action.edit'),
quickAction: true,
action: onEditOrAddGroup.bind(null, group),
}, {
separator: true,
@@ -49,8 +44,6 @@ function onGroupActionMenu(group, event) {
label: t('main.action.remove'),
action: onRemoveGroup.bind(null, group),
}];
actionMenuElement.value.open(event, event.currentTarget);
}
const profile = ref({});
@@ -156,7 +149,6 @@ onMounted(async () => {
<template>
<div class="content">
<Menu ref="actionMenuElement" :model="actionMenuModel" />
<InputDialog ref="inputDialog" />
<GroupDialog ref="groupDialog" @success="refreshGroups()"/>
@@ -177,9 +169,10 @@ onMounted(async () => {
</template>
<template #users="group">{{ groupMembers(group) }}</template>
<template #actions="group">
<div style="text-align: right;">
<Button tool plain secondary @click.capture="onGroupActionMenu(group, $event)" icon="fa-solid fa-ellipsis" />
</div>
<ActionBar :actions="createGroupActionMenu(group)" />
<!-- <div style="text-align: right;"> -->
<!-- <Button tool plain secondary @click.capture="onGroupActionMenu(group, $event)" icon="fa-solid fa-ellipsis" /> -->
<!-- </div> -->
</template>
</TableView>
</Section>
+1 -1
View File
@@ -5,7 +5,7 @@ const i18n = useI18n();
const t = i18n.t;
import { ref, onMounted, computed, useTemplateRef, inject } from 'vue';
import { Button, Menu, TextInput, SingleSelect, TableView, InputDialog } from '@cloudron/pankow';
import { Button, TextInput, SingleSelect, TableView, InputDialog } from '@cloudron/pankow';
import { ROLES } from '../constants.js';
import Section from '../components/Section.vue';
import ActionBar from '../components/ActionBar.vue';