From 4b3d6f375594bbe0e82f11064625dc2ca8602865 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Tue, 28 Nov 2017 18:11:09 +0100
Subject: [PATCH] when adding subject JS checks fixed

---
 smash/web/templates/subjects/add.html | 31 +++++++++++++++++++--------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/smash/web/templates/subjects/add.html b/smash/web/templates/subjects/add.html
index 7be0c6dc..5927edf6 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);
 
         });
 
-- 
GitLab