starting to make prrByVaccineTable downloadable

This commit is contained in:
frankknoll
2023-10-15 11:55:58 +02:00
parent b6c5a92b55
commit c5c3b53eb8
3 changed files with 30 additions and 4 deletions

View File

@@ -5,8 +5,8 @@ class PageInitializer {
PageInitializer.#configureVaccine(vaccine); PageInitializer.#configureVaccine(vaccine);
} }
static #configureSymptom({ symptomSelectElement, prrByVaccineTableElement }) { static #configureSymptom({ symptomSelectElement, prrByVaccineTableElement, downloadPrrByVaccineTableButton }) {
const prrByVaccineTableView = new PrrByVaccineTableView(prrByVaccineTableElement); const prrByVaccineTableView = new PrrByVaccineTableView(prrByVaccineTableElement, downloadPrrByVaccineTableButton);
PageInitializer.#initializeSelectElement( PageInitializer.#initializeSelectElement(
{ {
selectElement: symptomSelectElement, selectElement: symptomSelectElement,

View File

@@ -1,15 +1,34 @@
class PrrByVaccineTableView { class PrrByVaccineTableView {
#prrByVaccineTable; #prrByVaccineTable;
#prrByVaccine;
#symptom;
constructor(prrByVaccineTableElement) { constructor(prrByVaccineTableElement, downloadPrrByVaccineTableButton) {
this.#prrByVaccineTable = new PrrByVaccineTable(prrByVaccineTableElement); this.#prrByVaccineTable = new PrrByVaccineTable(prrByVaccineTableElement);
this.#prrByVaccineTable.initialize(); this.#prrByVaccineTable.initialize();
downloadPrrByVaccineTableButton.addEventListener(
'click',
() => this.#downloadPrrByVaccine())
} }
displayPrrByVaccineTable4Symptom(symptom) { displayPrrByVaccineTable4Symptom(symptom) {
PrrByVaccineProvider PrrByVaccineProvider
.getPrrByVaccine(symptom) .getPrrByVaccine(symptom)
.then(prrByVaccine => this.#prrByVaccineTable.display(prrByVaccine)); .then(prrByVaccine => {
this.#prrByVaccine = prrByVaccine;
this.#symptom = symptom;
this.#prrByVaccineTable.display(prrByVaccine);
});
}
#downloadPrrByVaccine() {
UIUtils.downloadUrlAsFilename(
window.URL.createObjectURL(
new Blob(
[Utils.convertDict2CSV(this.#prrByVaccine)],
{ type: 'text/csv' })),
this.#symptom
);
} }
} }

View File

@@ -68,4 +68,11 @@ class UIUtils {
static isSearchParamYES(urlParams, searchParam) { static isSearchParamYES(urlParams, searchParam) {
return UIUtils.getSearchParam(urlParams, searchParam, 'NO').toUpperCase() == 'YES'; return UIUtils.getSearchParam(urlParams, searchParam, 'NO').toUpperCase() == 'YES';
} }
static downloadUrlAsFilename(url, filename) {
const a = document.createElement('a');
a.setAttribute('href', url);
a.setAttribute('download', filename);
a.click();
}
} }