From 471d18f7fa3ab5c380cb853cec72c181dfca8c80 Mon Sep 17 00:00:00 2001 From: Proddy Date: Sun, 26 Feb 2023 15:20:55 +0100 Subject: [PATCH] add automatic id so table renders --- src/web/WebSchedulerService.cpp | 4 ++++ src/web/WebSchedulerService.h | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/web/WebSchedulerService.cpp b/src/web/WebSchedulerService.cpp index 83c3d31f2..9fef650b6 100644 --- a/src/web/WebSchedulerService.cpp +++ b/src/web/WebSchedulerService.cpp @@ -36,8 +36,11 @@ void WebSchedulerService::begin() { // this creates the scheduler file, saving it to the FS void WebScheduler::read(WebScheduler & webScheduler, JsonObject & root) { JsonArray schedule = root.createNestedArray("schedule"); + uint8_t count = 0; + char s[3]; for (const ScheduleItem & scheduleItem : webScheduler.scheduleItems) { JsonObject si = schedule.createNestedObject(); + si["id"] = Helpers::smallitoa(s, count++); // create unique ID as a string si["active"] = scheduleItem.active; si["flags"] = scheduleItem.flags; si["time"] = scheduleItem.time; @@ -71,6 +74,7 @@ StateUpdateResult WebScheduler::update(JsonObject & root, WebScheduler & webSche // create each schedule item, overwriting any previous settings // ignore the id (as this is only used in the web for table rendering) auto si = ScheduleItem(); + si.id = schedule["id"].as(); si.active = schedule["active"]; si.flags = schedule["flags"]; si.time = schedule["time"].as(); diff --git a/src/web/WebSchedulerService.h b/src/web/WebSchedulerService.h index a72b386b0..989092ab7 100644 --- a/src/web/WebSchedulerService.h +++ b/src/web/WebSchedulerService.h @@ -28,6 +28,7 @@ namespace emsesp { class ScheduleItem { public: + std::string id; // unqiue id boolean active; uint8_t flags; uint16_t elapsed_min; // total mins from 00:00 @@ -60,7 +61,7 @@ class WebSchedulerService : public StatefulService { HttpEndpoint _httpEndpoint; FSPersistence _fsPersistence; - std::list * scheduleItems; + std::list * scheduleItems; // pointer to the list of schedule events }; } // namespace emsesp