From 745e1f5e1c5910708a24dd29c97b719cef0c937a Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Thu, 3 Oct 2024 13:37:13 +0200 Subject: [PATCH] loading of old data --- api/data/batu.json | 2 +- ui/src/components/formView.vue | 48 +++++++++++++++++++++++++--------- 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/api/data/batu.json b/api/data/batu.json index 8ee082f..d13bfc0 100644 --- a/api/data/batu.json +++ b/api/data/batu.json @@ -1 +1 @@ -{"2024-10-03T07:36:00.000Z":{"day":"2024-10-03T07:36:00.000Z","count":0,"difficulty":3,"sleep":7,"rest":3,"freeTime":2,"stress":3}} \ No newline at end of file +{"2024-10-03":{"day":"2024-10-03","count":0,"difficulty":3,"sleep":7,"rest":3,"freeTime":2,"stress":3}} \ No newline at end of file diff --git a/ui/src/components/formView.vue b/ui/src/components/formView.vue index 26bc987..aae6e5b 100644 --- a/ui/src/components/formView.vue +++ b/ui/src/components/formView.vue @@ -81,28 +81,32 @@ const setUpRestSlider = () => { setTimeout( () => { - restSlider.value.setUp( 7, 3 ); + restSlider.value.setUp( 7, rest.value ); }, 500 ); } const setUpDifficultySlider = () => { setTimeout( () => { - difficultySlider.value.setUp( 7, 3 ); + difficultySlider.value.setUp( 7, difficulty.value ); }, 1000 ); } const setUpStressSlider = () => { setTimeout( () => { - stressSlider.value.setUp( 7, 3 ); + stressSlider.value.setUp( 7, stress.value ); }, 1500 ); } const setUpFreeTimeSlider = () => { setTimeout( () => { - freeTimeSlider.value.setUp( 5, 2 ); + freeTimeSlider.value.setUp( 5, freeTime.value ); }, 2000 ); } + const getDate = ( date: Date ): string => { + return date.toISOString().slice( 0, date.toISOString().indexOf( 'T' ) ); + } + const submitForm = () => { if ( date.value && difficulty.value > -1 && stress.value > -1 && rest.value > -1 && cigaretCount.value >= 0 && sleepHours.value >= 0 ) { if ( sleepHours.value < 2 ) { @@ -117,11 +121,21 @@ } } + interface SaveData { + day: string; + count: number; + difficulty: number; + sleep: number; + rest: number; + freeTime: number; + stress: number; + } + const sendForm = () => { fetch( localStorage.getItem( 'url' ) + '/update', { method: 'post', body: JSON.stringify( { - day: date.value?.toISOString(), + day: getDate( date.value ?? new Date() ), count: cigaretCount.value, difficulty: difficulty.value, sleep: sleepHours.value, @@ -141,18 +155,28 @@ alert( `Failed to save data (${ res.status })` ); } } ); - } const dateUpdatedHandler = () => { - console.log( date.value ); if ( date.value ) { if ( date.value.getTime() <= new Date().getTime() + 10000 ) { hasSelectedDate.value = true; - // TODO: Load old data, if present - - if ( oldData[ date.value.toISOString() ] ) { - // TODO: Finish + // Load old data, if present + if ( oldData[ getDate( date.value ) ] ) { + const data = oldData[ getDate( date.value ) ]; + cigaretCount.value = data.count ?? 0; + difficulty.value = data.difficulty ?? 3; + rest.value = data.rest ?? 3; + freeTime.value = data.freeTime ?? 2; + sleepHours.value = data.sleep ?? 0; + stress.value = data.stress ?? 3; + } else { + cigaretCount.value = 0; + difficulty.value = 3; + rest.value = 3; + freeTime.value = 2; + sleepHours.value = 0; + stress.value = 3; } } else { const errors = [ @@ -175,7 +199,7 @@ interface OldData { - [key: string]: object; + [key: string]: SaveData; } let oldData: OldData = {};