summaryrefslogtreecommitdiffstats
path: root/modules-available/baseconfig
diff options
context:
space:
mode:
authorSimon Rettberg2022-09-13 12:14:08 +0200
committerSimon Rettberg2022-09-13 12:14:08 +0200
commita5e33c6a36352e2f6917fa1131c7e5fa2f5fc77f (patch)
treee605a35c25a5896590954406998c0324e16022e9 /modules-available/baseconfig
parent[statistics] Filter: Allow mac address with ':' and no separator at all (diff)
downloadslx-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.php2
-rw-r--r--modules-available/baseconfig/page.inc.php19
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;
}
}