BangleApps/apps/flashcards/settings.js

62 lines
1.8 KiB
JavaScript
Raw Normal View History

2023-07-07 16:51:40 +00:00
(function(back) {
var storage = require("Storage");
var settingsFile = "flashcards.settings.json";
2023-07-07 16:51:40 +00:00
var dataFile = "flashcards.data.json";
var trelloTimeout = 3000;
var trelloURL = "https://api.trello.com/1/lists/$cardsListId/cards/?fields=name%2Cdesc%2Clist";
var settings = Object.assign({
listId: ""
}, storage.readJSON(settingsFile, true) || {});
2023-07-07 16:51:40 +00:00
function writeSettings() {
storage.writeJSON(settingsFile, settings);
2023-07-07 16:51:40 +00:00
}
var settingsMenu = {
"" : { "title" : "Flash Cards" },
"< Back" : () => back(),
/*"List ID": {
2023-07-07 17:28:59 +00:00
value: settings.listId,
onchange: v=> { settings.listId=v; writeSettings();}
}
,*/
2023-07-07 16:51:40 +00:00
"Get from Trello": () => {
2023-07-07 18:44:29 +00:00
if (!storage.read(settingsFile)) { writeSettings();}
2023-07-07 16:51:40 +00:00
E.showPrompt("Download cards?").then((v) => {
let delay = 500;
if (v) {
if (Bangle.http)
{
if (settings.listId)
2023-07-07 16:51:40 +00:00
{
delay = delay + trelloTimeout;
E.showMessage('i: downloading');
Bangle.http(trelloURL.replace("$cardsListId", settings.listId),
{
timeout : trelloTimeout,
method: "GET",
headers: { "Content-Type": "application/json" }
}).then(data=>{
var cardsJSON = JSON.parse(data.resp);
2023-07-07 18:11:45 +00:00
storage.write(dataFile, JSON.stringify(cardsJSON));
2023-07-07 16:51:40 +00:00
E.showMessage('i: downloaded');
})
.catch((e) => {
E.showMessage("e: " + e);
});
} else {
E.showMessage("e: list Id not found");
}
} else {
E.showMessage("e: Gadgetbridge not found");
}
}
setTimeout(() => E.showMenu(settingsMenu), delay);
});
}
}
// Show the menu
E.showMenu(settingsMenu);
})//(load)