X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=js%2Fcrm.datepicker.js;h=ee628f118ef2bda5b39c9985c4bc35381004ff3e;hb=85651a607a837a25a272516a011f36af5f12650d;hp=95663c09492afe6fa782171d69713994da66afa2;hpb=4c00b9b1a7ccdb06698b7cc0b459856e667ff9e5;p=civicrm-core.git diff --git a/js/crm.datepicker.js b/js/crm.datepicker.js index 95663c0949..ee628f118e 100644 --- a/js/crm.datepicker.js +++ b/js/crm.datepicker.js @@ -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() { @@ -56,10 +56,10 @@ 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); @@ -104,10 +105,7 @@ */ 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(), @@ -158,4 +156,13 @@ updateInputFields(); }); }; + + function isInt(value) { + if (isNaN(value)) { + return false; + } + var x = parseFloat(value); + return (x | 0) === x; + } + })(jQuery, CRM, CRM._);