score: prevent warning in web ide for settings module

master
Mika Dede 2021-09-28 15:57:56 +02:00
parent 7a98c039e7
commit ea3cfece67
No known key found for this signature in database
GPG Key ID: 546586DC38D45BBD
1 changed files with 172 additions and 170 deletions

View File

@ -1,185 +1,187 @@
(function (back, inApp, ret) { (function () {
function fillSettingsWithDefaults(settings) { return (function (back, inApp, ret) {
if (settings.winSets == null) { function fillSettingsWithDefaults(settings) {
settings.winSets = 2; if (settings.winSets == null) {
} settings.winSets = 2;
if (settings.setsPerPage == null) { }
settings.setsPerPage = 5; if (settings.setsPerPage == null) {
} settings.setsPerPage = 5;
if (settings.winScore == null) { }
settings.winScore = 21; if (settings.winScore == null) {
} settings.winScore = 21;
if (settings.enableTwoAhead == null) { }
settings.enableTwoAhead = true; if (settings.enableTwoAhead == null) {
} settings.enableTwoAhead = true;
if (settings.enableMaxScore == null) { }
settings.enableMaxScore = true; if (settings.enableMaxScore == null) {
} settings.enableMaxScore = true;
if (settings.maxScore == null) { }
settings.maxScore = 30; if (settings.maxScore == null) {
} settings.maxScore = 30;
if (settings.enableTennisScoring == null) { }
settings.enableTennisScoring = false; if (settings.enableTennisScoring == null) {
settings.enableTennisScoring = false;
}
if (settings.enableMaxScoreTiebreak == null) {
settings.enableMaxScoreTiebreak = false;
}
if (settings.maxScoreTiebreakWinScore == null) {
settings.maxScoreTiebreakWinScore = 6;
}
if (settings.maxScoreTiebreakEnableTwoAhead == null) {
settings.maxScoreTiebreakEnableTwoAhead = true;
}
if (settings.maxScoreTiebreakEnableMaxScore == null) {
settings.maxScoreTiebreakEnableMaxScore = false;
}
if (settings.maxScoreTiebreakMaxScore == null) {
settings.maxScoreTiebreakMaxScore = 15;
}
return settings;
} }
if (settings.enableMaxScoreTiebreak == null) { const fileName = 'score.json';
settings.enableMaxScoreTiebreak = false; let settings = require('Storage').readJSON(fileName, 1) || {};
} const offon = ['No', 'Yes'];
if (settings.maxScoreTiebreakWinScore == null) {
settings.maxScoreTiebreakWinScore = 6; let presetsFileName = 'score.presets.json';
} let presets = require('Storage').readJSON(presetsFileName);
if (settings.maxScoreTiebreakEnableTwoAhead == null) { let presetNames = Object.keys(presets);
settings.maxScoreTiebreakEnableTwoAhead = true;
} let changed = false;
if (settings.maxScoreTiebreakEnableMaxScore == null) {
settings.maxScoreTiebreakEnableMaxScore = false; function save(settings) {
} require('Storage').writeJSON(fileName, settings);
if (settings.maxScoreTiebreakMaxScore == null) {
settings.maxScoreTiebreakMaxScore = 15;
} }
return settings; function setAndSave(key, value) {
} changed = true;
settings[key] = value;
const fileName = 'score.json'; if (key === 'winScore' && settings.maxScore < value) {
let settings = require('Storage').readJSON(fileName, 1) || {}; settings.maxScore = value;
const offon = ['No', 'Yes']; }
save(settings);
let presetsFileName = 'score.presets.json';
let presets = require('Storage').readJSON(presetsFileName);
let presetNames = Object.keys(presets);
let changed = false;
function save(settings) {
require('Storage').writeJSON(fileName, settings);
}
function setAndSave(key, value) {
changed = true;
settings[key] = value;
if (key === 'winScore' && settings.maxScore < value) {
settings.maxScore = value;
}
save(settings);
}
settings = fillSettingsWithDefaults(settings);
if (ret) {
return settings;
}
const presetMenu = function (appMenuBack) {
let ret = function (changed) { E.showMenu(appMenu(appMenuBack, changed ? 2 : null)); };
let m = {
'': {'title': 'Score Presets'},
'< Back': ret,
};
for (let i = 0; i < presetNames.length; i++) {
m[presetNames[i]] = (function (i) {
return function() {
changed = true;
settings = fillSettingsWithDefaults(presets[presetNames[i]]);
save(settings);
ret(true);
};
})(i);
} }
return m; settings = fillSettingsWithDefaults(settings);
};
const appMenu = function (back, selected) { if (ret) {
let m = {}; return settings;
m[''] = {'title': 'Score Settings'};
if (selected != null) {
m[''].selected = selected;
} }
m['< Back'] = function () { back(settings, changed); };
m['Presets'] = function () { E.showMenu(presetMenu(back)); }; const presetMenu = function (appMenuBack) {
m['Sets to win'] = { let ret = function (changed) { E.showMenu(appMenu(appMenuBack, changed ? 2 : null)); };
value: settings.winSets, let m = {
min:1, '': {'title': 'Score Presets'},
onchange: m => setAndSave('winSets', m), '< Back': ret,
}; };
m['Sets per page'] = { for (let i = 0; i < presetNames.length; i++) {
value: settings.setsPerPage, m[presetNames[i]] = (function (i) {
min:1, return function() {
max:5, changed = true;
onchange: m => setAndSave('setsPerPage', m), settings = fillSettingsWithDefaults(presets[presetNames[i]]);
}; save(settings);
m['Score to win'] = { ret(true);
value: settings.winScore, };
min:1, })(i);
onchange: m => setAndSave('winScore', m), }
};
m['2-point lead'] = { return m;
value: settings.enableTwoAhead,
format: m => offon[~~m],
onchange: m => setAndSave('enableTwoAhead', m),
};
m['Maximum score?'] = {
value: settings.enableMaxScore,
format: m => offon[~~m],
onchange: m => setAndSave('enableMaxScore', m),
};
m['Maximum score'] = {
value: settings.maxScore,
min: 1,
onchange: m => setAndSave('maxScore', m),
};
m['Tennis scoring'] = {
value: settings.enableTennisScoring,
format: m => offon[~~m],
onchange: m => setAndSave('enableTennisScoring', m),
};
m['TB sets?'] = {
value: settings.enableMaxScoreTiebreak,
format: m => offon[~~m],
onchange: m => setAndSave('enableMaxScoreTiebreak', m),
};
m['TB Score to win'] = {
value: settings.maxScoreTiebreakWinScore,
onchange: m => setAndSave('maxScoreTiebreakWinScore', m),
};
m['TB 2-point lead'] = {
value: settings.maxScoreTiebreakEnableTwoAhead,
format: m => offon[~~m],
onchange: m => setAndSave('maxScoreTiebreakEnableTwoAhead', m),
};
m['TB max score?'] = {
value: settings.maxScoreTiebreakEnableMaxScore,
format: m => offon[~~m],
onchange: m => setAndSave('maxScoreTiebreakEnableMaxScore', m),
};
m['TB max score'] = {
value: settings.maxScoreTiebreakMaxScore,
onchange: m => setAndSave('maxScoreTiebreakMaxScore', m),
}; };
return m; const appMenu = function (back, selected) {
}; let m = {};
const inAppMenu = function () { m[''] = {'title': 'Score Settings'};
let m = { if (selected != null) {
'': {'title': 'Score Menu'}, m[''].selected = selected;
'< Back': function () { back(settings, changed); }, }
'Reset match': function () { back(settings, true); }, m['< Back'] = function () { back(settings, changed); };
'End current set': function () { inApp('end_set'); back(settings, changed); }, m['Presets'] = function () { E.showMenu(presetMenu(back)); };
'Configuration': function () { E.showMenu(appMenu(function () { m['Sets to win'] = {
E.showMenu(inAppMenu()); value: settings.winSets,
})); }, min:1,
onchange: m => setAndSave('winSets', m),
};
m['Sets per page'] = {
value: settings.setsPerPage,
min:1,
max:5,
onchange: m => setAndSave('setsPerPage', m),
};
m['Score to win'] = {
value: settings.winScore,
min:1,
onchange: m => setAndSave('winScore', m),
};
m['2-point lead'] = {
value: settings.enableTwoAhead,
format: m => offon[~~m],
onchange: m => setAndSave('enableTwoAhead', m),
};
m['Maximum score?'] = {
value: settings.enableMaxScore,
format: m => offon[~~m],
onchange: m => setAndSave('enableMaxScore', m),
};
m['Maximum score'] = {
value: settings.maxScore,
min: 1,
onchange: m => setAndSave('maxScore', m),
};
m['Tennis scoring'] = {
value: settings.enableTennisScoring,
format: m => offon[~~m],
onchange: m => setAndSave('enableTennisScoring', m),
};
m['TB sets?'] = {
value: settings.enableMaxScoreTiebreak,
format: m => offon[~~m],
onchange: m => setAndSave('enableMaxScoreTiebreak', m),
};
m['TB Score to win'] = {
value: settings.maxScoreTiebreakWinScore,
onchange: m => setAndSave('maxScoreTiebreakWinScore', m),
};
m['TB 2-point lead'] = {
value: settings.maxScoreTiebreakEnableTwoAhead,
format: m => offon[~~m],
onchange: m => setAndSave('maxScoreTiebreakEnableTwoAhead', m),
};
m['TB max score?'] = {
value: settings.maxScoreTiebreakEnableMaxScore,
format: m => offon[~~m],
onchange: m => setAndSave('maxScoreTiebreakEnableMaxScore', m),
};
m['TB max score'] = {
value: settings.maxScoreTiebreakMaxScore,
onchange: m => setAndSave('maxScoreTiebreakMaxScore', m),
};
return m;
}; };
return m; const inAppMenu = function () {
}; let m = {
'': {'title': 'Score Menu'},
'< Back': function () { back(settings, changed); },
'Reset match': function () { back(settings, true); },
'End current set': function () { inApp('end_set'); back(settings, changed); },
'Configuration': function () { E.showMenu(appMenu(function () {
E.showMenu(inAppMenu());
})); },
};
if (inApp != null) { return m;
E.showMenu(inAppMenu()); };
} else {
E.showMenu(appMenu(back));
}
}); if (inApp != null) {
E.showMenu(inAppMenu());
} else {
E.showMenu(appMenu(back));
}
});
})();