Spaces:
Running
Running
Merge pull request #2 from biggraph/darabos-checkbox
Browse files- server/ops.py +1 -1
- web/src/NodeParameter.svelte +21 -8
server/ops.py
CHANGED
|
@@ -61,7 +61,7 @@ class Parameter(BaseConfig):
|
|
| 61 |
if default is inspect._empty:
|
| 62 |
default = None
|
| 63 |
if type is None or type is inspect._empty:
|
| 64 |
-
type = typeof(default) if default else None
|
| 65 |
return Parameter(name=name, default=default, type=type)
|
| 66 |
|
| 67 |
class Input(BaseConfig):
|
|
|
|
| 61 |
if default is inspect._empty:
|
| 62 |
default = None
|
| 63 |
if type is None or type is inspect._empty:
|
| 64 |
+
type = typeof(default) if default is not None else None
|
| 65 |
return Parameter(name=name, default=default, type=type)
|
| 66 |
|
| 67 |
class Input(BaseConfig):
|
web/src/NodeParameter.svelte
CHANGED
|
@@ -3,21 +3,24 @@
|
|
| 3 |
export let value;
|
| 4 |
export let meta;
|
| 5 |
export let onChange;
|
|
|
|
| 6 |
</script>
|
| 7 |
|
| 8 |
<label class="param">
|
| 9 |
-
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
| 10 |
{#if meta?.type?.format === 'collapsed'}
|
|
|
|
| 11 |
<button class="collapsed-param form-control form-control-sm">
|
| 12 |
⋯
|
| 13 |
</button>
|
| 14 |
{:else if meta?.type?.format === 'textarea'}
|
|
|
|
| 15 |
<textarea class="form-control form-control-sm"
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
{:else if meta?.type?.enum}
|
|
|
|
| 21 |
<select class="form-select form-select-sm"
|
| 22 |
value={value || meta.type.enum[0]}
|
| 23 |
on:change={(evt) => onChange(evt.currentTarget.value)}
|
|
@@ -26,11 +29,21 @@
|
|
| 26 |
<option value={option}>{option}</option>
|
| 27 |
{/each}
|
| 28 |
</select>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
{:else}
|
|
|
|
| 30 |
<input class="form-control form-control-sm"
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
{/if}
|
| 35 |
</label>
|
| 36 |
|
|
|
|
| 3 |
export let value;
|
| 4 |
export let meta;
|
| 5 |
export let onChange;
|
| 6 |
+
const BOOLEAN = "<class 'bool'>";
|
| 7 |
</script>
|
| 8 |
|
| 9 |
<label class="param">
|
|
|
|
| 10 |
{#if meta?.type?.format === 'collapsed'}
|
| 11 |
+
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
| 12 |
<button class="collapsed-param form-control form-control-sm">
|
| 13 |
⋯
|
| 14 |
</button>
|
| 15 |
{:else if meta?.type?.format === 'textarea'}
|
| 16 |
+
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
| 17 |
<textarea class="form-control form-control-sm"
|
| 18 |
+
rows="6"
|
| 19 |
+
value={value}
|
| 20 |
+
on:change={(evt) => onChange(evt.currentTarget.value)}
|
| 21 |
+
/>
|
| 22 |
{:else if meta?.type?.enum}
|
| 23 |
+
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
| 24 |
<select class="form-select form-select-sm"
|
| 25 |
value={value || meta.type.enum[0]}
|
| 26 |
on:change={(evt) => onChange(evt.currentTarget.value)}
|
|
|
|
| 29 |
<option value={option}>{option}</option>
|
| 30 |
{/each}
|
| 31 |
</select>
|
| 32 |
+
{:else if meta?.type?.type === BOOLEAN}
|
| 33 |
+
<label class="form-check-label">
|
| 34 |
+
<input class="form-check-input"
|
| 35 |
+
type="checkbox"
|
| 36 |
+
checked={value}
|
| 37 |
+
on:change={(evt) => onChange(evt.currentTarget.checked)}
|
| 38 |
+
/>
|
| 39 |
+
{name.replace(/_/g, ' ')}
|
| 40 |
+
</label>
|
| 41 |
{:else}
|
| 42 |
+
<span class="param-name">{name.replace(/_/g, ' ')}</span>
|
| 43 |
<input class="form-control form-control-sm"
|
| 44 |
+
value={value}
|
| 45 |
+
on:change={(evt) => onChange(evt.currentTarget.value)}
|
| 46 |
+
/>
|
| 47 |
{/if}
|
| 48 |
</label>
|
| 49 |
|