diff --git a/apps/berlinc/settings.js b/apps/berlinc/settings.js index 6abbf70c7..90579c84c 100644 --- a/apps/berlinc/settings.js +++ b/apps/berlinc/settings.js @@ -1,19 +1,35 @@ (function(back) { - let settings = require('Storage').readJSON('berlin-clock.json',1)||{}; - function save(key, value) { - settings[key] = value; - require('Storage').write('berlin-clock.json',settings); + const SETTINGS_FILE = 'berlin-clock.json' + + // initialize structure + let s = { + 'showdate' : false + } + + const storage = require('Storage') + const savedsettings = storage.readJSON(SETTINGS_FILE,1) || {} + // read values from storage (if any) + for (const key in savedsettings) { + s[key]=savedsettings[key] + } + + function save (key) { + return function(value) { + s[key]=value; + storage.write(SETTINGS_FILE,s); } - const appMenu = { - '': {'title': 'Berlin Clock Settings'}, - '< Back': back - /*, - 'Show Date': { - value: settings.show_date||false, - format: v => v?'On':'Off', - onchange: v => {save('showdate', v)} - } - */ - }; - E.showMenu(appMenu) - }) \ No newline at end of file + } + + const booleanFormat = b => ( b ? 'on':'off' ) + + const menu = { + '' : { 'title' : 'Berlin Clock Settings'} , + '< Back' : back, + 'Show Date' : { + value : s.showdate, + format: booleanFormat, + onChange: save('showdat'), + }, + } + E.showMenu(menu) +}) \ No newline at end of file