Skip to content

Commit 04b640c

Browse files
committed
fix: [diagnostics] allow for certain settings to be empty, fixes #176
- via the empty => true key
1 parent cce4115 commit 04b640c

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

src/Model/Table/SettingProviders/BaseSettingsProvider.php

+15-11
Original file line numberDiff line numberDiff line change
@@ -163,18 +163,22 @@ protected function evaluateLeaf($setting, $settingSection)
163163
$setting['error'] = false;
164164
if (!$skipValidation) {
165165
$validationResult = true;
166-
if (!isset($setting['value'])) {
167-
$validationResult = $this->settingValidator->testEmptyBecomesDefault(null, $setting);
168-
} else if (isset($setting['test'])) {
169-
$setting['value'] = $setting['value'] ?? '';
170-
$validationResult = $this->evaluateFunctionForSetting($setting['test'], $setting);
171-
}
172-
if ($validationResult !== true) {
173-
$setting['severity'] = $setting['severity'] ?? 'warning';
174-
if (!in_array($setting['severity'], $this->severities)) {
175-
$setting['severity'] = 'warning';
166+
if (empty($setting['value']) && !empty($setting['empty'])) {
167+
$validationResult = true;
168+
} else {
169+
if (!isset($setting['value'])) {
170+
$validationResult = $this->settingValidator->testEmptyBecomesDefault(null, $setting);
171+
} else if (isset($setting['test'])) {
172+
$setting['value'] = $setting['value'] ?? '';
173+
$validationResult = $this->evaluateFunctionForSetting($setting['test'], $setting);
174+
}
175+
if ($validationResult !== true) {
176+
$setting['severity'] = $setting['severity'] ?? 'warning';
177+
if (!in_array($setting['severity'], $this->severities)) {
178+
$setting['severity'] = 'warning';
179+
}
180+
$setting['errorMessage'] = $validationResult;
176181
}
177-
$setting['errorMessage'] = $validationResult;
178182
}
179183
$setting['error'] = $validationResult !== true ? true : false;
180184
}

src/Model/Table/SettingProviders/CerebrateSettingsProvider.php

+4
Original file line numberDiff line numberDiff line change
@@ -140,27 +140,31 @@ protected function generateSettingsConfiguration()
140140
'type' => 'string',
141141
'description' => __('The hostname of an HTTP proxy for outgoing sync requests. Leave empty to not use a proxy.'),
142142
'test' => 'testHostname',
143+
'empty' => true
143144
],
144145
'Proxy.port' => [
145146
'name' => __('Port'),
146147
'severity' => 'info',
147148
'type' => 'integer',
148149
'description' => __('The TCP port for the HTTP proxy.'),
149150
'test' => 'testForRangeXY',
151+
'empty' => true
150152
],
151153
'Proxy.user' => [
152154
'name' => __('User'),
153155
'type' => 'string',
154156
'description' => __('The authentication username for the HTTP proxy.'),
155157
'default' => 'admin',
156158
'dependsOn' => 'proxy.host',
159+
'empty' => true
157160
],
158161
'Proxy.password' => [
159162
'name' => __('Password'),
160163
'type' => 'string',
161164
'description' => __('The authentication password for the HTTP proxy.'),
162165
'default' => '',
163166
'dependsOn' => 'proxy.host',
167+
'empty' => true
164168
],
165169
],
166170
],

0 commit comments

Comments
 (0)