{#- chirp-ui: Config row — label | control (toggle, select, editable) Two-column field set for config dashboards. Use config_row_list as container. Mirrors settings_row_list pattern but with interactive controls. Usage: from "chirpui/config_row.html" import config_row_list, config_row_toggle, config_row_select, config_row_editable call config_row_list() config_row_toggle("acp.enabled", "ACP enabled", checked=config.acp.enabled, form_action="/config/set", attrs_map={...}) config_row_select("logs.level", "Log level", options=[...], selected=config.logs.level, form_action="/config/set", attrs_map={...}) config_row_editable("endpoint", config.acp.endpoint, edit_url="/config/edit/acp.endpoint", swap_id="acp-endpoint") end -#} {% from "chirpui/inline_edit_field.html" import inline_edit_field_display %} {% def config_row_list(cls="", hoverable=false, divided=false, relaxed=false) %} {% set mods = "" %} {% if hoverable %}{% set mods = mods ~ " chirpui-config-row-list--hoverable" %}{% end %} {% if divided %}{% set mods = mods ~ " chirpui-config-row-list--divided" %}{% end %} {% if relaxed %}{% set mods = mods ~ " chirpui-config-row-list--relaxed" %}{% end %}
{% slot %}
{% end %} {% def config_row_toggle(name, label, checked=false, form_action=none, attrs_map=none, errors=none, cls="", swap_id=none, oob=false) %} {% set row_id = swap_id or ("config-row-" ~ name | replace(".", "-")) %}
{{ label }} {% if form_action and attrs_map %}
{% else %}
{% end %}
{% end %} {% def config_row_select(name, label, options, selected="", form_action=none, attrs_map=none, errors=none, cls="") %}
{% if form_action and attrs_map %}
{% else %} {% end %}
{% end %} {% def config_row_display(term, detail, cls="") %}
{{ term }} {{ detail }}
{% end %} {% def config_row_editable(term, value, edit_url, swap_id=none, edit_label="Edit", cls="") %} {% set sid = swap_id or ("config-row-" ~ term | replace(".", "-")) %}
{{ term }} {{ inline_edit_field_display(value=value, edit_url=edit_url, swap_target="#" ~ sid, swap_id=sid, edit_label=edit_label, cls="chirpui-config-row__editable") }}
{% end %}