File: //home/shrsglobal/www/wp-content/plugins/ultimate-elementor/admin/assets/admin-menu-settings.js
( function( $ ) {
/**
* AJAX Request Queue
*
* - add()
* - remove()
* - run()
* - stop()
*
* @since 1.2.0.8
*/
var UaelAjaxQueue = (function() {
var requests = [];
return {
/**
* Add AJAX request
*
* @since 1.2.0.8
*/
add: function(opt) {
requests.push(opt);
},
/**
* Remove AJAX request
*
* @since 1.2.0.8
*/
remove: function(opt) {
if( jQuery.inArray(opt, requests) > -1 )
requests.splice($.inArray(opt, requests), 1);
},
/**
* Run / Process AJAX request
*
* @since 1.2.0.8
*/
run: function() {
var self = this,
oriSuc;
if( requests.length ) {
oriSuc = requests[0].complete;
requests[0].complete = function() {
if( typeof(oriSuc) === 'function' ) oriSuc();
requests.shift();
self.run.apply(self, []);
};
jQuery.ajax(requests[0]);
} else {
self.tid = setTimeout(function() {
self.run.apply(self, []);
}, 1000);
}
},
/**
* Stop AJAX request
*
* @since 1.2.0.8
*/
stop: function() {
requests = [];
clearTimeout(this.tid);
}
};
}());
UaelAdmin = {
init: function () {
/**
* Run / Process AJAX request
*/
UaelAjaxQueue.run();
this._knowledgebase();
this._support();
$(document).on("click", ".uael-activate-widget", UaelAdmin._activate_widget);
$(document).on("click", ".uael-deactivate-widget", UaelAdmin._deactivate_widget);
$(document).on("click", ".uael-activate-all", UaelAdmin._bulk_activate_widgets);
$(document).on("click", ".uael-deactivate-all", UaelAdmin._bulk_deactivate_widgets);
$(document).on("click", ".uael-activate-skins-all", UaelAdmin._bulk_activate_skins);
$(document).on("click", ".uael-deactivate-skins-all", UaelAdmin._bulk_deactivate_skins);
$(document).on("click", "#uael-gen-enable-beta-update", UaelAdmin._allow_beta_updates);
/* White Label */
$(document).on("change", "#uael-wl-enable-knowledgebase", UaelAdmin._knowledgebase);
$(document).on("change", "#uael-wl-enable-support", UaelAdmin._support);
/* Instagram token */
$(document).on("click", ".uael-instagram-access-token-generator", this._generateInstagramAccessToken);
},
/**
* Activate All Widgets.
*/
_bulk_activate_widgets: function (e) {
var button = $(this);
var widget_item = $('.uael-option-type-widget').children("li");
var data = {
action: 'uael_bulk_activate_widgets',
nonce: uael.ajax_nonce,
};
if (button.hasClass('updating-message')) {
return;
}
$(button).addClass('updating-message');
UaelAjaxQueue.add({
url: ajaxurl,
type: 'POST',
data: data,
success: function (data) {
// Bulk add or remove classes to all modules.
widget_item.addClass('activate').removeClass('deactivate');
widget_item.find('.uael-activate-widget')
.addClass('uael-deactivate-widget')
.prop('checked', true)
.removeClass('uael-activate-widget');
$(button).removeClass('updating-message');
}
});
e.preventDefault();
},
/**
* Deactivate All Widgets.
*/
_bulk_deactivate_widgets: function (e) {
var button = $(this);
var widget_item = $('.uael-option-type-widget').children("li");
var data = {
action: 'uael_bulk_deactivate_widgets',
nonce: uael.ajax_nonce,
};
if (button.hasClass('updating-message')) {
return;
}
$(button).addClass('updating-message');
UaelAjaxQueue.add({
url: ajaxurl,
type: 'POST',
data: data,
success: function (data) {
// Bulk add or remove classes to all modules.
widget_item.addClass('deactivate').removeClass('activate');
widget_item.find('.uael-deactivate-widget')
.addClass('uael-activate-widget')
.removeClass('uael-deactivate-widget')
.prop('checked', false);
$(button).removeClass('updating-message');
}
});
e.preventDefault();
},
/**
* Activate All Widgets.
*/
_bulk_activate_skins: function (e) {
var button = $(this);
var data = {
action: 'uael_bulk_activate_skins',
nonce: uael.ajax_nonce,
};
if (button.hasClass('updating-message')) {
return;
}
$(button).addClass('updating-message');
UaelAjaxQueue.add({
url: ajaxurl,
type: 'POST',
data: data,
success: function (data) {
// Bulk add or remove classes to all modules.
$('.uael-option-type-skin').children("li").addClass('activate').removeClass('deactivate');
$('.uael-option-type-skin').children("li").find('.uael-activate-widget')
.addClass('uael-deactivate-widget')
.prop('checked', true)
.removeClass('uael-activate-widget');
$(button).removeClass('updating-message');
}
});
e.preventDefault();
},
/**
* Deactivate All Widgets.
*/
_bulk_deactivate_skins: function (e) {
var button = $(this);
var data = {
action: 'uael_bulk_deactivate_skins',
nonce: uael.ajax_nonce,
};
if (button.hasClass('updating-message')) {
return;
}
$(button).addClass('updating-message');
UaelAjaxQueue.add({
url: ajaxurl,
type: 'POST',
data: data,
success: function (data) {
// Bulk add or remove classes to all modules.
$('.uael-option-type-skin').children("li").addClass('deactivate').removeClass('activate');
$('.uael-option-type-skin').children("li").find('.uael-deactivate-widget')
.addClass('uael-activate-widget')
.removeClass('uael-deactivate-widget')
.prop('checked', false);
$(button).removeClass('updating-message');
}
});
e.preventDefault();
},
/**
* Activate Module.
*/
_activate_widget: function (e) {
var button = $(this),
id = button.parents('li').attr('id');
if (button[0].checked) {
var data = {
module_id: id,
action: 'uael_activate_widget',
nonce: uael.ajax_nonce,
};
if (button.hasClass('updating-message')) {
return;
}
$(button).addClass('updating-message');
UaelAjaxQueue.add({
url: ajaxurl,
type: 'POST',
data: data,
success: function (data) {
// Add active class.
$('#' + id).addClass('activate').removeClass('deactivate');
// Change button classes & text.
$('#' + id).find('.uael-activate-widget')
.addClass('uael-deactivate-widget')
.prop('checked', true)
.removeClass('uael-activate-widget')
.removeClass('updating-message');
}
});
e.preventDefault();
}
},
/**
* Deactivate Module.
*/
_deactivate_widget: function (e) {
e.preventDefault();
var button = $(this),
id = button.parents('li').attr('id');
if (!button[0].checked) {
var data = {
module_id: id,
action: 'uael_deactivate_widget',
nonce: uael.ajax_nonce,
};
if (button.hasClass('updating-message')) {
return;
}
$(button).addClass('updating-message');
UaelAjaxQueue.add({
url: ajaxurl,
type: 'POST',
data: data,
success: function (data) {
// Remove active class.
$('#' + id).addClass('deactivate').removeClass('activate');
// Change button classes & text.
$('#' + id).find('.uael-deactivate-widget')
.addClass('uael-activate-widget')
.removeClass('uael-deactivate-widget')
.prop('checked', false)
.removeClass('updating-message');
}
});
}
},
/**
* Allow Beta Updates.
*/
_allow_beta_updates: function (e) {
var $this = $(this);
var allow_beta = $this.attr('data-value');
if ('disable' === allow_beta) {
allow_beta = 'enable';
} else {
allow_beta = 'disable';
}
$this.addClass('loading');
var data = {
allow_beta: allow_beta,
action: 'uael_allow_beta_updates',
nonce: uael.ajax_nonce,
};
UaelAjaxQueue.add({
url: ajaxurl,
type: 'POST',
data: data,
success: function (data) {
window.location.href += '&message=saved';
}
})
},
/**
* Knowledge Base.
*/
_knowledgebase: function () {
if ($('#uael-wl-enable-knowledgebase').is(':checked')) {
$('p.uael-knowledgebase-url').show();
} else {
$('p.uael-knowledgebase-url').hide();
}
},
/**
* Support.
*/
_support: function () {
if ($('#uael-wl-enable-support').is(':checked')) {
$('p.uael-support-url').show();
} else {
$('p.uael-support-url').hide();
}
},
/**
* Generate Instagram Access Token
*/
_generateInstagramAccessToken: function () {
var appId = $('#uael-instagram-app-id');
var appSecret = $('#uael-instagram-secret-key');
var accessToken = $('#uael-instagram-access-token');
var refreshTokenURL = 'https://graph.instagram.com/refresh_access_token';
var successMessageSpan = $('.uael-insta-response-msg.uael-response-success');
var warningMessageSpan = $('.uael-insta-response-msg.uael-response-warning');
if (accessToken.length) {
$.ajax({
url: refreshTokenURL,
type: "GET",
data: {
grant_type: 'ig_refresh_token',
access_token: accessToken.val(),
}
})
.done(function (data, textStatus, jqXHR) {
warningMessageSpan.hide();
successMessageSpan.show();
})
.fail(function (jqXHR, textStatus, errorThrown) {
successMessageSpan.hide();
warningMessageSpan.show();
})
.always(function (jqXHROrData, textStatus, jqXHROrErrorThrown) {
});
}
},
}
$( document ).ready(
function() {
UaelAdmin.init();
var filter_inputs = $( '.uael-container.uael-general .uael-widget-filters [type="radio"]' );
var filter_tabs = $( '.uael-container.uael-general .uael-widget-filters li' );
var widget_list = $( '.uael-container.uael-general .uael-list-section .uael-widget-list li' );
var filterUlList = $( '.uael-widget-filters' );
// Sort the widget list according to selected/clicked filter.
function mayBeSort(widgets, cat) {
for (var widget in widgets) {
if ( widgets.hasOwnProperty( widget ) ) {
var _widget = $( widgets[widget] );
if ('all' === cat) {
widgets.removeClass( 'filter-item-disable' );
widgets.addClass( 'filter-item-active' );
}
if (_widget.data( 'category' ) !== cat) {
_widget.removeClass( 'filter-item-active' );
_widget.addClass( 'filter-item-disable' );
} else {
_widget.addClass( 'filter-item-active' );
_widget.removeClass( 'filter-item-disable' );
}
}
}
}
// Show filtered view when clicked on filter tab.
function showFiltered() {
var tab = $( this );
var category = tab.data( 'category' );
var header_bar = $( '.uael-settings-widgets-heading' );
filter_tabs.removeClass( 'filter-active' );
tab.parent().addClass( 'filter-active' );
if( 'all' !== category && ! header_bar.hasClass( 'uael-hide-activation-options' ) ) {
header_bar.addClass( 'uael-hide-activation-options' );
} else if( 'all' === category ) {
header_bar.removeClass( 'uael-hide-activation-options' );
}
mayBeSort( widget_list, category );
}
filter_inputs.on( 'click', showFiltered );
// Build the filters dropdown ui.
filterUlList.each(
function(){
var list = $( this ),
select = $( document.createElement( 'select' ) ).insertBefore( $( this ) ).addClass( 'uael-widget-filters-dropdown uael-widget-filters-dropdown-hide' );
$( '>li', this ).each(
function(){
var items = $( this ),
label = items.text(),
category = items.find( '[type="radio"]' ).data( 'category' );
var option = $( document.createElement( 'option' ) )
.appendTo( select )
.prop(
{
value: category,
text: label
}
);
}
);
}
);
var filterDropdownList = $( '.uael-widget-filters-dropdown' );
// Check the window size for show filter dropdown instead of filter tabs.
const mediaQuery = window.matchMedia( '(max-width: 1120px)' );
// Show/Hide filter dropdown based on media query(window size).
function handleFilterDropdown(e) {
if (e.matches) {
filterDropdownList.removeClass( 'uael-widget-filters-dropdown-hide' );
filterUlList.addClass( 'uael-widget-filter-list-hide' );
} else {
filterDropdownList.addClass( 'uael-widget-filters-dropdown-hide' );
filterUlList.removeClass( 'uael-widget-filter-list-hide' );
}
}
// Add listener to detect window size change.
if (mediaQuery.addEventListener !== undefined) {
mediaQuery.addEventListener( "change", handleFilterDropdown );
} else if (mediaQuery.addListener !== undefined) {
mediaQuery.addListener( handleFilterDropdown );
}
// Invoke Show/Hide filter dropdown function for first time on page load.
handleFilterDropdown( mediaQuery );
filterDropdownList.on( 'change', showFilteredByDropdown );
// Show filtered view when selected filter from dropdown.
function showFilteredByDropdown(){
var selected_option = this,
selected_category = selected_option.value;
mayBeSort( widget_list, selected_category );
}
}
);
} )( jQuery );