diff --git a/docs/SymptomsCausedByDrugs/index.html b/docs/SymptomsCausedByDrugs/index.html
index 00f83d3f0f9..e9465e25ac2 100644
--- a/docs/SymptomsCausedByDrugs/index.html
+++ b/docs/SymptomsCausedByDrugs/index.html
@@ -35,21 +35,25 @@
+
diff --git a/docs/SymptomsCausedByDrugs/js/PageInitializer.js b/docs/SymptomsCausedByDrugs/js/PageInitializer.js
index 227533551db..63defaa2597 100644
--- a/docs/SymptomsCausedByDrugs/js/PageInitializer.js
+++ b/docs/SymptomsCausedByDrugs/js/PageInitializer.js
@@ -5,34 +5,25 @@ class PageInitializer {
PageInitializer.#configureVaccine(vaccine);
}
- static #configureSymptom({ symptomSelectElement, prrByVaccineTableElement, downloadPrrByVaccineTableButton, keyColumnName }) {
+ static #configureSymptom({ symptomSelectElement, selectSymptom, prrByVaccineTableElement, downloadPrrByVaccineTableButton, keyColumnName }) {
const prrByVaccineTableView = new PrrByVaccineTableView(prrByVaccineTableElement, downloadPrrByVaccineTableButton, keyColumnName);
- PageInitializer.#initializeSelectElement(
+ Select2.initializeSelectElement(
{
selectElement: symptomSelectElement,
+ textOfOption2Select: selectSymptom,
onValueSelected: (id, text) => prrByVaccineTableView.displayPrrByVaccineTable4Symptom(id, text),
minimumInputLength: 0
});
}
- static #configureVaccine({ vaccineSelectElement, prrBySymptomTableElement, downloadPrrBySymptomTableButton, valueName }) {
+ static #configureVaccine({ vaccineSelectElement, selectVaccine, prrBySymptomTableElement, downloadPrrBySymptomTableButton, valueName }) {
const prrBySymptomTableView = new PrrBySymptomTableView(prrBySymptomTableElement, downloadPrrBySymptomTableButton, valueName);
- PageInitializer.#initializeSelectElement(
+ Select2.initializeSelectElement(
{
selectElement: vaccineSelectElement,
- onValueSelected: (id, text) => prrBySymptomTableView.displayPrrBySymptomTable4Vaccine(id ,text),
+ textOfOption2Select: selectVaccine,
+ onValueSelected: (id, text) => prrBySymptomTableView.displayPrrBySymptomTable4Vaccine(id, text),
minimumInputLength: 0
});
}
-
- static #initializeSelectElement({ selectElement, onValueSelected, minimumInputLength }) {
- selectElement.select2({ minimumInputLength: minimumInputLength });
- selectElement.on(
- 'select2:select',
- function (event) {
- const id = event.params.data.id;
- const text = event.params.data.text;
- onValueSelected(id, text);
- });
- }
}
diff --git a/docs/SymptomsCausedByDrugs/js/Select2.js b/docs/SymptomsCausedByDrugs/js/Select2.js
new file mode 100644
index 00000000000..953046bf6be
--- /dev/null
+++ b/docs/SymptomsCausedByDrugs/js/Select2.js
@@ -0,0 +1,45 @@
+class Select2 {
+
+ // FK-TODO: rename onValueSelected to onSelectOptionHavingValueAndText
+ static initializeSelectElement({ selectElement, textOfOption2Select, onValueSelected, minimumInputLength }) {
+ selectElement.select2({ minimumInputLength: minimumInputLength });
+ selectElement.on(
+ 'select2:select',
+ function (event) {
+ const id = event.params.data.id;
+ const text = event.params.data.text;
+ onValueSelected(id, text);
+ });
+ Select2.#selectOptionHavingText(selectElement, textOfOption2Select);
+ }
+
+ static #selectOptionHavingText(selectElement, text) {
+ const option = Select2.#getOptionHavingText(selectElement, text);
+ if (option === undefined) {
+ return;
+ }
+ Select2.#selectOption(selectElement, option);
+ }
+
+ static #getOptionHavingText(selectElement, text) {
+ if (text === null) {
+ return undefined;
+ }
+ return Array
+ .from(selectElement[0].options)
+ .find(option => option.text == text);
+ }
+
+ static #selectOption(selectElement, option) {
+ selectElement.val(option.value).trigger('change');
+ selectElement.trigger({
+ type: 'select2:select',
+ params: {
+ data: {
+ "id": option.value,
+ "text": option.text
+ }
+ }
+ });
+ }
+}
diff --git a/docs/SymptomsCausedByVaccines/test/index.test.html b/docs/SymptomsCausedByVaccines/test/index.test.html
index 21af9568fec..6f77573b4eb 100644
--- a/docs/SymptomsCausedByVaccines/test/index.test.html
+++ b/docs/SymptomsCausedByVaccines/test/index.test.html
@@ -11,14 +11,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+