mirror of https://github.com/espruino/BangleApps
ClockFace_menu: addSettingsFile with included Storage code
parent
aded08293f
commit
5ffb6117e6
|
@ -199,4 +199,17 @@ require("ClockFace_menu").addItems(menu, save, {
|
|||
});
|
||||
E.showMenu(menu);
|
||||
|
||||
```
|
||||
|
||||
Or even simpler, if you just want to use a basic settings file:
|
||||
```js
|
||||
let menu = {
|
||||
"": {"title": /*LANG*/"<clock name> Settings"},
|
||||
/*LANG*/"< Back": back,
|
||||
};
|
||||
require("ClockFace_menu").addSettingsFile(menu, "<appid>.settings.json", [
|
||||
"showDate", "loadWidgets"
|
||||
]);
|
||||
E.showMenu(menu);
|
||||
|
||||
```
|
|
@ -23,4 +23,26 @@ exports.addItems = function(menu, callback, items) {
|
|||
};
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a basic settings menu for app, reading/writing to settings file
|
||||
*
|
||||
* @param {object} menu Menu to add settings to
|
||||
* @param {string} settingsFile File to read/write settings to/from
|
||||
* @param {string[]} items List of settings to add
|
||||
*/
|
||||
exports.addSettingsFile = function(menu, settingsFile, items) {
|
||||
let s = require("Storage").readJSON(settingsFile, true) || {};
|
||||
|
||||
function save(key, value) {
|
||||
s[key] = value;
|
||||
require("Storage").writeJSON(settingsFile, s);
|
||||
}
|
||||
|
||||
let toAdd = {};
|
||||
items.forEach(function(key) {
|
||||
toAdd[key] = s[key];
|
||||
});
|
||||
exports.addItems(menu, save, toAdd);
|
||||
};
|
Loading…
Reference in New Issue