Skip to content

Commit

Permalink
fix: [diagnostics] allow for certain settings to be empty, fixes #176
Browse files Browse the repository at this point in the history
- via the empty => true key
  • Loading branch information
iglocska committed Nov 28, 2024
1 parent cce4115 commit 04b640c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 11 deletions.
26 changes: 15 additions & 11 deletions src/Model/Table/SettingProviders/BaseSettingsProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -163,18 +163,22 @@ protected function evaluateLeaf($setting, $settingSection)
$setting['error'] = false;
if (!$skipValidation) {
$validationResult = true;
if (!isset($setting['value'])) {
$validationResult = $this->settingValidator->testEmptyBecomesDefault(null, $setting);
} else if (isset($setting['test'])) {
$setting['value'] = $setting['value'] ?? '';
$validationResult = $this->evaluateFunctionForSetting($setting['test'], $setting);
}
if ($validationResult !== true) {
$setting['severity'] = $setting['severity'] ?? 'warning';
if (!in_array($setting['severity'], $this->severities)) {
$setting['severity'] = 'warning';
if (empty($setting['value']) && !empty($setting['empty'])) {
$validationResult = true;
} else {
if (!isset($setting['value'])) {
$validationResult = $this->settingValidator->testEmptyBecomesDefault(null, $setting);
} else if (isset($setting['test'])) {
$setting['value'] = $setting['value'] ?? '';
$validationResult = $this->evaluateFunctionForSetting($setting['test'], $setting);
}
if ($validationResult !== true) {
$setting['severity'] = $setting['severity'] ?? 'warning';
if (!in_array($setting['severity'], $this->severities)) {
$setting['severity'] = 'warning';
}
$setting['errorMessage'] = $validationResult;
}
$setting['errorMessage'] = $validationResult;
}
$setting['error'] = $validationResult !== true ? true : false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,27 +140,31 @@ protected function generateSettingsConfiguration()
'type' => 'string',
'description' => __('The hostname of an HTTP proxy for outgoing sync requests. Leave empty to not use a proxy.'),
'test' => 'testHostname',
'empty' => true
],
'Proxy.port' => [
'name' => __('Port'),
'severity' => 'info',
'type' => 'integer',
'description' => __('The TCP port for the HTTP proxy.'),
'test' => 'testForRangeXY',
'empty' => true
],
'Proxy.user' => [
'name' => __('User'),
'type' => 'string',
'description' => __('The authentication username for the HTTP proxy.'),
'default' => 'admin',
'dependsOn' => 'proxy.host',
'empty' => true
],
'Proxy.password' => [
'name' => __('Password'),
'type' => 'string',
'description' => __('The authentication password for the HTTP proxy.'),
'default' => '',
'dependsOn' => 'proxy.host',
'empty' => true
],
],
],
Expand Down

0 comments on commit 04b640c

Please sign in to comment.