From 63e2296d1c8f966faa5c1f24ee5274acb070de20 Mon Sep 17 00:00:00 2001 From: Barely Removable Date: Mon, 31 Aug 2026 20:29:19 -0700 Subject: [PATCH] Add an All Days button to the schedule editor Selects all 7 day toggles in one click instead of clicking each one. Scoped selectors to .day-toggle[data-day] throughout so the new button (which has no data-day) can't accidentally get read as a day or toggled by the generic day-button click handler. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01H6TgffxTvYhqxykAbVQg2v --- app.py | 2 +- static/js/app.js | 13 ++++++++++--- templates/dashboard.html | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app.py b/app.py index 8fa95e0..89bf0d7 100644 --- a/app.py +++ b/app.py @@ -8,7 +8,7 @@ import automation import scheduler import storage -APP_VERSION = "0.4.1" +APP_VERSION = "0.5.0" APP_VERSION_DATE = "2026-09-01" app = Flask(__name__) diff --git a/static/js/app.js b/static/js/app.js index 6871f4d..1a174e4 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -59,19 +59,26 @@ function initRuleCard(card) { saveSchedule(card, { enabledOverride: e.target.checked }); }); - card.querySelectorAll(".day-toggle").forEach((btn) => { + card.querySelectorAll(".day-toggle[data-day]").forEach((btn) => { btn.addEventListener("click", () => btn.classList.toggle("active")); }); + const allDaysBtn = card.querySelector(".day-toggle-all"); + if (allDaysBtn) { + allDaysBtn.addEventListener("click", () => { + card.querySelectorAll(".day-toggle[data-day]").forEach((btn) => btn.classList.add("active")); + }); + } + card.querySelector(".add-schedule").addEventListener("click", () => { const time = card.querySelector(".new-time").value; - const days = [...card.querySelectorAll(".day-toggle.active")].map((b) => b.dataset.day); + const days = [...card.querySelectorAll(".day-toggle[data-day].active")].map((b) => b.dataset.day); if (!time || days.length === 0) { alert("Pick a time and at least one day."); return; } addChip(card, time, days); - card.querySelectorAll(".day-toggle.active").forEach((b) => b.classList.remove("active")); + card.querySelectorAll(".day-toggle[data-day].active").forEach((b) => b.classList.remove("active")); saveSchedule(card); }); diff --git a/templates/dashboard.html b/templates/dashboard.html index b384060..c01fb18 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -60,6 +60,7 @@ {% for d in days %} {% endfor %} +