diff options
author | Simon Rettberg | 2022-09-13 12:14:08 +0200 |
---|---|---|
committer | Simon Rettberg | 2022-09-13 12:14:08 +0200 |
commit | a5e33c6a36352e2f6917fa1131c7e5fa2f5fc77f (patch) | |
tree | e605a35c25a5896590954406998c0324e16022e9 /modules-available/baseconfig | |
parent | [statistics] Filter: Allow mac address with ':' and no separator at all (diff) | |
download | slx-admin-a5e33c6a36352e2f6917fa1131c7e5fa2f5fc77f.tar.gz slx-admin-a5e33c6a36352e2f6917fa1131c7e5fa2f5fc77f.tar.xz slx-admin-a5e33c6a36352e2f6917fa1131c7e5fa2f5fc77f.zip |
[baseconfig/baseconfig_bwlp] Make preferred sound output free text
Diffstat (limited to 'modules-available/baseconfig')
-rw-r--r-- | modules-available/baseconfig/inc/validator.inc.php | 2 | ||||
-rw-r--r-- | modules-available/baseconfig/page.inc.php | 19 |
2 files changed, 19 insertions, 2 deletions
diff --git a/modules-available/baseconfig/inc/validator.inc.php b/modules-available/baseconfig/inc/validator.inc.php index 38c595c4..23e3e8f8 100644 --- a/modules-available/baseconfig/inc/validator.inc.php +++ b/modules-available/baseconfig/inc/validator.inc.php @@ -33,6 +33,8 @@ class Validator return self::validateMultiList($data[1], $displayValue); case 'multiinput': return self::validateMultiInput($data[1] ?? [], $displayValue); + case 'suggestions': + return true; default: ErrorHandler::traceError('Unknown validation method: ' . $data[0]); } diff --git a/modules-available/baseconfig/page.inc.php b/modules-available/baseconfig/page.inc.php index 7f9bef1f..a1921084 100644 --- a/modules-available/baseconfig/page.inc.php +++ b/modules-available/baseconfig/page.inc.php @@ -294,7 +294,7 @@ class Page_BaseConfig extends Page if ($disabled) { $args['disabled'] = true; } - $inner = ""; + $extra = $inner = ""; /* -- */ $parts = explode(':', $validator, 2); @@ -314,6 +314,21 @@ class Page_BaseConfig extends Page unset($args['type']); $current = ''; + } elseif ($parts[0] === 'suggestions') { + + $extra = '<datalist id="list-' . $setting . '">'; + $items = explode('|', $parts[1]); + foreach ($items as $item) { + $extra .= '<option>' . htmlspecialchars($item) . '</option>'; + } + $extra .= '</datalist>'; + + $tag = 'input'; + $args['value'] = $current; + $args['type'] = 'text'; + $args['list'] = 'list-' . $setting; + $current = ''; + } elseif ($parts[0] == 'multilist') { $items = explode('|', $parts[1]); @@ -362,7 +377,7 @@ class Page_BaseConfig extends Page $output .= '>' . $inner . "</$tag>"; } - return $output; + return $output . $extra; } } |