From 1078117660b5982efaddd6b8a8e53ba7f3bcd56e Mon Sep 17 00:00:00 2001 From: duc_buitien <duc.buitien@ilr.rwth-aachen.de> Date: Wed, 28 Aug 2024 14:24:10 +0200 Subject: [PATCH] add variable Stepsize of numberinputs --- src/routes/model/+page.svelte | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/routes/model/+page.svelte b/src/routes/model/+page.svelte index 5b66f260..a0830a92 100644 --- a/src/routes/model/+page.svelte +++ b/src/routes/model/+page.svelte @@ -139,7 +139,7 @@ let modules: string[] = []; //Variables and Methods for modals - let open:boolean = false; + let open: boolean = false; let loopOpen: boolean = false; let modulesModalOpen: boolean = false; let modulesModalIndex: number; @@ -153,7 +153,7 @@ }) //Function for loading list of available modules from server - async function loadAvailableModules(){ + async function loadAvailableModules() { //transitionally reading from convergenceloop_conf.xml //TO-DO: replace with something more recent const res = await fetch("http://127.0.0.1:8000/convergence"); @@ -221,7 +221,7 @@ } //Wrapper to give Click-Eventhandler a synchronous Output - function getModuleConfClickWrapper(item:string) { + function getModuleConfClickWrapper(item: string) { getModuleConf(item).catch(console.error); return (event: MouseEvent & { currentTarget: EventTarget & HTMLLIElement }) => { toggle(); @@ -382,6 +382,18 @@ groups.push(newGroup); updateAll() } + + //Calculate Stepsize of number inputs from current value + function calcStepSize(value:number){ + const numberString = value.toString() + if (!numberString.includes('.')) { + return 1; + } else { + const decimalPart = numberString.split('.')[1]; + return Math.pow(10, -decimalPart.length); + } + } + </script> <Container> <h2>Simulationsmodel</h2> @@ -431,7 +443,7 @@ </Button> <Button color="dark" outline on:click={()=>{modulesModalIndex=groupIndex;toggleLoop()}}> <Icon name="arrow-clockwise"/> - {#if groupitem.loop==='true'} + {#if groupitem.loop === 'true'} {groupitem.loopsize} {:else} auto @@ -502,7 +514,7 @@ <Input type="range" min={element.min} max={element.max} step={1} bind:value={element.bind.value} placeholder="range placeholder" on:change={()=>checkModalChanged()}/> {/if} - <Input id="uiElement{index}" type="number" min={element.min} max={element.max} + <Input id="uiElement{index}" type="number" min={element.min} max={element.max} step={calcStepSize(element.bind.value)} bind:value={element.bind.value} on:change={()=>checkModalChanged()}/> <Tooltip target="uiElement{index}" placement="left"> {element.description} @@ -562,7 +574,7 @@ <Input name="loop" type="radio" bind:group={groups[modulesModalIndex].loop} value="false" label={"Autoloop"}/> <br> - {#if groups[modulesModalIndex].loop==='true'} + {#if groups[modulesModalIndex].loop === 'true'} <InputGroup size="sm"> <InputGroupText>Loopsize</InputGroupText> <Input type="number" min={0} bind:value={groups[modulesModalIndex].loopsize} -- GitLab