if ( typeof (window.UM) !== 'object' ) {
window.UM = {};
}
if ( typeof (window.UM.admin) !== 'object' ) {
window.UM.admin = {};
}
UM.admin = {
tooltip: {
all: null,
init: function() {
let $tooltip = jQuery( '.um_tooltip' );
if ( $tooltip.length > 0 ) {
UM.admin.tooltip.all = $tooltip.tooltip({
tooltipClass: "um_tooltip",
content: function () {
return jQuery( this ).attr( 'title' );
}
});
}
},
close: function () {
if ( null !== UM.admin.tooltip.all && UM.admin.tooltip.all > 0 && 'function' === typeof UM.admin.tooltip.all.tooltip ) {
UM.admin.tooltip.all.tooltip('close');
}
}
},
colorPicker: {
init: function () {
let $colorPicker = jQuery('.um-admin-colorpicker');
if ( $colorPicker.length ) {
$colorPicker.wpColorPicker();
}
}
},
iconSelector: {
init: function () {
let $iconSelector = jQuery('.um-icon-select-field');
if ( $iconSelector.length ) {
function iformat( icon ) {
let originalOption = icon.element;
if ( 'undefined' !== typeof originalOption ) {
return jQuery(' ' + icon.text + '');
} else {
return jQuery(' ' + icon.text + '');
}
}
let select2_atts = {
ajax: {
url: wp.ajax.settings.url,
dataType: 'json',
delay: 250, // delay in ms while typing when to perform a AJAX search
data: function( params ) {
return {
search: params.term, // search query
action: 'um_get_icons', // AJAX action for admin-ajax.php
page: params.page || 1, // infinite scroll pagination
nonce: um_admin_scripts.nonce
};
},
processResults: function( response, params ) {
params.page = params.page || 1;
var options = [];
if ( response.data.icons ) {
// data is the array of arrays, and each of them contains ID and the Label of the option
jQuery.each( response.data.icons, function( index, text ) {
options.push( { id: index, text: text.label } );
});
}
return {
results: options,
pagination: {
more: ( params.page * 50 ) < response.data.total_count
}
};
},
cache: true
},
minimumInputLength: 0, // the minimum of symbols to input before perform a search
allowClear: true,
width: "100%",
allowHtml: true,
templateSelection: iformat,
templateResult: iformat,
dropdownCssClass: 'um-select2-icon-dropdown',
containerCssClass : 'um-select2-icon-container'
};
if ( $iconSelector.parents('.um-icon-select-field-wrapper').length ) {
select2_atts.dropdownParent = $iconSelector.parents('.um-icon-select-field-wrapper');
}
$iconSelector.select2( select2_atts ).on( 'change', function () {
// handle outdated icons and remove them after select new one.
let oldWrapper = $iconSelector.siblings('.um_admin_fonticon_wrapper');
if ( oldWrapper.length > 0 ) {
oldWrapper.find('.um_old_icon_field_value').val( $iconSelector.val() );
oldWrapper.hide();
}
});
}
}
}
}
jQuery(document).ready(function() {
UM.admin.tooltip.init();
UM.admin.colorPicker.init();
UM.admin.iconSelector.init();
});