[Nifty-B Clock] Improve settings page

master
Alessandro Cocco 2022-05-21 15:34:44 +02:00
parent 58f9461dac
commit adf7c75365
1 changed files with 22 additions and 40 deletions

View File

@ -1,49 +1,31 @@
(function (back) { (function (back) {
const storage = require('Storage'); const settings = Object.assign({ color: 63488 }, require("Storage").readJSON("ffcniftyb.json", true));
const SETTINGS_FILE = "ffcniftyb.json";
const colors = { const colors = {
65535: 'White', 65535: /*LANG*/"White",
63488: 'Red', 63488: /*LANG*/"Red",
65504: 'Yellow', 65504: /*LANG*/"Yellow",
2047: 'Cyan', 2047: /*LANG*/"Cyan",
2016: 'Green', 2016: /*LANG*/"Green",
31: 'Blue', 31: /*LANG*/"Blue",
0: 'Black', 0: /*LANG*/"Black"
} }
function load(settings) { const menu = {};
return Object.assign(settings, storage.readJSON(SETTINGS_FILE, 1) || {}); menu[""] = { title: "Nifty-B Clock" };
} menu["< Back"] = back;
function save(settings) { Object.keys(colors).forEach(color => {
storage.write(SETTINGS_FILE, settings) var label = colors[color];
} menu[label] = {
value: settings.color == color,
const settings = load({ onchange: () => {
color: 63488 /* red */, settings.color = color;
require("Storage").write("ffcniftyb.json", settings);
setTimeout(load, 10);
}
};
}); });
const saveColor = (color) => () => { E.showMenu(menu);
settings.color = color;
save(settings);
back();
};
function showMenu(items, opt) {
items[''] = opt || {};
items['< Back'] = back;
E.showMenu(items);
}
showMenu(
Object.keys(colors).reduce((menu, color) => {
menu[colors[color]] = saveColor(color);
return menu;
}, {}),
{
title: 'Color',
selected: Object.keys(colors).indexOf(settings.color)
}
);
}); });