From f6a416bf8f98dc84ff83d7d99d8d8d08c0562e49 Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Tue, 4 Oct 2022 19:38:35 +0200 Subject: [PATCH] webapp: Added turnon/turnoff dialogue --- webapp/src/components/HomeView.vue | 122 +++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/webapp/src/components/HomeView.vue b/webapp/src/components/HomeView.vue index 75bf85e..5c908ae 100644 --- a/webapp/src/components/HomeView.vue +++ b/webapp/src/components/HomeView.vue @@ -52,6 +52,14 @@ +
+ +
+
+ + @@ -288,6 +349,14 @@ export default defineComponent({ alertMessageLimit: "", alertTypeLimit: "info", showAlertLimit: false, + + powerSettingView: {} as bootstrap.Modal, + powerSettingSerial: 0, + powerSettingLoading: true, + alertMessagePower: "", + alertTypePower: "info", + showAlertPower: false, + successCommandPower: "", }; }, created() { @@ -299,8 +368,10 @@ export default defineComponent({ this.eventLogView = new bootstrap.Modal('#eventView'); this.devInfoView = new bootstrap.Modal('#devInfoView'); this.limitSettingView = new bootstrap.Modal('#limitSettingView'); + this.powerSettingView = new bootstrap.Modal('#powerSettingView'); (this.$refs.limitSettingView as HTMLElement).addEventListener("hide.bs.modal", this.onHideLimitSettings); + (this.$refs.powerSettingView as HTMLElement).addEventListener("hide.bs.modal", this.onHidePowerSettings); }, unmounted() { this.closeSocket(); @@ -479,6 +550,57 @@ export default defineComponent({ } this.targetLimitType = type; }, + + onShowPowerSettings(serial: number) { + this.powerSettingLoading = true; + fetch("/api/power/status") + .then((response) => response.json()) + .then((data) => { + this.successCommandPower = data[serial].power_set_status; + this.powerSettingSerial = serial; + this.powerSettingLoading = false; + }); + this.powerSettingView.show(); + }, + + onHidePowerSettings() { + this.powerSettingSerial = 0; + this.showAlertPower = false; + }, + + onSetPowerSettings(turnOn: boolean) { + const data = { + serial: this.powerSettingSerial, + power: turnOn, + }; + const formData = new FormData(); + formData.append("data", JSON.stringify(data)); + + console.log(data); + + fetch("/api/power/config", { + method: "POST", + body: formData, + }) + .then(function (response) { + if (response.status != 200) { + throw response.status; + } else { + return response.json(); + } + }) + .then( + (response) => { + if (response.type == "success") { + this.powerSettingView.hide(); + } else { + this.alertMessagePower = response.message; + this.alertTypePower = response.type; + this.showAlertPower = true; + } + } + ) + }, }, }); \ No newline at end of file