"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) {
} 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._);