Only allow FTS getting enabled if enough memory was allocated to the mail service

This commit is contained in:
Johannes Zellner
2025-04-19 11:33:29 +02:00
parent 8d7175875a
commit 0e60b46db0
2 changed files with 9 additions and 3 deletions

View File

@@ -9,10 +9,12 @@ import SettingsItem from '../components/SettingsItem.vue';
import DomainsModel from '../models/DomainsModel.js';
import MailModel from '../models/MailModel.js';
import TasksModel from '../models/TasksModel.js';
import ServicesModel from '../models/ServicesModel.js';
const domainsModel = DomainsModel.create();
const mailModel = MailModel.create();
const tasksModel = TasksModel.create();
const servicesModel = ServicesModel.create();
const inputDialog = useTemplateRef('inputDialog');
const domains = ref([]);
@@ -116,6 +118,7 @@ async function onChangeVirtualAllMail(value) {
const ftsEnabled = ref(false);
const hasMailServiceSufficientMemory = ref(false);
async function onChangeFts(value) {
const [error] = await mailModel.setFtsConfig(value);
@@ -210,9 +213,11 @@ onMounted(async () => {
[error, result] = await mailModel.ftsConfig();
if (error) return console.error(error);
ftsEnabled.value = result;
ftsEnabled.value = result.enabled;
// TODO check mail service config for memory allocation for fts
[error, result] = await servicesModel.get('mail');
if (error) return console.error(error);
hasMailServiceSufficientMemory.value = result.config.memoryLimit >= 3221225472; // we need at least 3GB
});
</script>
@@ -324,7 +329,7 @@ onMounted(async () => {
<label>{{ $t('emails.settings.solrFts') }}</label>
<div v-html="$t('emails.solrConfig.description')"></div>
</FormGroup>
<Switch v-model="ftsEnabled" @change="onChangeFts"/>
<Switch v-model="ftsEnabled" @change="onChangeFts" :disabled="!ftsEnabled && !hasMailServiceSufficientMemory"/>
</SettingsItem>
<SettingsItem>