diff --git a/cara/apps/calculator/static/js/form.js b/cara/apps/calculator/static/js/form.js index ece53531..38c533b4 100644 --- a/cara/apps/calculator/static/js/form.js +++ b/cara/apps/calculator/static/js/form.js @@ -385,15 +385,20 @@ function isValidDateOrEmpty(date) { } function validateFinishTime(obj) { - if ($(obj).hasClass("finish_time_error")) { - $(obj).removeClass("red_border finish_time_error"); - if (!$(obj).hasClass("lunch_break_error")) { - $(obj).next('span').remove(); + + var groupID = $(obj).data('time-group'); + var startObj = $(".start_time[data-time-group='"+groupID+"']")[0]; + var finishObj = $(".finish_time[data-time-group='"+groupID+"']")[0]; + + if ($(finishObj).hasClass("finish_time_error")) { + $(finishObj).removeClass("red_border finish_time_error"); + if (!$(finishObj).hasClass("lunch_break_error")) { + $(finishObj).next('span').remove(); } } - var startTime = parseValToNumber($(obj).prev().val()); - var finishTime = parseValToNumber(obj.value); + var startTime = parseValToNumber(startObj.value); + var finishTime = parseValToNumber(finishObj.value); if (startTime > finishTime) { $(obj).addClass("red_border finish_time_error"); $(obj).next('span').remove(); @@ -408,38 +413,31 @@ function validateFinishTime(obj) { function validateLunchBreak(obj) { - //Span element is only after finish time - var spanObj = obj; - if ($(obj).hasClass("start_time")) { - spanObj = obj.nextSibling.nextSibling; - } - + var groupID = $(obj).data('time-group'); + var startObj = $(".start_time[data-time-group='"+groupID+"']")[0]; + var finishObj = $(".finish_time[data-time-group='"+groupID+"']")[0]; var time = parseValToNumber(obj.value); - - var otherObj = spanObj; - if ($(obj).hasClass("finish_time")) { - otherObj = obj.previousSibling.previousSibling; + + var otherObj = startObj; + if ($(obj).hasClass("start_time")) { + otherObj = finishObj; } $(obj).removeClass("red_border lunch_break_error"); - if (!$(otherObj).hasClass("red_border") && !$(spanObj).hasClass("finish_time_error")) { - $(spanObj).next('span').remove(); + if (!$(otherObj).hasClass("red_border") && !$(finishObj).hasClass("finish_time_error")) { + $(finishObj).next('span').remove(); } - var startID = ""; - var finishID = ""; - if ($(obj).hasClass("activity")) { - startID = "activity_start"; - finishID = "activity_finish"; - } + var startID = groupID.split("_")[1] + "_start"; + var finishID = groupID.split("_")[1] + "_finish"; var globalStart = parseValToNumber(document.getElementById(startID).value); var globalFinish = parseValToNumber(document.getElementById(finishID).value); if ((time < globalStart) || (time > globalFinish)) { $(obj).addClass("red_border lunch_break_error"); - if (!$(otherObj).hasClass("red_border") && !$(spanObj).hasClass("finish_time_error")) { - insertSpanAfter(spanObj, "Lunch break must be within activity times"); + if (!$(otherObj).hasClass("red_border") && !$(finishObj).hasClass("finish_time_error")) { + insertSpanAfter(finishObj, "Lunch break must be within activity times"); } return false; } @@ -491,7 +489,7 @@ $(document).ready(function () { //Validate all finish times $("input[required].finish_time").each(function() {validateFinishTime(this)}); $(".finish_time").change(function() {validateFinishTime(this)}); - $(".start_time").change(function() {validateFinishTime(this.nextSibling.nextSibling)}); + $(".start_time").change(function() {validateFinishTime(this)}); //Validate lunch times $("input[required].lunch").each(function() {validateLunchBreak(this)}); diff --git a/cara/apps/calculator/templates/calculator.form.html.j2 b/cara/apps/calculator/templates/calculator.form.html.j2 index d5ad4e6d..5db0526d 100644 --- a/cara/apps/calculator/templates/calculator.form.html.j2 +++ b/cara/apps/calculator/templates/calculator.form.html.j2 @@ -134,11 +134,11 @@
- Start:    - Finish:
+ Start:    + Finish:
Infected person(s) presence:
- Start:    - Finish:
+ Start:    + Finish:

When is the event? @@ -178,8 +178,8 @@
- Start:    - Finish:
+ Start:    + Finish: