dr-sandbox/app/web/templates/_reducer_form.html
Michael Pilosov ca0ad9fd2d rename folder
2026-04-21 19:30:45 -06:00

90 lines
3.6 KiB
HTML

{#
Partial: the parameter rows for one reducer.
Expects: reducer_key (str) OR default_reducer (on first render)
spec (dict) OR default_spec
#}
{% set rk = reducer_key if reducer_key is defined else default_reducer %}
{% set s = spec if spec is defined else default_spec %}
{% if not s %}
<p class="flash err">No reducers available — no supported package importable.</p>
{% else %}
<div class="form-grid">
{% for name, kind, default, choices, help in s.key %}
{% set locked = (name in ('n_components', 'n_dims')) %}
<label for="embed__{{ name }}">
{{ name }}
{% if help %}<span class="hint">{{ help }}</span>{% endif %}
</label>
{% if kind == 'bool' %}
<span>
<input type="checkbox" id="embed__{{ name }}" name="embed__{{ name }}"
{% if default %}checked{% endif %} />
</span>
{% elif choices %}
<select id="embed__{{ name }}" name="embed__{{ name }}">
{% for c in choices %}
<option value="{{ c }}" {% if c == default %}selected{% endif %}>{{ c if c != "" else "(none)" }}</option>
{% endfor %}
</select>
{% elif kind == 'int' %}
<input type="number" step="1" id="embed__{{ name }}" name="embed__{{ name }}"
value="{{ default }}" {% if locked %}readonly{% endif %} />
{% elif kind == 'float' %}
<input type="number" step="any" id="embed__{{ name }}" name="embed__{{ name }}"
value="{{ default }}" />
{% elif kind == 'int_or_null' %}
<input type="text" id="embed__{{ name }}" name="embed__{{ name }}"
value="{{ default }}" placeholder="int or empty" />
{% else %}
<input type="text" id="embed__{{ name }}" name="embed__{{ name }}"
value="{{ default }}" />
{% endif %}
{% endfor %}
</div>
{% if s.advanced %}
<details class="advanced">
<summary>show advanced</summary>
<div class="advanced-body">
<div class="form-grid">
{% for name, kind, default, choices, help in s.advanced %}
<label for="embed__{{ name }}">
{{ name }}
{% if help %}<span class="hint">{{ help }}</span>{% endif %}
</label>
{% if kind == 'bool' %}
<span>
<input type="checkbox" id="embed__{{ name }}" name="embed__{{ name }}"
{% if default %}checked{% endif %} />
</span>
{% elif choices %}
<select id="embed__{{ name }}" name="embed__{{ name }}">
{% for c in choices %}
<option value="{{ c }}" {% if c == default %}selected{% endif %}>{{ c if c != "" else "(none)" }}</option>
{% endfor %}
</select>
{% elif kind == 'int' %}
<input type="number" step="1" id="embed__{{ name }}" name="embed__{{ name }}"
value="{{ default }}" />
{% elif kind == 'float' %}
<input type="number" step="any" id="embed__{{ name }}" name="embed__{{ name }}"
value="{{ default }}" />
{% elif kind == 'int_or_null' %}
<input type="text" id="embed__{{ name }}" name="embed__{{ name }}"
value="{{ default }}" placeholder="int or empty" />
{% else %}
<input type="text" id="embed__{{ name }}" name="embed__{{ name }}"
value="{{ default }}" />
{% endif %}
{% endfor %}
</div>
</div>
</details>
{% endif %}
{% endif %}