Update settings.js

master
foostuff 2022-03-05 11:46:56 +01:00 committed by GitHub
parent 7027baea54
commit ae221a9cd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 88 additions and 103 deletions

View File

@ -1,107 +1,92 @@
// Settings menu for the enhanced Anton clock (function (back) {
var FILE = "clockcal.json";
(function(back) { settings = Object.assign({
var FILE = "clockcal.json"; CAL_ROWS: 4, //number of calendar rows.(weeks) Shouldn't exceed 5 when using widgets.
// Load settings BUZZ_ON_BT: true, //2x slow buzz on disconnect, 2x fast buzz on connect. Will be extra widget eventually
var settings = Object.assign({ MODE24: true, //24h mode vs 12h mode
secondsOnUnlock: false, FIRSTDAY: 6, //First day of the week: mo, tu, we, th, fr, sa, su
}, require('Storage').readJSON(FILE, true) || {}); REDSUN: true, // Use red color for sunday?
REDSAT: true, // Use red color for saturday?
}, require('Storage').readJSON(FILE, true) || {});
function writeSettings() {
require('Storage').writeJSON(FILE, settings);
}
// Helper method which uses int-based menu item for set of string values function writeSettings() {
function stringItems(startvalue, writer, values) { require('Storage').writeJSON(FILE, settings);
return { }
value: (startvalue === undefined ? 0 : values.indexOf(startvalue)),
format: v => values[v],
min: 0,
max: values.length - 1,
wrap: true,
step: 1,
onchange: v => {
writer(values[v]);
writeSettings();
}
};
}
// Helper method which breaks string set settings down to local settings object menu = {
function stringInSettings(name, values) { "": { "title": "Clock & Calendar" },
return stringItems(settings[name], v => settings[name] = v, values); "< Back": () => back(),
} 'Buzz(dis)conn.?': {
value: settings.BUZZ_ON_BT,
var mainmenu = { format: v => v ? "On" : "Off",
"": { onchange: v => {
"title": "clockcal clock" settings.BUZZ_ON_BT = v;
}, writeSettings();
"< Back": () => back(), }
"Seconds...": () => E.showMenu(secmenu), },
"Date": stringInSettings("dateOnMain", ["Long", "Short", "ISO8601"]), '#Calendar Rows': {
"Show Weekday": { value: settings.CAL_ROWS,
value: (settings.weekDay !== undefined ? settings.weekDay : true), min: 0, max: 6,
format: v => v ? "On" : "Off", onchange: v => {
onchange: v => { settings.CAL_ROWS = v;
settings.weekDay = v; writeSettings();
writeSettings(); }
} },
}, 'Clock mode': {
"Show CalWeek": { value: settings.MODE24,
value: (settings.calWeek !== undefined ? settings.calWeek : false), format: v => v ? "24h" : "12h",
format: v => v ? "On" : "Off", onchange: v => {
onchange: v => { settings.MODE24 = v;
settings.calWeek = v; writeSettings();
writeSettings(); }
} },
}, 'First Day': {
"Uppercase": { value: settings.FIRSTDAY,
value: (settings.upperCase !== undefined ? settings.upperCase : true), min: 0, max: 6,
format: v => v ? "On" : "Off", format: v => ["Sun", "Sat", "Fri", "Thu", "Wed", "Tue", "Mon"][v],
onchange: v => { onchange: v => {
settings.upperCase = v; settings.FIRSTDAY = v;
writeSettings(); writeSettings();
} }
}, },
"Vector font": { 'Red Saturday?': {
value: (settings.vectorFont !== undefined ? settings.vectorFont : false), value: settings.REDSAT,
format: v => v ? "On" : "Off", format: v => v ? "On" : "Off",
onchange: v => { onchange: v => {
settings.vectorFont = v; settings.REDSAT = v;
writeSettings(); writeSettings();
} }
}, },
}; 'Red Sunday?': {
value: settings.REDSUN,
// Submenu format: v => v ? "On" : "Off",
var secmenu = { onchange: v => {
"": { settings.REDSUN = v;
"title": "Show seconds..." writeSettings();
}, }
"< Back": () => E.showMenu(mainmenu), },
"Show": stringInSettings("secondsMode", ["Never", "Unlocked", "Always"]), 'Load deafauls?': {
"With \":\"": { value: 0,
value: (settings.secondsWithColon !== undefined ? settings.secondsWithColon : true), min: 0, max: 1,
format: v => v ? "On" : "Off", format: v => ["No", "Yes"][v],
onchange: v => { onchange: v => {
settings.secondsWithColon = v; if (v == 1) {
writeSettings(); settings = {
} CAL_ROWS: 4, //number of calendar rows.(weeks) Shouldn't exceed 5 when using widgets.
}, BUZZ_ON_BT: true, //2x slow buzz on disconnect, 2x fast buzz on connect.
"Color": { MODE24: true, //24h mode vs 12h mode
value: (settings.secondsColoured !== undefined ? settings.secondsColoured : true), FIRSTDAY: 6, //First day of the week: mo, tu, we, th, fr, sa, su
format: v => v ? "On" : "Off", REDSUN: true, // Use red color for sunday?
onchange: v => { REDSAT: true, // Use red color for saturday?
settings.secondsColoured = v; };
writeSettings(); writeSettings();
} load()
}, }
"Date": stringInSettings("dateOnSecs", ["Year", "Weekday", "No"]) }
}; },
}
// Actually display the menu // Show the menu
E.showMenu(mainmenu); E.showMenu(menu);
})
});
// end of file