|
1 | | - |
2 | 1 | (function(back) { |
3 | 2 | var FILE = "smartbatt.settings.json"; |
4 | | - // Load settings |
5 | 3 | var settings = Object.assign({ |
6 | | - //Record Interval stored in ms |
7 | | - doLogging:false |
| 4 | + doLogging:false, |
| 5 | + updateInterval:18000000 |
8 | 6 | }, require('Storage').readJSON(FILE, true) || {}); |
9 | 7 |
|
10 | 8 | function writeSettings() { |
11 | 9 | require('Storage').writeJSON(FILE, settings); |
12 | 10 | } |
13 | 11 |
|
14 | | - // Show the menu |
15 | 12 | E.showMenu({ |
16 | | - "" : { "title" : "Smart Day Battery" }, |
| 13 | + "" : { "title" : "Smart Battery" }, |
17 | 14 | "< Back" : () => back(), |
18 | 15 |
|
19 | 16 | 'Clear Data': function () { |
|
28 | 25 | } |
29 | 26 | }); |
30 | 27 | }, |
31 | | - 'Log Battery': { |
32 | | - value: !!settings.doLogging, // !! converts undefined to false |
| 28 | + 'Update Interval': { |
| 29 | + value: 0|settings.updateInterval, |
| 30 | + min:1800000, |
| 31 | + max:172800000, |
| 32 | + step:1800000, |
| 33 | + format: v=>{ |
| 34 | + var totalMinutes = Math.floor(v / 60000); |
| 35 | + var h = Math.floor(totalMinutes / 60); |
| 36 | + var m = totalMinutes % 60; |
| 37 | + |
| 38 | + let result = ''; |
| 39 | + if (h > 0) result += `${h}h${m > 0 ? ' ' : ''}`; |
| 40 | + if (m > 0) result += `${m}m`; |
| 41 | + |
| 42 | + return result || '0m'; |
| 43 | + }, |
| 44 | + onchange: v => { |
| 45 | + settings.updateInterval = v; |
| 46 | + writeSettings(); |
| 47 | + } |
| 48 | + }, |
| 49 | + 'Log Battery': { |
| 50 | + value: !!settings.doLogging, |
33 | 51 | onchange: v => { |
34 | 52 | settings.doLogging = v; |
35 | 53 | writeSettings(); |
36 | 54 | } |
37 | | - // format: ... may be specified as a function which converts the value to a string |
38 | | - // if the value is a boolean, showMenu() will convert this automatically, which |
39 | | - // keeps settings menus consistent |
40 | | - }, |
| 55 | + } |
41 | 56 | }); |
42 | 57 | }) |
0 commit comments