From e52e74904fb75a79a382c714920a9dff4cce3fc5 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 1 Dec 2015 17:33:15 +0000 Subject: [PATCH] [SIGNED-OFF] Bug 14060: Force the input to contain a valid date Content-Type: text/plain; charset="utf-8" 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 --- .../intranet-tmpl/prog/en/includes/calendar.inc | 21 ++++++++++++++++----- .../prog/en/modules/circ/circulation.tt | 2 ++ .../intranet-tmpl/prog/en/modules/circ/offline.tt | 2 ++ .../intranet-tmpl/prog/en/modules/circ/returns.tt | 2 ++ .../prog/en/modules/members/moremember.tt | 2 ++ .../intranet-tmpl/prog/js/pages/circulation.js | 4 ++++ 6 files changed, 28 insertions(+), 5 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc index 3c0b8b3..1b9e48b 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc @@ -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("");} }); }); //]]> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt index ba469ee..f197d7c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -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("");} }); } } diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/offline.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/offline.tt index 2bf0868..d03833c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/offline.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/offline.tt @@ -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(); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt index 20f6076..f11ff83 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt @@ -62,6 +62,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(); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt index f89273f..43b1c49 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt @@ -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(){ diff --git a/koha-tmpl/intranet-tmpl/prog/js/pages/circulation.js b/koha-tmpl/intranet-tmpl/prog/js/pages/circulation.js index cb0cddd..c6525ff 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/pages/circulation.js +++ b/koha-tmpl/intranet-tmpl/prog/js/pages/circulation.js @@ -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(); -- 2.1.4