90 lines
3.6 KiB
HTML
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 %}
|