From 6087cfde3fb98901bf6d3f7d6d98d48eee25149a Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 1 Dec 2015 17:33:15 +0000 Subject: [PATCH] Bug 14060: Force the input to contain a valid date MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Nick Clemens Signed-off-by: Kyle M Hall (cherry picked from commit 363e45a5eb89b25e47165bb815d6dc901744f977) Signed-off-by: Frédéric Demians --- .../prog/en/includes/calendar.inc | 21 ++++++++++++++----- .../prog/en/modules/circ/circulation.tt | 2 ++ .../prog/en/modules/circ/offline.tt | 2 ++ .../prog/en/modules/circ/returns.tt | 2 ++ .../prog/en/modules/members/moremember.tt | 2 ++ .../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 3c0b8b3fa1..1b9e48b0dd 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 260b518ba7..bfa33402e7 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -79,6 +79,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 2bf0868c21..d03833c030 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 a5342d6769..d3838b8197 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt @@ -47,6 +47,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 7d9a08ec1b..1cd17a69d1 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt @@ -89,6 +89,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 2386cb5cf7..8c07631f02 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/pages/circulation.js +++ b/koha-tmpl/intranet-tmpl/prog/js/pages/circulation.js @@ -37,6 +37,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) { @@ -46,6 +48,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.39.5