@@ -, +, @@ --- .../intranet-tmpl/prog/en/includes/calendar.inc | 21 ++++++++++++++++----- .../intranet-tmpl/prog/en/js/pages/circulation.js | 4 ++++ .../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 ++ 6 files changed, 28 insertions(+), 5 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/includes/calendar.inc +++ a/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("");} }); }); //]]> --- a/koha-tmpl/intranet-tmpl/prog/en/js/pages/circulation.js +++ a/koha-tmpl/intranet-tmpl/prog/en/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(); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tt @@ -75,6 +75,8 @@ function toggle_onsite_checkout(){ }, hour: 23, minute: 59 + }).on("change", function(e, value) { + if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");} }); } } --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/offline.tt +++ a/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(); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt @@ -34,6 +34,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(); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/moremember.tt @@ -87,6 +87,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("");} }); }); --