commit 0a6cfcb0567a98c26cbb04531853b3d075cddfb3
parent 55eba5783170d74232292f981cb15a27f4f34354
Author: Katja (ctucx) <git@ctu.cx>
Date: Fri, 31 Jan 2025 14:36:36 +0100
parent 55eba5783170d74232292f981cb15a27f4f34354
Author: Katja (ctucx) <git@ctu.cx>
Date: Fri, 31 Jan 2025 14:36:36 +0100
settingsView: add walking-speed selector
5 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/src/dataStorage.js b/src/dataStorage.js @@ -68,6 +68,14 @@ class IDBStorage { } await transaction.objectStore('settings').put(settings, 'settings'); + case 5: + settings = await transaction.objectStore('settings').get('settings'); + + if (settings !== undefined && settings.walkingSpeed === undefined) { + settings.walkingSpeed = 'normal'; + } + + await transaction.objectStore('settings').put(settings, 'settings'); } } });
diff --git a/src/languages.js b/src/languages.js @@ -91,6 +91,10 @@ const languages = { 'class': 'Klasse', 'titleNoTransfers': 'keine Umstiege zulassen', 'lastSelectedJourney': 'Zuletzt gewählte Verbindung', + 'walkingSpeed': 'Gehgeschwindigkeit', + 'walkingSpeedSlow': 'langsam', + 'walkingSpeedNormal': 'normal', + 'walkingSpeedFast': 'schnell', }, 'nl': { @@ -235,5 +239,9 @@ const languages = { 'class': 'Class', 'titleNoTransfers': 'only direct connections', 'lastSelectedJourney': 'Last selected Journey', + 'walkingSpeed': 'Walking speed', + 'walkingSpeedSlow': 'slow', + 'walkingSpeedNormal': 'normal', + 'walkingSpeedFast': 'fast', } };
diff --git a/src/searchView.js b/src/searchView.js @@ -342,6 +342,7 @@ const submitForm = async (event) => { to, results: 6, accessibility: settings.accessibility, + walkingSpeed: settings.walkingSpeed, bike: settings.bikeFriendly, products: settings.products, loyaltyCard: loyaltyCardFromString(settings.loyaltyCard),
diff --git a/src/settings.js b/src/settings.js @@ -18,6 +18,7 @@ const defaultSettings = { 'taxi': true }, accessibility: 'none', + walkingSpeed: 'normal', bikeFriendly: false, loyaltyCard: 'NONE', journeysViewMode: 'canvas',
diff --git a/src/settingsView.js b/src/settingsView.js @@ -35,6 +35,15 @@ const settingsTemplate = () => html` </select> </div> + <div class="row" id="walkingSpeedElement"> + <label for="walkingSpeed">${t('walkingSpeed')}:</label> + <select id="walkingSpeed"> + <option value="slow" ?selected=${settings.walkingSpeed === 'slow'}>${t('walkingSpeedSlow')}</option> + <option value="normal" ?selected=${settings.walkingSpeed === 'normal'}>${t('walkingSpeedNormal')}</option> + <option value="fast" ?selected=${settings.walkingSpeed === 'fast'}>${t('walkingSpeedFast')}</option> + </select> + </div> + <div class="row" id="loyaltyCardElement"> <label for="loyaltyCard">${t('loyaltyCard')}:</label> <select id="loyaltyCard"> @@ -65,13 +74,15 @@ const settingsTemplate = () => html` const profileChangeHandler = (profile) => { switch (profile) { case 'db': - showElement(ElementById('showPricesElement')) - showElement(ElementById('loyaltyCardElement')) + showElement(ElementById('showPricesElement')); + showElement(ElementById('loyaltyCardElement')); + hideElement(ElementById('walkingSpeedElement')); break; default: - hideElement(ElementById('showPricesElement')) - hideElement(ElementById('loyaltyCardElement')) + showElement(ElementById('walkingSpeedElement')); + hideElement(ElementById('showPricesElement')); + hideElement(ElementById('loyaltyCardElement')); break; }; }; @@ -96,6 +107,7 @@ const saveSettings = async () => { settings.language = ElementById('language').value; settings.profile = ElementById('profile').value; settings.loyaltyCard = ElementById('loyaltyCard').value; + settings.walkingSpeed = ElementById('walkingSpeed').value; return settings; });