Improve error feedback for spam filter dialog
This commit is contained in:
@@ -105,7 +105,7 @@ async function onChangeFts(value) {
|
||||
|
||||
const spamFilterDialog = useTemplateRef('spamFilterDialog');
|
||||
const spamFilterBusy = ref(false);
|
||||
const spamFilterError = ref('');
|
||||
const spamFilterError = ref({});
|
||||
const blocklist = ref([]);
|
||||
const blocklistString = ref('');
|
||||
const allowlist = ref([]);
|
||||
@@ -117,7 +117,7 @@ const blocklistCount = computed(() => {
|
||||
});
|
||||
|
||||
function onShowSpamFilterDialog() {
|
||||
spamFilterError.value = '';
|
||||
spamFilterError.value = {};
|
||||
spamFilterBusy.value = false;
|
||||
blocklistString.value = blocklist.value.join('\n');
|
||||
allowlistString.value = allowlist.value.join('\n');
|
||||
@@ -126,7 +126,7 @@ function onShowSpamFilterDialog() {
|
||||
}
|
||||
|
||||
async function onSubmitSpamFilter() {
|
||||
spamFilterError.value = '';
|
||||
spamFilterError.value = {};
|
||||
spamFilterBusy.value = true;
|
||||
|
||||
const block = blocklistString.value.split('\n').filter((l) => { return l !== ''; });
|
||||
@@ -134,16 +134,16 @@ async function onSubmitSpamFilter() {
|
||||
|
||||
let [error] = await mailModel.setSpamAcl(allow, block);
|
||||
if (error) {
|
||||
spamFilterError.value = error.body ? error.body.message : 'Internal error';
|
||||
spamFilterError.value.blocklist = error.body ? error.body.message : 'Internal error';
|
||||
spamFilterBusy.value = false;
|
||||
return console.error(error);
|
||||
return;
|
||||
}
|
||||
|
||||
[error] = await mailModel.setSpamCustomConfig(spamCustomConfig.value);
|
||||
if (error) {
|
||||
spamFilterError.value = error.body ? error.body.message : 'Internal error';
|
||||
spamFilterError.value.config = error.body ? error.body.message : 'Internal error';
|
||||
spamFilterBusy.value = false;
|
||||
return console.error(error);
|
||||
return;
|
||||
}
|
||||
|
||||
spamFilterDialog.value.close();
|
||||
@@ -215,7 +215,7 @@ onMounted(async () => {
|
||||
|
||||
<FormGroup>
|
||||
<label for="dnsblZonesInput">{{ $t('emails.aclDialog.dnsblZones') }} <sup><a href="https://docs.cloudron.io/email/#dnsbl" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
|
||||
<p class="small">{{ $t('emails.aclDialog.dnsblZonesInfo') }}</p>
|
||||
<div>{{ $t('emails.aclDialog.dnsblZonesInfo') }}</div>
|
||||
<textarea id="dnsblZonesInput" v-model="dnsblZonesString" :placeholder="$t('emails.aclDialog.dnsblZonesPlaceholder')" rows="4"></textarea>
|
||||
</FormGroup>
|
||||
|
||||
@@ -238,16 +238,16 @@ onMounted(async () => {
|
||||
|
||||
<FormGroup>
|
||||
<label for="blocklistInput">{{ $t('emails.spamFilterDialog.blacklisteAddresses') }}</label>
|
||||
<p class="small">{{ $t('emails.spamFilterDialog.blacklisteAddressesInfo') }}</p>
|
||||
<div>{{ $t('emails.spamFilterDialog.blacklisteAddressesInfo') }}</div>
|
||||
<textarea id="blocklistInput" v-model="blocklistString" :placeholder="$t('emails.spamFilterDialog.blacklisteAddressesPlaceholder')" rows="4"></textarea>
|
||||
<div class="error-label" v-if="spamFilterError.blocklist">{{ spamFilterError.blocklist }}</div>
|
||||
</FormGroup>
|
||||
|
||||
<FormGroup>
|
||||
<label for="customConfigInput">{{ $t('emails.spamFilterDialog.customRules') }} <sup><a href="https://docs.cloudron.io/email/#custom-spam-filtering-rules" class="help" target="_blank"><i class="fa fa-question-circle"></i></a></sup></label>
|
||||
<textarea id="customConfigInput" v-model="spamCustomConfig" :placeholder="$t('emails.spamFilterDialog.customRulesPlaceholder')" rows="4"></textarea>
|
||||
<div class="error-label" v-if="spamFilterError.config">{{ spamFilterError.config }}</div>
|
||||
</FormGroup>
|
||||
|
||||
<div class="has-error" v-if="spamFilterError">{{ spamFilterError }}</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</Dialog>
|
||||
|
||||
Reference in New Issue
Block a user