aboutsummaryrefslogtreecommitdiff
path: root/src_frontend/Components/Editor/Controls.svelte
diff options
context:
space:
mode:
authorJakob Stendahl <jakobste@uio.no>2021-10-21 14:12:12 +0200
committerJakob Stendahl <jakobste@uio.no>2021-10-21 14:12:12 +0200
commitf243dc8d7527cde3d5b5a4f6e659cf7604f5ae2a (patch)
tree143b71f2bb6b84370505473d4624d52f1e264bb0 /src_frontend/Components/Editor/Controls.svelte
parenta69d9dbc80dfaa0fc3eef3b5ac48e1c2a25fa08b (diff)
downloadLuxcena-Neo-f243dc8d7527cde3d5b5a4f6e659cf7604f5ae2a.tar.gz
Luxcena-Neo-f243dc8d7527cde3d5b5a4f6e659cf7604f5ae2a.zip
:sparkles: Make all variable-types changeable from both home and editor
Diffstat (limited to 'src_frontend/Components/Editor/Controls.svelte')
-rw-r--r--src_frontend/Components/Editor/Controls.svelte28
1 files changed, 25 insertions, 3 deletions
diff --git a/src_frontend/Components/Editor/Controls.svelte b/src_frontend/Components/Editor/Controls.svelte
index 302aa7a..4b5c8b6 100644
--- a/src_frontend/Components/Editor/Controls.svelte
+++ b/src_frontend/Components/Editor/Controls.svelte
@@ -13,12 +13,17 @@
}
function setPower() { openSocket.emit("power:set", power_on); }
function setVar(ev) {
- openSocket.emit("var:set", ev.target.id, ev.target.value);
+ if (ev.target.type == "checkbox") {
+ openSocket.emit("var:set", ev.target.id, ev.target.checked);
+ } else {
+ openSocket.emit("var:set", ev.target.id, ev.target.value);
+ }
}
openSocket.on("power", (power) => power_on = power);
openSocket.on("brightness", (value) => brightnessValue = value);
openSocket.on("vars", (vars) => variables = vars);
+ openSocket.on("vars", (vars) => console.log(vars));
openSocket.on("var", (name, value) => {
name = name.replace("variable/", "");
if (value.value == null) {
@@ -27,6 +32,7 @@
variables[name] = value;
}
variables = variables;
+ console.log(variables);
});
onMount(() => {
@@ -75,9 +81,25 @@
</div>
{#each Object.entries(variables) as [name, value]}
- <div>
- <label for="{name}"><PrettyVar varText={name} /></label>
+ <div class:var-group={["BOOL", "TRIGGER"].includes(value.type)}>
+ <label for="{name}"><PrettyVar varText={name} /></label>
+ {#if value.type == "INT"}
+ <div class="var-group">
+ <input type="range" id="{name}" bind:value={value.value} on:change={setVar} min={value.min} max={value.max} />
+ {value.value}
+ </div>
+ {:else if value.type == "FLOAT"}
+ <div class="var-group">
+ <input type="range" id="{name}" bind:value={value.value} on:change={setVar} min={value.min} max={value.max} step={value.step} />
+ {value.value}
+ </div>
+ {:else if value.type == "BOOL"}
+ <input type="checkbox" id="{name}" bind:checked={value.value} on:change={setVar} />
+ {:else if value.type == "TRIGGER"}
+ <button type="button" id="{name}" value="true" on:click={setVar}>Trigger</button>
+ {:else}
<input type="text" id="{name}" bind:value={value.value} on:blur={setVar} />
+ {/if}
</div>
{/each}
</div> \ No newline at end of file