allow to set collabora dictionaries

Signed-off-by: szaimen <szaimen@e.mail.de>
This commit is contained in:
szaimen 2022-06-27 15:29:17 +02:00
parent a26d36c084
commit 97f053228c
8 changed files with 74 additions and 0 deletions

View file

@ -87,6 +87,15 @@ class ConfigurationController
}
}
if (isset($request->getParsedBody()['delete_collabora_dictionaries'])) {
$this->configurationManager->DeleteCollaboraDictionaries();
}
if (isset($request->getParsedBody()['collabora_dictionaries'])) {
$collaboraDictionaries = $request->getParsedBody()['collabora_dictionaries'] ?? '';
$this->configurationManager->SetCollaboraDictionaries($collaboraDictionaries);
}
return $response->withStatus(201)->withHeader('Location', '/');
} catch (InvalidSettingConfigurationException $ex) {
$response->getBody()->write($ex->getMessage());

View file

@ -568,4 +568,36 @@ class ConfigurationManager
}
return false;
}
public function GetCollaboraDictionaries() : string {
$config = $this->GetConfig();
if(!isset($config['collabora_dictionaries'])) {
$config['collabora_dictionaries'] = '';
}
return $config['collabora_dictionaries'];
}
/**
* @throws InvalidSettingConfigurationException
*/
public function SetCollaboraDictionaries(string $CollaboraDictionaries) : void {
if ($CollaboraDictionaries === "") {
throw new InvalidSettingConfigurationException("The dictionaries must not be empty!");
}
if (!preg_match("#^[a-zA-Z_ ]+$#", $CollaboraDictionaries)) {
throw new InvalidSettingConfigurationException("The entered dictionaries do not seem to be a valid!");
}
$config = $this->GetConfig();
$config['collabora_dictionaries'] = $CollaboraDictionaries;
$this->WriteConfig($config);
}
public function DeleteCollaboraDictionaries() : void {
$config = $this->GetConfig();
$config['collabora_dictionaries'] = '';
$this->WriteConfig($config);
}
}

View file

@ -292,6 +292,12 @@ class DockerActionManager
} else {
$replacements[1] = $this->configurationManager->GetTimezone();
}
} elseif ($out[1] === 'COLLABORA_DICTIONARIES') {
if ($this->configurationManager->GetCollaboraDictionaries() === '') {
$replacements[1] = 'de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru';
} else {
$replacements[1] = $this->configurationManager->GetCollaboraDictionaries();
}
} else {
$replacements[1] = $this->configurationManager->GetSecret($out[1]);
}