refactoring

This commit is contained in:
Frank Knoll
2024-07-14 01:27:22 +02:00
parent 3f2c43aeb1
commit 1aba82ce24
3 changed files with 12 additions and 8 deletions

View File

@@ -47,6 +47,7 @@
symptom: {
symptomSelectElement: $('#symptomSelect'),
selectSymptom: UIUtils.getSearchParam(urlSearchParams, 'symptom', null),
onSymptomSelected: symptom => UIUtils.setSearchParamOfCurrentUrl('symptom', symptom),
prrByVaccineTableElement: $('#prrByVaccineTable'),
downloadPrrByVaccineTableButton: document.querySelector("#downloadPrrByVaccineTable"),
keyColumnName: name
@@ -54,6 +55,7 @@
vaccine: {
vaccineSelectElement: $('#vaccineSelect'),
selectVaccine: UIUtils.getSearchParam(urlSearchParams, 'vaccine', null),
onVaccineSelected: vaccine => UIUtils.setSearchParamOfCurrentUrl('vaccine', vaccine),
prrBySymptomTableElement: $('#prrBySymptomTable'),
downloadPrrBySymptomTableButton: document.querySelector("#downloadPrrBySymptomTable"),
valueName: name

View File

@@ -5,7 +5,7 @@ class PageInitializer {
PageInitializer.#configureVaccine(vaccine);
}
static #configureSymptom({ symptomSelectElement, selectSymptom, prrByVaccineTableElement, downloadPrrByVaccineTableButton, keyColumnName }) {
static #configureSymptom({ symptomSelectElement, selectSymptom, onSymptomSelected, prrByVaccineTableElement, downloadPrrByVaccineTableButton, keyColumnName }) {
const prrByVaccineTableView = new PrrByVaccineTableView(prrByVaccineTableElement, downloadPrrByVaccineTableButton, keyColumnName);
Select2.initializeSelectElement(
{
@@ -13,15 +13,13 @@ class PageInitializer {
textOfOption2Select: selectSymptom,
onValueSelected: (id, text) => {
prrByVaccineTableView.displayPrrByVaccineTable4Symptom(id, text);
const url = new URL(window.location.href);
url.searchParams.set('symptom', text);
window.history.replaceState(null, "", url);
onSymptomSelected(text);
},
minimumInputLength: 0
});
}
static #configureVaccine({ vaccineSelectElement, selectVaccine, prrBySymptomTableElement, downloadPrrBySymptomTableButton, valueName }) {
static #configureVaccine({ vaccineSelectElement, selectVaccine, onVaccineSelected, prrBySymptomTableElement, downloadPrrBySymptomTableButton, valueName }) {
const prrBySymptomTableView = new PrrBySymptomTableView(prrBySymptomTableElement, downloadPrrBySymptomTableButton, valueName);
Select2.initializeSelectElement(
{
@@ -29,9 +27,7 @@ class PageInitializer {
textOfOption2Select: selectVaccine,
onValueSelected: (id, text) => {
prrBySymptomTableView.displayPrrBySymptomTable4Vaccine(id, text);
const url = new URL(window.location.href);
url.searchParams.set('vaccine', text);
window.history.replaceState(null, "", url);
onVaccineSelected(text);
},
minimumInputLength: 0
});

View File

@@ -38,6 +38,12 @@ class UIUtils {
return UIUtils.getSearchParam(urlParams, searchParam, 'NO').toUpperCase() == 'YES';
}
static setSearchParamOfCurrentUrl(nameOfSearchParam, valueOfSearchParam) {
const url = new URL(window.location.href);
url.searchParams.set(nameOfSearchParam, valueOfSearchParam);
window.history.replaceState(null, "", url);
}
static downloadUrlAsFilename(url, filename) {
const a = document.createElement('a');
a.setAttribute('href', url);