Merge pull request #22952 from totten/master-install-sk
[civicrm-core.git] / js / crm.datepicker.js
index 95663c09492afe6fa782171d69713994da66afa2..ee628f118ef2bda5b39c9985c4bc35381004ff3e 100644 (file)
@@ -2,7 +2,7 @@
   "use strict";
 
   /**
-   * @see http://wiki.civicrm.org/confluence/display/CRMDOC/crmDatepicker
+   * @see https://docs.civicrm.org/dev/en/latest/framework/ui/#date-picker
    */
   $.fn.crmDatepicker = function(options) {
     return $(this).each(function() {
         CRM.utils.copyAttributes($dataField, $dateField, ['style', 'class', 'disabled', 'aria-label']);
         placeholder = settings.placeholder || $dataField.attr('placeholder');
         $dateField.addClass('crm-form-' + type);
-        if (!settings.minDate && !_.isUndefined(settings.start_date_years)) {
+        if (!settings.minDate && isInt(settings.start_date_years)) {
           settings.minDate = '' + (new Date().getFullYear() - settings.start_date_years) + '-01-01';
         }
-        if (!settings.maxDate && !_.isUndefined(settings.end_date_years)) {
+        if (!settings.maxDate && isInt(settings.end_date_years)) {
           settings.maxDate = '' + (new Date().getFullYear() + settings.end_date_years) + '-12-31';
         }
         if (hasDatepicker) {
@@ -75,6 +75,7 @@
         } else {
           $dateField.attr('min', settings.minDate ? CRM.utils.formatDate(settings.minDate, 'yy') : '1000');
           $dateField.attr('max', settings.maxDate ? CRM.utils.formatDate(settings.maxDate, 'yy') : '4000');
+          placeholder = null;
         }
         // Set placeholder as calendar icon (`fa-calendar` is Unicode f073)
         $dateField.attr({placeholder: placeholder === undefined ? '\uF073' : placeholder}).change(updateDataField);
        */
       function dateHasDay() {
         var lowerFormat = settings.dateFormat.toLowerCase();
-        if (lowerFormat.indexOf('d') < 0) {
-          return false;
-        }
-        return true;
+        return lowerFormat.indexOf('d') >= 0;
       }
       function updateInputFields(e, context) {
         var val = $dataField.val(),
       updateInputFields();
     });
   };
+
+  function isInt(value) {
+    if (isNaN(value)) {
+      return false;
+    }
+    var x = parseFloat(value);
+    return (x | 0) === x;
+  }
+
 })(jQuery, CRM, CRM._);