diff --git a/smash/web/templates/subjects/add.html b/smash/web/templates/subjects/add.html index 7be0c6dce59d3c4356a24e15f48542de511c3c80..5927edf6f0b68707459e88eeb41486c59c2df00f 100644 --- a/smash/web/templates/subjects/add.html +++ b/smash/web/templates/subjects/add.html @@ -99,17 +99,28 @@ <script src="{% static 'AdminLTE/plugins/awesomplete/awesomplete.min.js' %}"></script> <script> $(document).ready(function () { + + var cityInput = document.querySelector("#id_subject-city"); + var referralInput = document.querySelector("#id_study_subject-referral"); + var lastNameInput = $("input[name='subject-last_name']"); + var firstNameInput = $("input[name='subject-first_name']"); + + if (cityInput === null || referralInput === null || lastNameInput.length === 0 || firstNameInput.length === 0) { + alert("Internal error. Contact administrators."); + } + // If ever to debug and thinking why it doesn't work => look if there is 'null' in data from API $.get("{% url 'web.api.cities' %}", function (data) { - new Awesomplete(document.querySelector("#id_city")).list = data.cities; + new Awesomplete(cityInput).list = data.cities; }); $.get("{% url 'web.api.referrals' %}", function (data) { - new Awesomplete(document.querySelector("#id_referral")).list = data.referrals; + new Awesomplete(referralInput).list = data.referrals; }); + var checkDuplicates = function (e) { - var first_name = $("input[name='first_name']").val(); - var last_name = $("input[name='last_name']").val(); + var first_name = firstNameInput.val(); + var last_name = lastNameInput.val(); if (last_name !== "") { var url = "{% url 'web.api.subjects' 'GENERIC' %}"; url += "?columns[0][data]=first_name&columns[0][search][value]=" + first_name; @@ -122,19 +133,21 @@ } }); if (subjects.length > 0) { - $("#duplicate_warning").css("display", "block"); + var duplicateWarningDiv = $("#duplicate_warning"); + duplicateWarningDiv.css("display", "block"); var content = "There are possible duplicate(s) with the same name:<br/>"; $.each(subjects, function (index, subject) { content += subject.first_name + " " + subject.last_name + ", born: " + subjects.date_born + ", screening number: " + subject.screening_number + "<br/>" }); - $("#duplicate_warning").html(content); + duplicateWarningDiv.html(content); } }); } }; - $("input[name='last_name']").after("<div id='duplicate_warning' class='btn-warning' style='display:none'>message</div>"); - $("input[name='last_name']").on('keyup', checkDuplicates); - $("input[name='first_name']").on('keyup', checkDuplicates); + lastNameInput.after("<div id='duplicate_warning' class='btn-warning' style='display:none'>message</div>"); + + lastNameInput.on('keyup', checkDuplicates); + firstNameInput.on('keyup', checkDuplicates); });