Add better grouping to mailbox owner select

This commit is contained in:
Johannes Zellner
2025-10-07 17:20:00 +02:00
parent d3731ff339
commit 7d53eeb7f5
2 changed files with 25 additions and 4 deletions
+9 -4
View File
@@ -18,7 +18,7 @@ const domain = ref('');
const mailbox = ref(null);
const aliases = ref([]);
const ownerId = ref('');
const usersAndGroups = ref([]);
const usersAndGroupsAndApps = ref([]);
const storageQuotaEnabled = ref(false);
const storageQuotaTicks = [ 500*1000*1000, 5*1000*1000*1000, 15*1000*1000*1000, 50*1000*1000*1000, 100*1000*1000*1000 ];
const storageQuota = ref(5*1000*1000*1000);
@@ -97,10 +97,15 @@ defineExpose({
enablePop3.value = m ? m.enablePop3 : false;
storageQuotaEnabled.value = m && m.storageQuota ? true : false;
storageQuota.value = m ? m.storageQuota : 5*1000*1000*1000;
usersAndGroups.value = props.users.concat(props.groups).concat(props.apps);
usersAndGroupsAndApps.value = [{ separator: true, label: 'Users' }]
.concat(props.users)
.concat([{ separator: true, label: 'Groups' }])
.concat(props.groups)
.concat([{ separator: true, label: 'Apps' }])
.concat(props.apps);
// unify on .name for multiselect
usersAndGroups.value.forEach(u => {
usersAndGroupsAndApps.value.forEach(u => {
u.icon = u.name ? 'fa-solid fa-users' : (u.username ? 'fa-solid fa-user' : 'fa-solid fa-cube') ;
u.name = u.name || u.username || u.label || u.fqdn;
});
@@ -148,7 +153,7 @@ defineExpose({
<FormGroup>
<label>{{ $t('email.editMailboxDialog.owner') }}</label>
<SingleSelect v-model="ownerId" :options="usersAndGroups" :searchThreshold="10" option-key="id" option-label="name"/>
<SingleSelect v-model="ownerId" :options="usersAndGroupsAndApps" :searchThreshold="10" option-key="id" option-label="name"/>
</FormGroup>
<Checkbox v-if="mailbox" v-model="active" :label="$t('email.updateMailboxDialog.activeCheckbox')"/>