Skip to content
Snippets Groups Projects

Datepicker js optimization

Closed Paul Mather requested to merge datepicker-js-optimization into master
18 files
+ 164
70
Compare changes
  • Side-by-side
  • Inline
Files
18
var datepickerClass = '.datarepo-datepicker';
var datepickerId = 'datarepo-datepicker-';
var datepickerNumber = 0;
var datepickerOpts = {
changeMonth: true,
@@ -8,16 +9,13 @@ var datepickerOpts = {
function addDatepicker(mutation) {
for (var i = 0; i < mutation.addedNodes.length; ++i) {
var node = $(mutation.addedNodes[i]).find('input').first();
if (node.length && !node.data('datepicker')) {
node.removeClass('hasDatepicker');
if (node.attr('id').endsWith('-' + datepickerNumber)) {
node.attr('id', node.attr('id').slice(0, 0-('-' + datepickerNumber).length));
++datepickerNumber;
}
node.attr('id', node.attr('id') + '-' + datepickerNumber);
node.datepicker();
}
var node = $(mutation.addedNodes[i]).find('input.hasDatepicker');
if (node.length) {
node.removeClass('hasDatepicker');
node.attr('id', datepickerId + datepickerNumber);
datepickerNumber++;
node.datepicker();
}
}
}
@@ -25,8 +23,7 @@ Blacklight.onLoad(function() {
if ($(datepickerClass).length) {
$.datepicker.setDefaults(datepickerOpts);
$(datepickerClass).each(function() {
$(this).datepicker();
$(this).datepicker();
var datepickerObserver = new MutationObserver(function(mutations) {
mutations.forEach(addDatepicker);
});
Loading