74 lines
3.8 KiB
JavaScript
74 lines
3.8 KiB
JavaScript
import { dataStorage } from './app.js';
|
|
import { showModal } from './overlays.js';
|
|
import { hideDiv, ElementById } from './helpers.js';
|
|
import { saveDataStorage, clearDataStorage, ConsoleLog, t, loadDS100 } from './app_functions.js';
|
|
import { html, render } from './lit-html.js';
|
|
import { searchView } from './searchView.js';
|
|
|
|
export const showSettings = () => {
|
|
showModal(t('settings'), settingsTemplate())
|
|
};
|
|
|
|
const settingsTemplate = () => html`
|
|
<div id="settingsView">
|
|
<b>${t('datasource')}:</b><br>
|
|
<label><input type="radio" name="provider" ?checked=${dataStorage.settings.provider === "DB"} value="DB"> DB</label><br>
|
|
<label><input type="radio" disabled="disabled" name="provider" ?checked=${dataStorage.settings.provider === "SH"} value="SH"> NAH.SH</label><br>
|
|
<label><input type="radio" disabled="disabled" name="provider" ?checked=${dataStorage.settings.provider === "BVG"} value="BVG"> BVG</label><br>
|
|
<br>
|
|
<b>${t('accessibility')}:</b><br>
|
|
<label><input type="radio" name="accessibility" ?checked=${dataStorage.settings.accessibility === "none"} value="none"> ${t('access_none')}</label><br>
|
|
<label><input type="radio" name="accessibility" ?checked=${dataStorage.settings.accessibility === "partial"} value="partial"> ${t('access_partial')}</label><br>
|
|
<label><input type="radio" name="accessibility" ?checked=${dataStorage.settings.accessibility === "complete"} value="complete"> ${t('access_full')}</label><br>
|
|
<br>
|
|
<b>${t('etc')}:</b><br>
|
|
<label><input type="checkbox" ?checked=${dataStorage.settings.showRIL100Names} id="ril100"> ${t('showds100')}</label><br>
|
|
<label><input type="checkbox" ?checked=${dataStorage.settings.writeDebugLog} id="debug-messages"> ${t('showdebug')}</label><br>
|
|
<label><input type="checkbox" ?checked=${dataStorage.settings.enableCanvas} id="enable-canvas"> ${t('graphical')} <b>BETA</b></label><br>
|
|
<label><input type="checkbox" ?checked=${dataStorage.settings.fancyCanvas} id="fancy-canvas"> ${t('fancy')}<label><br>
|
|
<br>
|
|
<b>${t('language')}:</b><br>
|
|
<label><input type="radio" name="language" ?checked=${dataStorage.settings.language === "de"} value="de"> ${t('de')}</label><br>
|
|
<label><input type="radio" name="language" ?checked=${dataStorage.settings.language === "en"} value="en"> ${t('en')}</label><br>
|
|
|
|
<div class="buttons">
|
|
<button class="btn orange" id="rebuild-cache" @click=${rebuildCache}><span>${t('update')}</span></button>
|
|
<button class="btn red" id="clear" @click=${clearDataStorage}><span>${t('clearstorage')}</span></button>
|
|
<button class="btn" id="save" @click=${saveSettings}><span>${t('save')}</span></button>
|
|
</div>
|
|
</div>
|
|
`;
|
|
|
|
const rebuildCache = () => {
|
|
ConsoleLog('sw update');
|
|
registration.update();
|
|
location.reload();
|
|
};
|
|
|
|
const saveSettings = async () => {
|
|
const provider = document.querySelector('input[name="provider"]:checked').value;
|
|
const accessibility = document.querySelector('input[name="accessibility"]:checked').value;
|
|
const language = document.querySelector('input[name="language"]:checked').value;
|
|
const show_ril100 = ElementById('ril100').checked;
|
|
const write_debug = ElementById('debug-messages').checked;
|
|
const enable_canvas = ElementById('enable-canvas').checked;
|
|
const fancy_canvas = ElementById('fancy-canvas').checked;
|
|
|
|
if (provider !== dataStorage.settings.provider) {
|
|
dataStorage.journeysHistory = [];
|
|
}
|
|
|
|
dataStorage.settings.provider = provider;
|
|
dataStorage.settings.accessibility = accessibility;
|
|
dataStorage.settings.showRIL100Names = show_ril100;
|
|
dataStorage.settings.writeDebugLog = write_debug;
|
|
dataStorage.settings.enableCanvas = enable_canvas;
|
|
dataStorage.settings.fancyCanvas = fancy_canvas;
|
|
dataStorage.settings.language = language;
|
|
|
|
saveDataStorage();
|
|
if (show_ril100) await loadDS100();
|
|
searchView();
|
|
hideDiv('overlay');
|
|
};
|