Admin: collapsible / multi-column config groups, help text, grouped and dependent selects
Ports the timers lane's admin schema additions unchanged (field `group`,
`showWhen`, type `switch`, `optionsRoute`) so the two branches merge
cleanly, and extends them for modules whose settings are richer than a
handful of fields:
- manifest `configGroups[name]` = { collapsed: true | false | "whenSet",
columns: 2–4, help } — a credentials block that folds once it holds a
saved secret, a show/hide checklist laid out as a compact grid
- `help` on any field: one line of guidance under the control
- select options may carry `group` → rendered as <optgroup>s (a folder
tree browsable inside the select)
- `optionsDependsOn: "<key>"` refetches a select's options with that
field's current value as a query parameter, now and on every change
- a save re-runs the card's dynamic option fetches, so a list that needed
the just-saved credentials fills in without a page reload; a blank
"— choose —" is no longer added when the module offers its own blank
option
Documented in docs/MODULE-GUIDE.md.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
50caf02023
commit
106ce0c1ce
@@ -485,6 +485,7 @@ function adminModuleView(id) {
|
||||
hasServer: Boolean(man.server),
|
||||
enabled: isEnabled(id),
|
||||
configSchema: man.configSchema || {},
|
||||
configGroups: man.configGroups && typeof man.configGroups === 'object' ? man.configGroups : {},
|
||||
config: values,
|
||||
passwordSet,
|
||||
mountError: entry?.error || '',
|
||||
@@ -505,7 +506,7 @@ function applyConfigPatch(id, patch) {
|
||||
value = current[key] || '';
|
||||
}
|
||||
if (type === 'number') value = Number(value) || 0;
|
||||
else if (type === 'boolean') value = Boolean(value);
|
||||
else if (type === 'boolean' || type === 'switch') value = Boolean(value);
|
||||
else if (type === 'endpoint') {
|
||||
const src = value && typeof value === 'object' ? value : {};
|
||||
value = {
|
||||
|
||||
Reference in New Issue
Block a user