Only allow FTS getting enabled if enough memory was allocated to the mail service
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user