From 70039dfe0eb3dcb6817d2d5cd758559f6437b0cc Mon Sep 17 00:00:00 2001 From: fastium Date: Wed, 14 May 2025 23:30:25 +0200 Subject: [PATCH] feat(web-app): selected user/room/device This part allow to select from where the data from with some option - user - room - device --- web-app/src/App.vue | 12 +++- web-app/src/Measures/TimeSeriesManager.ts | 57 ++++++++++++++++- web-app/src/components/ControlPanel.vue | 74 ++++++++++++++++++----- web-app/src/shims-vue.d.ts | 6 -- 4 files changed, 125 insertions(+), 24 deletions(-) delete mode 100644 web-app/src/shims-vue.d.ts diff --git a/web-app/src/App.vue b/web-app/src/App.vue index 4aceff1..2b70f69 100644 --- a/web-app/src/App.vue +++ b/web-app/src/App.vue @@ -14,6 +14,7 @@ :show-humidity.sync="showHumidity" @add-temperature="addTemperature" @refresh="refreshData" + :manager="manager" /> @@ -41,9 +42,6 @@ import { URL, USERNAME, PASSWORD, USER, ROOM, DEVICE, APP_NAME } from "./const"; import { Serie } from "./Measures/Serie"; let httpClient = new HttpClient(URL, USERNAME, PASSWORD); - -// console.log(httpClient.newValue(URL, USERNAME, PASSWORD)); - let manager = new TimeSeriesManager(httpClient); export default defineComponent({ @@ -66,6 +64,14 @@ export default defineComponent({ addTemperature() { // Implement your functionality here console.log("Add temperature clicked"); + manager + .getNewValue(USER, ROOM, DEVICE) + .then((result) => {}) + .catch((error) => { + console.error("Error asking data:", error); + this.error = "Failed to load data. Please try again later."; + this.loading = false; + }); }, refreshData() { diff --git a/web-app/src/Measures/TimeSeriesManager.ts b/web-app/src/Measures/TimeSeriesManager.ts index bde57be..f5533b7 100644 --- a/web-app/src/Measures/TimeSeriesManager.ts +++ b/web-app/src/Measures/TimeSeriesManager.ts @@ -2,10 +2,61 @@ import { Prop } from "vue"; import { Serie } from "./Serie"; import { HttpClient } from "../Services/HttpClient"; import { TEMPERATURE, HUMIDITY, TYPE, VALUE } from "../const"; +import { ref } from "vue"; export class TimeSeriesManager { private client: HttpClient; + selected_user = { + user: "Rémi", + tag: "remi", + }; + selected_room = { + room: "Bedroom", + tag: "Bedroom", + }; + selected_device = { + device: "Door sensor", + tag: "DoorSensor", + }; + + user_options = [ + { + user: "Rémi", + tag: "remi", + }, + { + user: "Sylvan", + tag: "sylvan", + }, + ]; + + room_options = [ + { + room: "23N309", + tag: "23N309", + }, + { + room: "Bedroom", + tag: "Bedroom", + }, + { + room: "Terrasse", + tag: "Terrasse", + }, + ]; + + device_options = [ + { + device: "Door sensor", + tag: "DoorSensor", + }, + { + device: "Shed", + tag: "Shed", + }, + ]; + constructor(client: HttpClient) { this.client = client; } @@ -16,7 +67,11 @@ export class TimeSeriesManager { device: string ): Promise { return this.client - .getValues(user, room, device) + .getValues( + this.selected_user.tag, + this.selected_room.tag, + this.selected_device.tag + ) .then((response) => { // Filter temperature records let temperatureRecords = response.data.filter( diff --git a/web-app/src/components/ControlPanel.vue b/web-app/src/components/ControlPanel.vue index 5194001..8ef220f 100644 --- a/web-app/src/components/ControlPanel.vue +++ b/web-app/src/components/ControlPanel.vue @@ -4,28 +4,61 @@ Add Temperature -
-

Sensors

-
- - -
-
- + +
+ + + + + + + + + +
diff --git a/web-app/src/shims-vue.d.ts b/web-app/src/shims-vue.d.ts deleted file mode 100644 index 3804a43..0000000 --- a/web-app/src/shims-vue.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable */ -declare module '*.vue' { - import type { DefineComponent } from 'vue' - const component: DefineComponent<{}, {}, any> - export default component -}