commit 72fe0ed6e3b60e513c88711b76b38dbe1184c0bf
parent c33bb7c69213cc935a34b0649e45f4cffc596bb6
Author: Katja (ctucx) <git@ctu.cx>
Date: Tue, 4 Feb 2025 07:25:02 +0100
parent c33bb7c69213cc935a34b0649e45f4cffc596bb6
Author: Katja (ctucx) <git@ctu.cx>
Date: Tue, 4 Feb 2025 07:25:02 +0100
settingsView: add ageGroup setting
5 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/src/dataStorage.js b/src/dataStorage.js @@ -44,6 +44,7 @@ class IDBStorage { db.createObjectStore('journey', {keyPath: 'refreshToken'}); db.createObjectStore('journeysOverview', {keyPath: 'slug'}); db.createObjectStore('journeysHistory', {autoIncrement: true}); + case 2: settings = await transaction.objectStore('settings').get('settings'); @@ -52,6 +53,7 @@ class IDBStorage { } await transaction.objectStore('settings').put(settings, 'settings'); + case 3: settings = await transaction.objectStore('settings').get('settings'); @@ -60,6 +62,7 @@ class IDBStorage { } await transaction.objectStore('settings').put(settings, 'settings'); + case 4: settings = await transaction.objectStore('settings').get('settings'); @@ -68,6 +71,7 @@ class IDBStorage { } await transaction.objectStore('settings').put(settings, 'settings'); + case 5: settings = await transaction.objectStore('settings').get('settings'); @@ -76,6 +80,15 @@ class IDBStorage { } await transaction.objectStore('settings').put(settings, 'settings'); + + case 5: + settings = await transaction.objectStore('settings').get('settings'); + + if (settings !== undefined && settings.ageGroup === undefined) { + settings.ageGroup = 'E'; + } + + await transaction.objectStore('settings').put(settings, 'settings'); } } });
diff --git a/src/languages.js b/src/languages.js @@ -108,6 +108,11 @@ const languages = { 'walkingSpeedFast': 'schnell', 'shareURL': 'Link teilen', 'copyURL': 'Link kopieren', + 'ageGroup': 'Altersgruppe', + 'ageGroupChild': 'Kind', + 'ageGroupYoung': 'Jung', + 'ageGroupAdult': 'Erwachsen', + 'ageGroupSenior': 'Senior', }, 'nl': { @@ -256,5 +261,10 @@ const languages = { 'walkingSpeedFast': 'fast', 'shareURL': 'Share URL', 'copyURL': 'Copy URL', + 'ageGroup': 'Age group', + 'ageGroupChild': 'Child', + 'ageGroupYoung': 'Young', + 'ageGroupAdult': 'Adult', + 'ageGroupSenior': 'Senior', } };
diff --git a/src/searchView.js b/src/searchView.js @@ -343,7 +343,6 @@ const submitForm = async (event) => { results: 6, bike: settings.bikeFriendly, products: settings.products, - loyaltyCard: loyaltyCardFromString(settings.loyaltyCard), }; if (via) params.via = via; @@ -356,6 +355,9 @@ const submitForm = async (event) => { if (settings.profile !== 'db') { params.accessibility = settings.accessibility; params.walkingSpeed = settings.walkingSpeed; + } else { + params.loyaltyCard = loyaltyCardFromString(settings.loyaltyCard); + params.ageGroup = settings.ageGroup; } showLoader();
diff --git a/src/settings.js b/src/settings.js @@ -21,6 +21,7 @@ const defaultSettings = { walkingSpeed: 'normal', bikeFriendly: false, loyaltyCard: 'NONE', + ageGroup: 'E', journeysViewMode: 'canvas', combineDateTime: false, showPrices: true,
diff --git a/src/settingsView.js b/src/settingsView.js @@ -44,6 +44,16 @@ const settingsTemplate = () => html` </select> </div> + <div class="flex-row" id="ageGroupElement"> + <label for="ageGroup">${t('ageGroup')}:</label> + <select id="ageGroup"> + <option value="K" ?selected=${settings.ageGroup === 'K'}>${t('ageGroupChild')} (7-14)</option> + <option value="Y" ?selected=${settings.ageGroup === 'Y'}>${t('ageGroupYoung')} (15-26)</option> + <option value="E" ?selected=${settings.ageGroup === 'E'}>${t('ageGroupAdult')} (27-64)</option> + <option value="S" ?selected=${settings.ageGroup === 'S'}>${t('ageGroupSenior')} (65+)</option> + </select> + </div> + <div class="flex-row" id="loyaltyCardElement"> <label for="loyaltyCard">${t('loyaltyCard')}:</label> <select id="loyaltyCard"> @@ -76,6 +86,7 @@ const profileChangeHandler = (profile) => { case 'db': showElement(ElementById('showPricesElement')); showElement(ElementById('loyaltyCardElement')); + showElement(ElementById('ageGroupElement')); hideElement(ElementById('walkingSpeedElement')); break; @@ -83,6 +94,7 @@ const profileChangeHandler = (profile) => { showElement(ElementById('walkingSpeedElement')); hideElement(ElementById('showPricesElement')); hideElement(ElementById('loyaltyCardElement')); + hideElement(ElementById('ageGroupElement')); break; }; }; @@ -111,6 +123,7 @@ const saveSettings = async () => { settings.profile = profile; settings.loyaltyCard = ElementById('loyaltyCard').value; settings.walkingSpeed = ElementById('walkingSpeed').value; + settings.ageGroup = ElementById('ageGroup').value; return settings; });