mailbox owner is required

This commit is contained in:
Girish Ramakrishnan
2025-12-01 14:21:45 +01:00
parent 1d73760901
commit 264f9f84ed
+15 -6
View File
@@ -44,7 +44,15 @@ async function onRemoveAlias(index) {
aliases.value.splice(index, 1);
}
const form = useTemplateRef('form');
const isFormValid = ref(false);
function validateForm() {
isFormValid.value = form.value && form.value.checkValidity();
}
async function onSubmit() {
if (!form.value.reportValidity()) return;
busy.value = true;
formError.value = '';
@@ -133,6 +141,8 @@ defineExpose({
});
dialog.value.open();
setTimeout(validateForm, 100); // update state of the confirm button
}
});
@@ -143,23 +153,22 @@ defineExpose({
:title="mailbox ? $t('email.editMailboxDialog.title') : $t('email.addMailboxDialog.title')"
:confirm-label="$t(mailbox ? 'main.dialog.save' : 'email.incoming.mailboxes.addAction')"
:confirm-busy="busy"
:confirm-active="!busy && name !== '' && domain !== ''"
:confirm-active="!busy && isFormValid"
reject-style="secondary"
:reject-label="$t('main.dialog.cancel')"
:reject-active="!busy"
@confirm="onSubmit()"
>
<div>
<form @submit.prevent="onSubmit()" novalidate autocomplete="off">
<form @submit.prevent="onSubmit()" novalidate autocomplete="off" ref="form" @input="validateForm()">
<fieldset :disabled="busy">
<input type="submit" style="display: none;" :disabled="!name || !domain"/>
<FormGroup>
<label for="nameInput">{{ $t('email.addMailboxDialog.name') }}</label>
<InputGroup>
<TextInput id="nameInput" style="flex-grow: 1;" v-model="name" :readonly="mailbox ? true : undefined"/>
<SingleSelect v-model="domain" :options="domainList" option-key="domain" option-label="label" :disabled="!!mailbox"/>
<TextInput id="nameInput" style="flex-grow: 1;" v-model="name" :readonly="mailbox ? true : undefined" :required="!mailbox"/>
<SingleSelect v-model="domain" :options="domainList" option-key="domain" option-label="label" :disabled="!!mailbox" :required="!mailbox"/>
</InputGroup>
<div class="warning-label" v-if="!domainHasIncomingEnabled">{{ $t('email.addMailboxDialog.incomingDisabledWarning') }}</div>
<div class="error-label" v-if="formError">{{ formError }}</div>
@@ -167,7 +176,7 @@ defineExpose({
<FormGroup>
<label>{{ $t('email.editMailboxDialog.owner') }}</label>
<SingleSelect v-model="ownerId" :options="usersAndGroupsAndApps" :searchThreshold="10" option-key="id" option-label="name"/>
<SingleSelect v-model="ownerId" :options="usersAndGroupsAndApps" :searchThreshold="10" option-key="id" option-label="name" required/>
</FormGroup>
<Checkbox v-if="mailbox" v-model="active" :label="$t('email.updateMailboxDialog.activeCheckbox')"/>