From 70e7470f471929ab7e3c51598c05ba24ed5f436a Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Tue, 6 Oct 2015 09:40:53 -0400 Subject: [PATCH] crmDatepicker fixes and documentation --- ang/crmUi.js | 2 +- js/Common.js | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ang/crmUi.js b/ang/crmUi.js index e0d26b1a2f..448e880919 100644 --- a/ang/crmUi.js +++ b/ang/crmUi.js @@ -64,7 +64,7 @@ // Simple wrapper around $.crmDatepicker. // example with no time input: - // example with custom date format: + // example with custom date format: .directive('crmUiDatepicker', function () { return { restrict: 'AE', diff --git a/js/Common.js b/js/Common.js index 4dd1a05783..e60987d642 100644 --- a/js/Common.js +++ b/js/Common.js @@ -590,6 +590,9 @@ CRM.strings = CRM.strings || {}; }); } + /** + * @see http://wiki.civicrm.org/confluence/display/CRMDOC/crmDatepicker + */ $.fn.crmDatepicker = function(options) { return $(this).each(function() { if ($(this).is('.crm-form-date-wrapper .crm-hidden-date')) { @@ -603,7 +606,7 @@ CRM.strings = CRM.strings || {}; $timeField = $(), $clearLink = $(); - if (settings.allowClear !== undefined ? settings.allowClear : !$dataField.hasClass('required')) { + if (settings.allowClear !== undefined ? settings.allowClear : !$dataField.is('.required, [required]')) { $clearLink = $('') .insertAfter($dataField); } @@ -623,15 +626,15 @@ CRM.strings = CRM.strings || {}; $dateField = $('').insertAfter($dataField); copyAttributes($dataField, $dateField, ['placeholder', 'style', 'class', 'disabled']); $dateField.addClass('crm-form-text crm-form-date'); - settings.dateFormat = settings.dateFormat || CRM.config.dateInputFormat; - settings.changeMonth = _.includes('m', settings.dateFormat); - settings.changeYear = _.includes('y', settings.dateFormat); + settings.date = typeof settings.date === 'string' ? settings.date : CRM.config.dateInputFormat; + settings.changeMonth = _.includes('m', settings.date); + settings.changeYear = _.includes('y', settings.date); $dateField.datepicker(settings).change(updateDataField); } // Rudimentary validation. TODO: Roll into use of jQUery validate and ui.datepicker.validation function isValidDate() { try { - $.datepicker.parseDate(settings.dateFormat, $dateField.val()); + $.datepicker.parseDate(settings.date, $dateField.val()); return true; } catch (e) { return false; -- 2.25.1