diff --git a/model/alarm.go b/model/alarm.go index fd82b99..34f9d51 100644 --- a/model/alarm.go +++ b/model/alarm.go @@ -149,6 +149,7 @@ type AlarmRepeated struct { FollowingRoutines []Identifier `json:"routines"` IgnoreExceptions bool `json:"ignore_exceptions"` Comment string `json:"comment,omitempty"` + Disabled bool `json:"disabled,omitempty"` Excepts Exceptions `json:"excepts,omitempty"` NextTime *time.Time `json:"next_time,omitempty"` } @@ -185,6 +186,10 @@ func (a *AlarmRepeated) FillExcepts(cfg *config.Config, db *LevelDBStorage) erro } func (a *AlarmRepeated) GetNextOccurence(cfg *config.Config, db *LevelDBStorage) *time.Time { + if a.Disabled { + return nil + } + if len(a.Excepts) == 0 { a.FillExcepts(cfg, db) } diff --git a/ui/src/lib/alarmrepeated.js b/ui/src/lib/alarmrepeated.js index 5b841aa..fa16855 100644 --- a/ui/src/lib/alarmrepeated.js +++ b/ui/src/lib/alarmrepeated.js @@ -5,13 +5,14 @@ export class AlarmRepeated { } } - update({ id, weekday, time, routines, ignore_exceptions, comment, excepts, next_time }) { + update({ id, weekday, time, routines, disabled, ignore_exceptions, comment, excepts, next_time }) { this.id = id; this.weekday = weekday; this.time = time; this.routines = routines == null ? [] : routines; this.ignore_exceptions = ignore_exceptions; this.comment = comment; + this.disabled = disabled == true; if (excepts !== undefined) this.excepts = excepts; if (next_time !== undefined) diff --git a/ui/src/lib/components/AlarmRepeatedList.svelte b/ui/src/lib/components/AlarmRepeatedList.svelte index a1c93cf..95e61c2 100644 --- a/ui/src/lib/components/AlarmRepeatedList.svelte +++ b/ui/src/lib/components/AlarmRepeatedList.svelte @@ -35,6 +35,8 @@ href="alarms/repeated/{alarm.id}" class="list-group-item list-group-item-action" class:active={$page.params.kind === "repeated" && $page.params.aid === alarm.id} + class:text-muted={alarm.disabled} + style:text-decoration={alarm.disabled?"line-through":null} > Les {weekdayStr(alarm.weekday)}s à {alarm.time} diff --git a/ui/src/routes/alarms/[kind]/[aid]/+page.svelte b/ui/src/routes/alarms/[kind]/[aid]/+page.svelte index e767f30..fb73c63 100644 --- a/ui/src/routes/alarms/[kind]/[aid]/+page.svelte +++ b/ui/src/routes/alarms/[kind]/[aid]/+page.svelte @@ -118,6 +118,10 @@ Heure du réveil {alarm.time} + + Alarme active ? + {obj.disabled = !obj.disabled; obj.save().then(() => {obj.next_time = null; alarmsRepeated.refresh()});}} checked={!obj.disabled} /> {!obj.disabled?"oui":"non"} + Ignorer les exceptions ? {obj.ignore_exceptions = !obj.ignore_exceptions; obj.save();}} checked={obj.ignore_exceptions} /> {obj.ignore_exceptions?"oui":"non"}