feat: add active time window to countdown rules

UI: Active Window Start/End time inputs on countdown form.
Leave blank = runs any time. End before start = crosses midnight.
Scheduler: checks current time against window before starting timer;
supports cross-midnight windows (e.g. 9:00 AM to 4:00 AM next day).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
SRS IT
2026-03-28 22:32:29 -04:00
parent e8b365e5a7
commit 3c155f7cfd
3 changed files with 47 additions and 10 deletions
@@ -394,10 +394,6 @@
</div>
<div id="dwm-countdown-fields" style="display:none">
<div class="form-group">
<label>Countdown Duration (minutes)</label>
<input type="number" id="dwm-countdown-mins" min="1" max="1440" placeholder="60" />
</div>
<div class="form-group">
<label>Condition</label>
<select id="dwm-countdown-action">
@@ -405,6 +401,22 @@
<option value="off_to_on">If device turns OFF → auto-ON after duration</option>
</select>
</div>
<div class="form-group">
<label>Countdown Duration (minutes)</label>
<input type="number" id="dwm-countdown-mins" min="1" max="1440" placeholder="60" />
</div>
<div class="flex-row">
<div class="form-group" style="flex:1">
<label>Active Window Start</label>
<input type="text" id="dwm-countdown-window-start" placeholder="e.g. 9:00 AM" />
</div>
<div class="form-group" style="flex:1">
<label>Active Window End</label>
<input type="text" id="dwm-countdown-window-end" placeholder="e.g. 4:00 AM" />
<div style="font-size:0.75rem;color:var(--muted);margin-top:3px">End before start = next day</div>
</div>
</div>
<div style="font-size:0.75rem;color:var(--muted);margin-bottom:8px">Leave window blank to run at any time.</div>
</div>
<div id="dwm-alwayson-info" style="display:none;margin-bottom:12px;padding:10px;background:rgba(48,209,88,.1);border:1px solid rgba(48,209,88,.3);border-radius:6px;font-size:0.82rem;color:#4ade80">