Bug 20568: Fix bad resolution conflict with bug 18403
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / includes / calendar.inc
index 1b9e48b..f13a1fa 100644 (file)
@@ -6,19 +6,25 @@ var debug    = "[% debug %]";
 var dformat  = "[% dateformat %]";
 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).");
+var MSG_PLEASE_ENTER_A_VALID_DATE = (_("Please enter a valid date (should match %s)."));
 
 function is_valid_date(date) {
+    // An empty string is considered as a valid date for convenient reasons.
+    if ( date === '' ) return 1;
+
     var dateformat = dateformat_str = '[% Koha.Preference('dateformat') %]';
     if ( dateformat == 'us' ) {
+        if ( date.search(/^\d{2}\/\d{2}\/\d{4}($|\s)/) == -1 ) return 0;
         dateformat = 'mm/dd/yy';
-        dateformat_str = 'mm/dd/yyyy';
     } else if ( dateformat == 'metric' ) {
+        if ( date.search(/^\d{2}\/\d{2}\/\d{4}($|\s)/) == -1 ) return 0;
         dateformat = 'dd/mm/yy';
-        dateformat_str = 'dd/mm/yyyy';
     } else if (dateformat == 'iso' ) {
+        if ( date.search(/^\d{4}-\d{2}-\d{2}($|\s)/) == -1 ) return 0;
         dateformat = 'yy-mm-dd';
-        dateformat_str = 'yyyy-mm-dd';
+    } else if ( dateformat == 'dmydot' ) {
+        if ( date.search(/^\d{2}\.\d{2}\.\d{4}($|\s)/) == -1 ) return 0;
+        dateformat = 'dd.mm.yy';
     }
     try {
         $.datepicker.parseDate(dateformat, date);
@@ -28,9 +34,23 @@ function is_valid_date(date) {
     return 1;
 }
 
+function get_dateformat_str(dateformat) {
+    var dateformat_str;
+    if ( dateformat == 'us' ) {
+        dateformat_str = 'mm/dd/yyyy';
+    } else if ( dateformat == 'metric' ) {
+        dateformat_str = 'dd/mm/yyyy';
+    } else if (dateformat == 'iso' ) {
+        dateformat_str = 'yyyy-mm-dd';
+    } else if ( dateformat == 'dmydot' ) {
+        dateformat_str = 'dd.mm.yyyy';
+    }
+    return dateformat_str;
+}
+
 function validate_date (dateText, inst) {
     if ( !is_valid_date(dateText) ) {
-        var dateformat_str = '[% Koha.Preference('dateformat') %]';
+        var dateformat_str = get_dateformat_str( '[% Koha.Preference('dateformat') %]' );
         alert(MSG_PLEASE_ENTER_A_VALID_DATE.format(dateformat_str));
         $('#'+inst.id).val('');
     }
@@ -115,7 +135,12 @@ $.datepicker.setDefaults({
         buttonImageOnly: true,
         showButtonPanel: true,
         showOtherMonths: true,
-        selectOtherMonths: true
+        selectOtherMonths: true,
+        yearRange: "c-100:c+10"
+    });
+
+$("#dateofbirth").datepicker({
+        yearRange: "c-100:c"
     });
 
     $( ".datepicker" ).datepicker({