Bug 14060: Force the input to contain a valid date
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 1 Dec 2015 17:33:15 +0000 (17:33 +0000)
committerKyle M Hall <kyle@bywatersolutions.com>
Thu, 8 Sep 2016 12:04:20 +0000 (12:04 +0000)
Before this patch, the user was still allowed to enter a valid date.
Now, if the date is not valid, the input is emptied.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc
koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt
koha-tmpl/intranet-tmpl/prog/en/modules/circ/offline.tt
koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt
koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt
koha-tmpl/intranet-tmpl/prog/js/pages/circulation.js

index 3c0b8b3..1b9e48b 100644 (file)
@@ -8,9 +8,8 @@ var sentmsg = 0;
 if (debug > 1) {alert("dateformat: " + dformat + "\ndebug is on (level " + debug + ")");}
 var MSG_PLEASE_ENTER_A_VALID_DATE = _("Please enter a valid date (should match %s).");
 
-function validate_date (dateText, inst) {
-    var dateformat = '[% Koha.Preference('dateformat') %]';
-    var dateformat_str = dateformat
+function is_valid_date(date) {
+    var dateformat = dateformat_str = '[% Koha.Preference('dateformat') %]';
     if ( dateformat == 'us' ) {
         dateformat = 'mm/dd/yy';
         dateformat_str = 'mm/dd/yyyy';
@@ -22,11 +21,19 @@ function validate_date (dateText, inst) {
         dateformat_str = 'yyyy-mm-dd';
     }
     try {
-        $.datepicker.parseDate(dateformat, dateText);
+        $.datepicker.parseDate(dateformat, date);
     } catch (e) {
+        return 0;
+    };
+    return 1;
+}
+
+function validate_date (dateText, inst) {
+    if ( !is_valid_date(dateText) ) {
+        var dateformat_str = '[% Koha.Preference('dateformat') %]';
         alert(MSG_PLEASE_ENTER_A_VALID_DATE.format(dateformat_str));
         $('#'+inst.id).val('');
-    };
+    }
 }
 
 function Date_from_syspref(dstring) {
@@ -115,6 +122,8 @@ $.datepicker.setDefaults({
         onClose: function(dateText, inst) {
             validate_date(dateText, inst);
         },
+    }).on("change", function(e, value) {
+        if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
     });
     // http://jqueryui.com/demos/datepicker/#date-range
     var dates = $( ".datepickerfrom, .datepickerto" ).datepicker({
@@ -132,6 +141,8 @@ $.datepicker.setDefaults({
         onClose: function(dateText, inst) {
             validate_date(dateText, inst);
         },
+    }).on("change", function(e, value) {
+        if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
     });
 });
 //]]>
index ba469ee..f197d7c 100644 (file)
@@ -78,6 +78,8 @@ function toggle_onsite_checkout(){
             },
             hour: 23,
             minute: 59
+        }).on("change", function(e, value) {
+            if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
         });
     }
 }
index 2bf0868..d03833c 100644 (file)
@@ -560,6 +560,8 @@ $(document).ready(function () {
         },
         hour: 23,
         minute: 59
+    }).on("change", function(e, value) {
+        if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
     });
     $('#mainform').submit(function (event) {
         event.preventDefault();
index c59f067..66b1275 100644 (file)
@@ -67,6 +67,8 @@ $(document).ready(function () {
         hour: 23,
         minute: 59,
         maxDate: 0
+    }).on("change", function(e, value) {
+        if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
     });
     $("#return_date_override").on("blur", function() {
             check_valid_return_date();
index f89273f..43b1c49 100644 (file)
@@ -88,6 +88,8 @@ $(document).ready(function() {
             validate_date(dateText, inst);
         },
         minDate: 1, // require that hold suspended until date is after today
+    }).on("change", function(e, value) {
+        if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
     });
 
     $("#view_restrictions").on("click",function(){
index cb0cddd..c6525ff 100644 (file)
@@ -35,6 +35,8 @@ $(document).ready(function() {
         minDate: 1, // require that renewal date is after today
         hour: 23,
         minute: 59
+    }).on("change", function(e) {
+        if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
     });
     $("#duedatespec").datetimepicker({
         onClose: function(dateText, inst) {
@@ -44,6 +46,8 @@ $(document).ready(function() {
         },
         hour: 23,
         minute: 59
+    }).on("change", function(e, value) {
+        if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
     });
     $("#export_submit").on("click",function(){
         var output_format = $("#output_format").val();