[alarm] show alarm groups if setting is ON, fix 0.44 selectedAlarm bug
parent
0e4fa182eb
commit
1aa407963e
|
|
@ -45,6 +45,7 @@
|
||||||
0.40: Use substring of message when it's longer than fits the designated menu entry.
|
0.40: Use substring of message when it's longer than fits the designated menu entry.
|
||||||
0.41: Fix a menu bug affecting alarms with empty messages.
|
0.41: Fix a menu bug affecting alarms with empty messages.
|
||||||
0.42: Fix date not getting saved in event edit menu when tapping Confirm
|
0.42: Fix date not getting saved in event edit menu when tapping Confirm
|
||||||
0.43: New settings: Show confirm, Show Overflow, Show Type.
|
0.43: New settings: Show confirm, Show Overflow, Show Group.
|
||||||
0.44: Add "delete timer after expiration" setting to events.
|
0.44: Add "delete timer after expiration" setting to events.
|
||||||
0.45: Fix new alarm when selectedAlarm is undefined
|
0.45: Fix new alarm when selectedAlarm is undefined
|
||||||
|
0.46: Show alarm groups if the Show Group setting is ON.
|
||||||
|
|
|
||||||
|
|
@ -73,39 +73,54 @@ function formatAlarmProperty(msg) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showMainMenu() {
|
function showMainMenu(group) {
|
||||||
const menu = {
|
const menu = {
|
||||||
"": { "title": /*LANG*/"Alarms & Timers" },
|
"": { "title": group ? group : /*LANG*/"Alarms & Timers" },
|
||||||
"< Back": () => load(),
|
"< Back": () => !group ? load() : showMainMenu(),
|
||||||
/*LANG*/"New...": () => showNewMenu()
|
/*LANG*/"New...": () => showNewMenu(group)
|
||||||
};
|
};
|
||||||
|
const getGroups = settings.showGroup && !group;
|
||||||
|
const groups = getGroups ? {} : undefined;
|
||||||
|
var showAlarm;
|
||||||
|
|
||||||
alarms.forEach((e, index) => {
|
alarms.forEach((e, index) => {
|
||||||
menu[trimLabel(getLabel(e),40)] = {
|
showAlarm = !settings.showGroup || (getGroups && !e.group) || (settings.showGroup && !getGroups && e.group === group);
|
||||||
value: e.on ? (e.timer ? iconTimerOn : iconAlarmOn) : (e.timer ? iconTimerOff : iconAlarmOff),
|
if(showAlarm) {
|
||||||
onchange: () => setTimeout(e.timer ? showEditTimerMenu : showEditAlarmMenu, 10, e, index)
|
menu[trimLabel(getLabel(e),40)] = {
|
||||||
};
|
value: e.on ? (e.timer ? iconTimerOn : iconAlarmOn) : (e.timer ? iconTimerOff : iconAlarmOff),
|
||||||
|
onchange: () => setTimeout(e.timer ? showEditTimerMenu : showEditAlarmMenu, 10, e, index, undefined, group)
|
||||||
|
};
|
||||||
|
} else if (getGroups) {
|
||||||
|
groups[e.group] = undefined;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
menu[/*LANG*/"Advanced"] = () => showAdvancedMenu();
|
if (!group) {
|
||||||
|
Object.keys(groups).sort().forEach(g => menu[g] = () => showMainMenu(g));
|
||||||
|
menu[/*LANG*/"Advanced"] = () => showAdvancedMenu();
|
||||||
|
}
|
||||||
|
|
||||||
E.showMenu(menu);
|
E.showMenu(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
function showNewMenu() {
|
function showNewMenu(group) {
|
||||||
E.showMenu({
|
const newMenu = {
|
||||||
"": { "title": /*LANG*/"New..." },
|
"": { "title": /*LANG*/"New..." },
|
||||||
"< Back": () => showMainMenu(),
|
"< Back": () => showMainMenu(group),
|
||||||
/*LANG*/"Alarm": () => showEditAlarmMenu(undefined, undefined),
|
/*LANG*/"Alarm": () => showEditAlarmMenu(undefined, undefined, false, null, group),
|
||||||
/*LANG*/"Timer": () => showEditTimerMenu(undefined, undefined),
|
/*LANG*/"Timer": () => showEditTimerMenu(undefined, undefined),
|
||||||
/*LANG*/"Event": () => showEditAlarmMenu(undefined, undefined, true)
|
/*LANG*/"Event": () => showEditAlarmMenu(undefined, undefined, true, null, group)
|
||||||
});
|
};
|
||||||
|
|
||||||
|
if (group) delete newMenu[/*LANG*/"Timer"];
|
||||||
|
E.showMenu(newMenu);
|
||||||
}
|
}
|
||||||
|
|
||||||
function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate, group) {
|
||||||
var isNew = alarmIndex === undefined;
|
var isNew = alarmIndex === undefined;
|
||||||
|
|
||||||
var alarm = require("sched").newDefaultAlarm();
|
var alarm = require("sched").newDefaultAlarm();
|
||||||
|
if (isNew && group) alarm.group = group;
|
||||||
if (withDate || (selectedAlarm && selectedAlarm.date)) {
|
if (withDate || (selectedAlarm && selectedAlarm.date)) {
|
||||||
alarm.del = require("sched").getSettings().defaultDeleteExpiredTimers;
|
alarm.del = require("sched").getSettings().defaultDeleteExpiredTimers;
|
||||||
}
|
}
|
||||||
|
|
@ -127,7 +142,7 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
"< Back": () => {
|
"< Back": () => {
|
||||||
prepareAlarmForSave(alarm, alarmIndex, time, date);
|
prepareAlarmForSave(alarm, alarmIndex, time, date);
|
||||||
saveAndReload();
|
saveAndReload();
|
||||||
showMainMenu();
|
showMainMenu(group);
|
||||||
},
|
},
|
||||||
/*LANG*/"Hour": {
|
/*LANG*/"Hour": {
|
||||||
value: time.h,
|
value: time.h,
|
||||||
|
|
@ -171,7 +186,7 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
keyboard.input({text:alarm.msg}).then(result => {
|
keyboard.input({text:alarm.msg}).then(result => {
|
||||||
alarm.msg = result;
|
alarm.msg = result;
|
||||||
prepareAlarmForSave(alarm, alarmIndex, time, date, true);
|
prepareAlarmForSave(alarm, alarmIndex, time, date, true);
|
||||||
setTimeout(showEditAlarmMenu, 10, alarm, alarmIndex, withDate);
|
setTimeout(showEditAlarmMenu, 10, alarm, alarmIndex, withDate, scroll, group);
|
||||||
});
|
});
|
||||||
}, 100);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
|
@ -184,7 +199,7 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
keyboard.input({text:alarm.group}).then(result => {
|
keyboard.input({text:alarm.group}).then(result => {
|
||||||
alarm.group = result;
|
alarm.group = result;
|
||||||
prepareAlarmForSave(alarm, alarmIndex, time, date, true);
|
prepareAlarmForSave(alarm, alarmIndex, time, date, true);
|
||||||
setTimeout(showEditAlarmMenu, 10, alarm, alarmIndex, withDate);
|
setTimeout(showEditAlarmMenu, 10, alarm, alarmIndex, withDate, scroll, group);
|
||||||
});
|
});
|
||||||
}, 100);
|
}, 100);
|
||||||
}
|
}
|
||||||
|
|
@ -202,7 +217,7 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
alarm.rp = repeat;
|
alarm.rp = repeat;
|
||||||
alarm.dow = dow;
|
alarm.dow = dow;
|
||||||
prepareAlarmForSave(alarm, alarmIndex, time, date, true);
|
prepareAlarmForSave(alarm, alarmIndex, time, date, true);
|
||||||
setTimeout(showEditAlarmMenu, 10, alarm, alarmIndex, withDate);
|
setTimeout(showEditAlarmMenu, 10, alarm, alarmIndex, withDate, scroll, group);
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/*LANG*/"Vibrate": require("buzz_menu").pattern(alarm.vibrate, v => alarm.vibrate = v),
|
/*LANG*/"Vibrate": require("buzz_menu").pattern(alarm.vibrate, v => alarm.vibrate = v),
|
||||||
|
|
@ -218,11 +233,11 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
value: alarm.hidden || false,
|
value: alarm.hidden || false,
|
||||||
onchange: v => alarm.hidden = v
|
onchange: v => alarm.hidden = v
|
||||||
},
|
},
|
||||||
/*LANG*/"Cancel": () => showMainMenu(),
|
/*LANG*/"Cancel": () => showMainMenu(group),
|
||||||
/*LANG*/"Confirm": () => {
|
/*LANG*/"Confirm": () => {
|
||||||
prepareAlarmForSave(alarm, alarmIndex, time, date);
|
prepareAlarmForSave(alarm, alarmIndex, time, date);
|
||||||
saveAndReload();
|
saveAndReload();
|
||||||
showMainMenu();
|
showMainMenu(group);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -244,10 +259,10 @@ function showEditAlarmMenu(selectedAlarm, alarmIndex, withDate) {
|
||||||
if (confirm) {
|
if (confirm) {
|
||||||
alarms.splice(alarmIndex, 1);
|
alarms.splice(alarmIndex, 1);
|
||||||
saveAndReload();
|
saveAndReload();
|
||||||
showMainMenu();
|
showMainMenu(group);
|
||||||
} else {
|
} else {
|
||||||
alarm.t = require("time_utils").encodeTime(time);
|
alarm.t = require("time_utils").encodeTime(time);
|
||||||
setTimeout(showEditAlarmMenu, 10, alarm, alarmIndex, withDate);
|
setTimeout(showEditAlarmMenu, 10, alarm, alarmIndex, withDate, scroll, group);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue