diff --git a/src/routes/model/+page.svelte b/src/routes/model/+page.svelte index 5b66f26095e9fcb9eebfd22ddc603ebc83fb5f32..a0830a9271d0d94eb83980099393df8a2f41090b 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}