moved select options (primary and booster vaccines) to JS

This commit is contained in:
Luis Aleixo 2022-10-07 10:51:05 +02:00
parent 9e4d1c0937
commit 98b08a05e0
2 changed files with 64 additions and 50 deletions

View file

@ -335,16 +335,16 @@ function update_booster_warning() {
function update_booster_dropdown(url) {
let primary_vaccine_option = $("#vaccine_type").find(":selected").val();
$($("#vaccine_booster_type > option").get().reverse()).each(function() {
if ($(this).attr('data-primary-vaccine') != primary_vaccine_option && $(this).attr('data-primary-vaccine') != "Other") $(this).hide();
else {
$(this).show();
if (url.searchParams.has('vaccine_type')) {
if (url.searchParams.get('vaccine_type') != primary_vaccine_option) $(this).prop('selected', true); // Select first of the list if not from the URL
}
else $(this).prop('selected', true);
}
$("#vaccine_booster_type option").remove();
vaccine_booster_host_immunity.forEach(booster => {
if (booster['primary series vaccine'] == primary_vaccine_option)
$("#vaccine_booster_type").append(`<option data-primary-vaccine=${primary_vaccine_option} value=${booster['booster vaccine']}>${booster['booster vaccine'].replaceAll('_', ' ')}</option>`);
});
$("#vaccine_booster_type").append(`<option value='Other'>Other</option>`);
let booster_vaccine = url.searchParams.has('vaccine_booster_type') ? url.searchParams.get('vaccine_booster_type') : null;
$(`#vaccine_booster_type > option[value="${booster_vaccine}"`).attr('selected', true);
update_booster_warning();
}
@ -896,7 +896,7 @@ $(document).ready(function () {
$("#sr_interactions").text(index - 1);
}
else if (name == 'sensor_in_use' || name == 'vaccine_booster_type') {
else if (name == 'sensor_in_use' || name == 'vaccine_type' || name == 'vaccine_booster_type') {
// Validation after
}
@ -908,11 +908,15 @@ $(document).ready(function () {
}
});
let primary_vaccine = url.searchParams.has('vaccine_type') ? url.searchParams.get('vaccine_type') : null;
let booster_vaccine = url.searchParams.has('vaccine_booster_type') ? url.searchParams.get('vaccine_booster_type') : null;
$(`#vaccine_booster_type > option[data-primary-vaccine="${primary_vaccine}"][value="${booster_vaccine}"]`).attr('selected', true);
// Handle default URL values if they are not explicitly defined.
// Populate primary vaccine dropdown
$("#vaccine_type option").remove();
let primary_vaccine = url.searchParams.has('vaccine_type') ? url.searchParams.get('vaccine_type') : null;
vaccine_primary_host_immunity.forEach(vaccine => $("#vaccine_type").append(`<option value=${vaccine}>${vaccine.replaceAll('_', ' ')}</option>`));
$(`#vaccine_type > option[value="${primary_vaccine}"]`).attr('selected', true);
// Handle geographic location input
if (Array.from(url.searchParams).length > 0) {
if (!url.searchParams.has('location_name')) {
$('[name="location_name"]').val('Geneva')
@ -926,7 +930,6 @@ $(document).ready(function () {
}
}
// When the document is ready, deal with the fact that we may be here
// as a result of a forward/back browser action. If that is the case, update
// the visibility of some of our inputs.
@ -1281,3 +1284,47 @@ function objectifyForm(formArray) {
returnArray[formArray[i]['name']] = formArray[i]['value'];
return returnArray;
}
// ------- VACCINATION DATA -------
// From data available in Results of COVID-19 Vaccine Effectiveness
// Studies: An Ongoing Systematic Review - Updated September 8, 2022.
// https://view-hub.org/resources
vaccine_primary_host_immunity = [
'AZD1222_(AstraZeneca)',
'AZD1222_(AstraZeneca)_and_BNT162b2_(Pfizer)',
'AZD1222_(AstraZeneca)_and_any_mRNA_-_heterologous',
'Ad26.COV2.S_(Janssen)',
'Any_mRNA_-_heterologous',
'BBIBP-CorV_(Beijing_CNBG)',
'BNT162b2_(Pfizer)',
'BNT162b2_(Pfizer)_and_mRNA-1273_(Moderna)',
'CoronaVac_(Sinovac)',
'CoronaVac_(Sinovac)_and_AZD1222_(AstraZeneca)',
'CoronaVac_(Sinovac)_and_AZD1222_(AstraZeneca)_-_heterologous',
'CoronaVac_(Sinovac)_and_BNT162b2_(Pfizer)',
'Covishield',
'Sputnik_V_(Gamaleya)',
'mRNA-1273_(Moderna)',
]
vaccine_booster_host_immunity = [
{'primary series vaccine': 'AZD1222_(AstraZeneca)', 'booster vaccine': 'AZD1222_(AstraZeneca),'},
{'primary series vaccine': 'AZD1222_(AstraZeneca)', 'booster vaccine': 'BNT162b2_(Pfizer)',},
{'primary series vaccine': 'AZD1222_(AstraZeneca)', 'booster vaccine': 'BNT162b2_(Pfizer)_or_mRNA-1273_(Moderna)',},
{'primary series vaccine': 'AZD1222_(AstraZeneca)', 'booster vaccine': 'mRNA-1273_(Moderna)',},
{'primary series vaccine': 'Ad26.COV2.S_(Janssen)', 'booster vaccine': 'Ad26.COV2.S_(Janssen)',},
{'primary series vaccine': 'Ad26.COV2.S_(Janssen)', 'booster vaccine': 'BNT162b2_(Pfizer)_or_mRNA-1273_(Moderna)',},
{'primary series vaccine': 'BNT162b2_(Pfizer)', 'booster vaccine': 'AZD1222_(AstraZeneca)',},
{'primary series vaccine': 'BNT162b2_(Pfizer)', 'booster vaccine': 'BNT162b2_(Pfizer)',},
{'primary series vaccine': 'BNT162b2_(Pfizer)', 'booster vaccine': 'BNT162b2_(Pfizer)_or_mRNA-1273_(Moderna)',},
{'primary series vaccine': 'BNT162b2_(Pfizer)', 'booster vaccine': 'mRNA-1273_(Moderna)',},
{'primary series vaccine': 'BNT162b2_(Pfizer)_and_mRNA-1273_(Moderna)', 'booster vaccine': 'BNT162b2_(Pfizer)_and_mRNA-1273_(Moderna)',},
{'primary series vaccine': 'BNT162b2_(Pfizer)_(3_doses)', 'booster vaccine': 'BNT162b2_(Pfizer)_(4th_dose)',},
{'primary series vaccine': 'CoronaVac_(Sinovac)', 'booster vaccine': 'AZD1222_(AstraZeneca)',},
{'primary series vaccine': 'CoronaVac_(Sinovac)', 'booster vaccine': 'BNT162b2_(Pfizer)',},
{'primary series vaccine': 'CoronaVac_(Sinovac)', 'booster vaccine': 'CoronaVac_(Sinovac)',},
{'primary series vaccine': 'mRNA-1273_(Moderna)', 'booster vaccine': 'BNT162b2_(Pfizer)',},
{'primary series vaccine': 'mRNA-1273_(Moderna)', 'booster vaccine': 'BNT162b2_(Pfizer)_or_mRNA-1273_(Moderna)',},
{'primary series vaccine': 'mRNA-1273_(Moderna)', 'booster vaccine': 'mRNA-1273_(Moderna)',}
]

View file

@ -374,21 +374,7 @@
<div class="col-sm-4"><label class="col-form-label">Primary vaccine:</label></div>
<div class="col-sm-6 align-self-center">
<select id="vaccine_type" name="vaccine_type" class="form-control form-control-sm">
<option value='AZD1222_(AstraZeneca)'>AZD1222 (AstraZeneca)</option>
<option value='AZD1222_(AstraZeneca)_and_BNT162b2_(Pfizer)'>AZD1222 (AstraZeneca) & BNT162b2 (Pfizer)</option>
<option value='AZD1222_(AstraZeneca)_and_any_mRNA_-_heterologous'>AZD1222 (AstraZeneca) & any mRNA - heterologous</option>
<option value='Ad26.COV2.S_(Janssen)'>Ad26.COV2.S (Janssen)</option>
<option value='Any_mRNA_-_heterologous'>Any mRNA - heterologous</option>
<option value='BBIBP-CorV_(Beijing_CNBG)'>BBIBP-CorV (Beijing CNBG)</option>
<option value='BNT162b2_(Pfizer)'>BNT162b2 (Pfizer)</option>
<option value='BNT162b2_(Pfizer)_and_mRNA-1273_(Moderna)'>BNT162b2 (Pfizer) & mRNA-1273 (Moderna)</option>
<option value='CoronaVac_(Sinovac)'>CoronaVac (Sinovac)</option>
<option value='CoronaVac_(Sinovac)_and_AZD1222_(AstraZeneca)'>CoronaVac (Sinovac) & AZD1222 (AstraZeneca)</option>
<option value='CoronaVac_(Sinovac)_and_AZD1222_(AstraZeneca)_-_heterologous'>CoronaVac (Sinovac) & AZD1222 (AstraZeneca) - heterologous</option>
<option value='CoronaVac_(Sinovac)_and_BNT162b2_(Pfizer)'>CoronaVac (Sinovac) & BNT162b2 (Pfizer)</option>
<option value='Covishield'>Covishield</option>
<option value='Sputnik_V_(Gamaleya)'>Sputnik V (Gamaleya)</option>
<option value='mRNA-1273_(Moderna)'>mRNA-1273 (Moderna)</option>
{# Updated with JS #}
</select>
</div>
</div>
@ -408,26 +394,7 @@
<div class="col-sm-4"><label class="col-form-label">Booster:</label></div>
<div class="col-sm-6 align-self-center">
<select id="vaccine_booster_type" name="vaccine_booster_type" class="form-control form-control-sm">
<option value='AZD1222_(AstraZeneca)' data-primary-vaccine='AZD1222_(AstraZeneca)'>AZD1222 (AstraZeneca)</option>
<option value='BNT162b2_(Pfizer)' data-primary-vaccine='AZD1222_(AstraZeneca)'>BNT162b2 (Pfizer)</option>
<option value='BNT162b2_(Pfizer)_or_mRNA-1273_(Moderna)' data-primary-vaccine='AZD1222_(AstraZeneca)'>BNT162b2 (Pfizer) or mRNA-1273 (Moderna)</option>
<option value='mRNA-1273_(Moderna)' data-primary-vaccine='AZD1222_(AstraZeneca)'>mRNA-1273 (Moderna)</option>
<option value='Ad26.COV2.S_(Janssen)' data-primary-vaccine='Ad26.COV2.S_(Janssen)'>Ad26.COV2.S (Janssen)</option>
<option value='BNT162b2_(Pfizer)_or_mRNA-1273_(Moderna)' data-primary-vaccine='Ad26.COV2.S_(Janssen)'>BNT162b2 (Pfizer) or mRNA-1273 (Moderna)</option>
<option value='AZD1222_(AstraZeneca)' data-primary-vaccine='BNT162b2_(Pfizer)'>AZD1222 (AstraZeneca)</option>
<option value='BNT162b2_(Pfizer)' data-primary-vaccine='BNT162b2_(Pfizer)'>BNT162b2 (Pfizer)</option>
<option value='BNT162b2_(Pfizer)_or_mRNA-1273_(Moderna)' data-primary-vaccine='BNT162b2_(Pfizer)'>BNT162b2 (Pfizer) or mRNA-1273 (Moderna)</option>
<option value='mRNA-1273_(Moderna)' data-primary-vaccine='BNT162b2_(Pfizer)'>mRNA-1273 (Moderna)</option>
<option value='BNT162b2_(Pfizer)_and_mRNA-1273_(Moderna)' data-primary-vaccine='BNT162b2_(Pfizer)_and_mRNA-1273_(Moderna)'>BNT162b2 (Pfizer) & mRNA-1273 (Moderna)</option>
<option value='BNT162b2_(Pfizer)_(4th_dose)' data-primary-vaccine='BNT162b2_(Pfizer)_(3_doses)'>BNT162b2 (Pfizer) (4th dose)</option>
<option value='AZD1222_(AstraZeneca)' data-primary-vaccine='CoronaVac_(Sinovac)'>AZD1222 (AstraZeneca)</option>
<option value='BNT162b2_(Pfizer)' data-primary-vaccine='CoronaVac_(Sinovac)'>BNT162b2 (Pfizer)</option>
<option value='CoronaVac_(Sinovac)' data-primary-vaccine='CoronaVac_(Sinovac)'>CoronaVac (Sinovac)</option>
<option value='CoronaVac_(Sinovac)' data-primary-vaccine='CoronaVac_(Sinovac)'>CoronaVac (Sinovac)</option>
<option value='BNT162b2_(Pfizer)' data-primary-vaccine='mRNA-1273_(Moderna)'>BNT162b2 (Pfizer)</option>
<option value='BNT162b2_(Pfizer)_or_mRNA-1273_(Moderna)' data-primary-vaccine='mRNA-1273_(Moderna)'>BNT162b2 (Pfizer) or mRNA-1273 (Moderna)</option>
<option value='mRNA-1273_(Moderna)' data-primary-vaccine='mRNA-1273_(Moderna)'>mRNA-1273 (Moderna)</option>
<option value="Other" data-primary-vaccine="Other">Other</option>
{# Updated with JS #}
</select>
</div>
</div>