alarm repeat menu: Do not change value on back

Instead of saving repeat to originalRepeat create a new repeatObj
master
Erik Andresen 2023-10-14 09:25:39 +02:00
parent 4f47636195
commit 927306cf8a
1 changed files with 12 additions and 7 deletions

View File

@ -294,7 +294,6 @@ function decodeRepeat(alarm) {
}
function showEditRepeatMenu(repeat, day, dowChangeCallback) {
var originalRepeat = repeat;
var dow;
const menu = {
@ -327,26 +326,32 @@ function showEditRepeatMenu(repeat, day, dowChangeCallback) {
},
/*LANG*/"Custom": {
value: isCustom ? decodeRepeat({ rp: true, dow: dow }) : false,
onchange: () => setTimeout(showCustomDaysMenu, 10, dow, dowChangeCallback, originalRepeat, originalDow)
onchange: () => setTimeout(showCustomDaysMenu, 10, dow, dowChangeCallback, repeat, originalDow)
}
};
} else {
// var date = day; // eventually: detect day of date and configure a repeat e.g. 3rd Monday of Month
dow = EVERY_DAY;
repeat = repeat || {interval: "month", num: 1};
const repeatObj = repeat || {interval: "month", num: 1};
restOfMenu = {
/*LANG*/"Every": {
value: repeat.num,
value: repeatObj.num,
min: 1,
onchange: v => repeat.num = v
onchange: v => {
repeat = repeatObj;
repeat.num = v;
}
},
/*LANG*/"Interval": {
value: INTERVALS.indexOf(repeat.interval),
value: INTERVALS.indexOf(repeatObj.interval),
format: v => INTERVAL_LABELS[v],
min: 0,
max: INTERVALS.length - 1,
onchange: v => repeat.interval = INTERVALS[v]
onchange: v => {
repeat = repeatObj;
repeat.interval = INTERVALS[v];
}
}
};
}