156 lines
4 KiB
JavaScript
156 lines
4 KiB
JavaScript
if ( typeof ( window.UM ) !== 'object' ) {
|
|
window.UM = {};
|
|
}
|
|
|
|
if ( typeof ( UM.common ) !== 'object' ) {
|
|
UM.common = {};
|
|
}
|
|
|
|
UM.common = {
|
|
tipsy: {
|
|
init: function () {
|
|
if ( 'function' === typeof( jQuery.fn.tipsy ) ) {
|
|
jQuery('.um-tip-n').tipsy({gravity: 'n', opacity: 1, live: 'a.live', offset: 3 });
|
|
jQuery('.um-tip-w').tipsy({gravity: 'w', opacity: 1, live: 'a.live', offset: 3 });
|
|
jQuery('.um-tip-e').tipsy({gravity: 'e', opacity: 1, live: 'a.live', offset: 3 });
|
|
jQuery('.um-tip-s').tipsy({gravity: 's', opacity: 1, live: 'a.live', offset: 3 });
|
|
}
|
|
},
|
|
hide: function () {
|
|
if ( 'function' === typeof( jQuery.fn.tipsy ) ) {
|
|
jQuery('.um-tip-n').tipsy('hide');
|
|
jQuery('.um-tip-w').tipsy('hide');
|
|
jQuery('.um-tip-e').tipsy('hide');
|
|
jQuery('.um-tip-s').tipsy('hide');
|
|
jQuery('.um .tipsy').remove();
|
|
jQuery('.um-page .tipsy').remove();
|
|
}
|
|
}
|
|
},
|
|
datetimePicker: {
|
|
init: function () {
|
|
jQuery('.um-datepicker:not(.picker__input)').each(function(){
|
|
elem = jQuery(this);
|
|
|
|
if ( typeof elem.attr('data-disabled_weekdays') != 'undefined' && elem.attr('data-disabled_weekdays') != '' ) {
|
|
var disable = JSON.parse( elem.attr('data-disabled_weekdays') );
|
|
} else {
|
|
var disable = false;
|
|
}
|
|
|
|
var years_n = null;
|
|
if ( typeof elem.attr('data-years') != 'undefined' ) {
|
|
years_n = elem.attr('data-years');
|
|
}
|
|
|
|
var minRange = elem.attr('data-date_min');
|
|
var maxRange = elem.attr('data-date_max');
|
|
|
|
var minSplit = [], maxSplit = [];
|
|
if ( typeof minRange != 'undefined' ) {
|
|
minSplit = minRange.split(",");
|
|
}
|
|
if ( typeof maxRange != 'undefined' ) {
|
|
maxSplit = maxRange.split(",");
|
|
}
|
|
|
|
var min = minSplit.length ? new Date(minSplit) : null;
|
|
var max = minSplit.length ? new Date(maxSplit) : null;
|
|
|
|
// fix min date for safari
|
|
if ( min && min.toString() == 'Invalid Date' && minSplit.length == 3 ) {
|
|
var minDateString = minSplit[1] + '/' + minSplit[2] + '/' + minSplit[0];
|
|
min = new Date(Date.parse(minDateString));
|
|
}
|
|
|
|
// fix max date for safari
|
|
if ( max && max.toString() == 'Invalid Date' && maxSplit.length == 3 ) {
|
|
var maxDateString = maxSplit[1] + '/' + maxSplit[2] + '/' + maxSplit[0];
|
|
max = new Date(Date.parse(maxDateString));
|
|
}
|
|
|
|
var data = {
|
|
disable: disable,
|
|
format: elem.attr( 'data-format' ),
|
|
formatSubmit: 'yyyy/mm/dd',
|
|
hiddenName: true,
|
|
onOpen: function() {
|
|
elem.blur();
|
|
if ( elem.parents('body').hasClass('wp-admin') ) {
|
|
elem.siblings('.picker').find('.picker__button--close').addClass('button')
|
|
}
|
|
},
|
|
onClose: function() { elem.blur(); }
|
|
};
|
|
|
|
if ( years_n !== null ) {
|
|
data.selectYears = years_n;
|
|
}
|
|
|
|
if ( min !== null ) {
|
|
data.min = min;
|
|
}
|
|
|
|
if ( max !== null ) {
|
|
data.max = max;
|
|
}
|
|
|
|
elem.pickadate( data );
|
|
});
|
|
|
|
jQuery('.um-timepicker:not(.picker__input)').each(function(){
|
|
elem = jQuery(this);
|
|
|
|
elem.pickatime({
|
|
format: elem.attr('data-format'),
|
|
interval: parseInt( elem.attr('data-intervals') ),
|
|
formatSubmit: 'HH:i',
|
|
hiddenName: true,
|
|
onOpen: function() { elem.blur(); },
|
|
onClose: function() { elem.blur(); }
|
|
});
|
|
});
|
|
}
|
|
},
|
|
select: {
|
|
isSelected: function( selected, current ){
|
|
if ( selected === current ) {
|
|
return ' selected="selected"';
|
|
}
|
|
return "";
|
|
}
|
|
},
|
|
form: {
|
|
vanillaSerialize: function ( formID ) {
|
|
let form = document.querySelector('#' + formID);
|
|
let data = new FormData( form );
|
|
|
|
let obj = {};
|
|
for (let [key, value] of data) {
|
|
if (obj[key] !== undefined) {
|
|
if (!Array.isArray(obj[key])) {
|
|
obj[key] = [obj[key]];
|
|
}
|
|
obj[key].push(value);
|
|
} else {
|
|
obj[key] = value;
|
|
}
|
|
}
|
|
|
|
return obj;
|
|
}
|
|
}
|
|
}
|
|
|
|
jQuery(document).on( 'ajaxStart', function() {
|
|
UM.common.tipsy.hide();
|
|
});
|
|
|
|
jQuery(document).on( 'ajaxSuccess', function() {
|
|
UM.common.tipsy.init();
|
|
});
|
|
|
|
jQuery(document).ready(function() {
|
|
UM.common.tipsy.init();
|
|
UM.common.datetimePicker.init();
|
|
});
|