2023-10-17 17:17:09 +00:00
|
|
|
{
|
|
|
|
const filename = 'grocery_list.json';
|
|
|
|
const settings = require("Storage").readJSON(filename,1)|| { products: [] };
|
2023-01-05 17:41:51 +00:00
|
|
|
let menu;
|
2021-10-06 18:01:27 +00:00
|
|
|
|
2023-10-17 17:17:09 +00:00
|
|
|
const updateSettings = function() {
|
2021-10-06 18:01:27 +00:00
|
|
|
require("Storage").writeJSON(filename, settings);
|
|
|
|
Bangle.buzz();
|
2023-10-17 17:17:09 +00:00
|
|
|
};
|
2021-10-06 18:01:27 +00:00
|
|
|
|
2023-10-17 17:17:09 +00:00
|
|
|
const twoChat = function(n) {
|
2021-10-06 18:01:27 +00:00
|
|
|
if(n<10) return '0'+n;
|
|
|
|
return ''+n;
|
2023-10-17 17:17:09 +00:00
|
|
|
};
|
2021-10-06 18:01:27 +00:00
|
|
|
|
2023-10-17 17:17:09 +00:00
|
|
|
const sortMenu = function() {
|
2023-01-05 17:41:51 +00:00
|
|
|
mainMenu.sort((a,b) => {
|
|
|
|
const byValue = a.value-b.value;
|
|
|
|
return byValue !== 0 ? byValue : a.index-b.index;
|
|
|
|
});
|
|
|
|
if (menu) {
|
|
|
|
menu.draw();
|
|
|
|
}
|
2023-10-17 17:17:09 +00:00
|
|
|
};
|
2023-01-05 17:41:51 +00:00
|
|
|
|
|
|
|
const mainMenu = settings.products.map((p,i) => ({
|
|
|
|
title: twoChat(p.quantity)+' '+p.name,
|
|
|
|
value: p.ok,
|
|
|
|
format: v => v?'[x]':'[ ]',
|
|
|
|
index: i,
|
|
|
|
onchange: v => {
|
|
|
|
settings.products[i].ok = v;
|
|
|
|
updateSettings();
|
|
|
|
sortMenu();
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
sortMenu();
|
|
|
|
|
2023-10-17 17:17:09 +00:00
|
|
|
mainMenu[''] = {
|
|
|
|
'title': 'Grocery list',
|
|
|
|
remove: () => {
|
|
|
|
},
|
|
|
|
};
|
2021-10-06 18:01:27 +00:00
|
|
|
mainMenu['< Back'] = ()=>{load();};
|
2023-01-05 17:41:51 +00:00
|
|
|
|
|
|
|
Bangle.loadWidgets();
|
|
|
|
menu = E.showMenu(mainMenu);
|
|
|
|
Bangle.drawWidgets();
|
2023-10-17 17:17:09 +00:00
|
|
|
}
|