568 lines
19 KiB
JavaScript
568 lines
19 KiB
JavaScript
|
(function($) {
|
||
|
'use strict';
|
||
|
|
||
|
var docPlayer;
|
||
|
var resizeTimer;
|
||
|
var showHideDelay = 300;
|
||
|
var removeDelay = 500;
|
||
|
var logViewers = [];
|
||
|
var supportUserID = etSupportCenter.supportUserID || null;
|
||
|
var debugLogViewer = window.wp && window.wp.codeEditor;
|
||
|
var $save_message = $('#epanel-ajax-saving');
|
||
|
var $etSystemStatusTable = $('.et_system_status');
|
||
|
var $etSupportUserToggle = $('.et_support_user_toggle .et_pb_yes_no_button');
|
||
|
var $et_documentation_videos_list_li = $('.et_documentation_videos_list li');
|
||
|
var $modalSafeModeWarningTemplate = $('#et-ajax-safe-mode-template').html();
|
||
|
|
||
|
function confirmClipboardCopy() {
|
||
|
$save_message.addClass('success-animation').fadeIn('fast');
|
||
|
$save_message.fadeOut('slow');
|
||
|
}
|
||
|
|
||
|
// Remote Access: Toggle ET Support User On/Off
|
||
|
function supportUserActivationToggle($toggle, newState, silentMode) {
|
||
|
|
||
|
// If Silent Mode is `true` then we'll run AJAX without rendering display changes
|
||
|
silentMode = silentMode || false;
|
||
|
|
||
|
if (typeof newState === 'undefined') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var postData = {
|
||
|
action: 'et_support_user_update',
|
||
|
nonce: etSupportCenter.nonce
|
||
|
};
|
||
|
|
||
|
switch (newState) {
|
||
|
case 'activate':
|
||
|
postData.support_update = 'activate';
|
||
|
break;
|
||
|
case 'deactivate':
|
||
|
postData.support_update = 'deactivate';
|
||
|
break;
|
||
|
default:
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// Ajax toggle ET Support User
|
||
|
jQuery.ajax({
|
||
|
type: 'POST',
|
||
|
data: postData,
|
||
|
dataType: 'json',
|
||
|
url: etSupportCenter.ajaxURL,
|
||
|
action: 'support_user_update_via_ajax',
|
||
|
beforeSend: function(xhr) {
|
||
|
// Don't execute DOM changes in Silent Mode
|
||
|
if (silentMode) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$('.et-remote-access-error').first().hide(showHideDelay);
|
||
|
$save_message.addClass('et_loading').removeClass('success-animation');
|
||
|
$save_message.fadeIn('fast');
|
||
|
},
|
||
|
success: function(response) {
|
||
|
// Don't execute DOM changes in Silent Mode
|
||
|
if (silentMode) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
$save_message.removeClass('et_loading').removeClass('success-animation');
|
||
|
|
||
|
setTimeout(function() {
|
||
|
$save_message.fadeOut('slow');
|
||
|
}, removeDelay);
|
||
|
var $msgExpiry = $('.et-support-user-expiry').first();
|
||
|
if ('activate' === postData.support_update) {
|
||
|
if (response.error) {
|
||
|
$('.et-remote-access-error').first().text(response.error).show(showHideDelay);
|
||
|
return;
|
||
|
}
|
||
|
$('#et-remote-access-error').remove();
|
||
|
$toggle.removeClass('et_pb_off_state').addClass('et_pb_on_state');
|
||
|
$msgExpiry.attr('data-expiry', response.expiry);
|
||
|
supportUserTimeToExpiry();
|
||
|
$msgExpiry.show(showHideDelay);
|
||
|
$('.et-support-user-elevated').show(showHideDelay);
|
||
|
$('.card.et_remote_access .et_card_cta').append(
|
||
|
$('<a>')
|
||
|
.attr({
|
||
|
'class': 'copy_support_token',
|
||
|
'data-token': response.token
|
||
|
})
|
||
|
.text('Copy Support Token')
|
||
|
);
|
||
|
} else if ('deactivate' === postData.support_update) {
|
||
|
// First switch & hide the "elevated" toggle
|
||
|
// (not a click event because we don't need to trigger AJAX)
|
||
|
$('.et-support-user-elevated').hide(showHideDelay);
|
||
|
$('.et_support_user_elevated_toggle .et_pb_yes_no_button').removeClass('et_pb_on_state').addClass('et_pb_off_state');
|
||
|
// Now clean up the Remote Access toggle
|
||
|
$msgExpiry.hide(showHideDelay);
|
||
|
$toggle.removeClass('et_pb_on_state').addClass('et_pb_off_state');
|
||
|
$('.copy_support_token').fadeOut('slow');
|
||
|
setTimeout(function() {
|
||
|
$('.copy_support_token').remove();
|
||
|
}, removeDelay);
|
||
|
}
|
||
|
$save_message.addClass('success-animation');
|
||
|
}
|
||
|
}).fail(function(data) {
|
||
|
console.log(data.responseText);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// Remote Access: Calculate of Time To Auto-Deactivation
|
||
|
function supportUserTimeToExpiry() {
|
||
|
if (! $('.et_support_user_toggle .et_pb_on_state').length) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var $supportUserExpiry = $('.et-support-user-expiry').first();
|
||
|
var expiry = parseInt($supportUserExpiry.attr('data-expiry'));
|
||
|
var timeToExpiry = (expiry - (new Date().getTime() / 1000));
|
||
|
var $timer = $supportUserExpiry.find('.support-user-time-to-expiry').first();
|
||
|
var timerContent = '';
|
||
|
var days = 0;
|
||
|
var hours = 0;
|
||
|
var minutes = 0;
|
||
|
|
||
|
if (30 >= timeToExpiry) {
|
||
|
// Don't bother calculating; expiration will happen before the next check, so let's trigger deactivation now.
|
||
|
$timer.html('0 minutes');
|
||
|
// Go ahead and turn off the user (don't need to wait for WP Cron)
|
||
|
$etSupportUserToggle.trigger('click');
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
days = parseInt(timeToExpiry / 86400);
|
||
|
days = days > 0 ? days : 0;
|
||
|
timeToExpiry = timeToExpiry % 86400;
|
||
|
|
||
|
hours = parseInt(timeToExpiry / 3600);
|
||
|
hours = hours > 0 ? hours : 0;
|
||
|
timeToExpiry = timeToExpiry % 3600;
|
||
|
|
||
|
minutes = parseInt(timeToExpiry / 60);
|
||
|
minutes = minutes > 0 ? minutes : 0;
|
||
|
|
||
|
if (0 < days) {
|
||
|
timerContent = timerContent + days + (1 < days ? ' days, ' : ' day, ');
|
||
|
}
|
||
|
|
||
|
if (0 < hours) {
|
||
|
timerContent = timerContent + hours + (1 < hours ? ' hours, ' : ' hour, ');
|
||
|
}
|
||
|
|
||
|
timerContent = timerContent + minutes + (1 !== minutes ? ' minutes' : ' minute');
|
||
|
|
||
|
$timer.html(timerContent);
|
||
|
}
|
||
|
|
||
|
// Documentation: Recalculate video dimensions (typically on viewport resize)
|
||
|
function et_core_correct_video_proportions() {
|
||
|
var parentHeight = (parseInt($('.et_docs_videos').first().width()) * .5625) + 'px';
|
||
|
$('.et_docs_videos .wrapper').css('max-height', parentHeight);
|
||
|
$('.et_docs_videos iframe').css('max-height', parentHeight);
|
||
|
}
|
||
|
|
||
|
// Documentation: Initialize YouTube Iframe player
|
||
|
function loadYouTubeIframe() {
|
||
|
if (('undefined' !== typeof YT) && YT && YT.Player) {
|
||
|
// Default video: 'Getting Started With The Divi Builder'
|
||
|
var firstVideo = 'T-Oe01_J62c';
|
||
|
var $firstVideoItem = $('.et_docs_videos li:first-of-type');
|
||
|
|
||
|
// If the Documentation videos list has YouTube IDs, grab the first one
|
||
|
if ($firstVideoItem.length > 0 && $firstVideoItem[0].hasAttribute('data-ytid')) {
|
||
|
firstVideo = $firstVideoItem.attr('data-ytid');
|
||
|
}
|
||
|
|
||
|
docPlayer = new YT.Player('et_documentation_player', {
|
||
|
videoId: firstVideo,
|
||
|
height: '360',
|
||
|
width: '640',
|
||
|
showinfo: 0,
|
||
|
controls: 0,
|
||
|
rel: 0
|
||
|
});
|
||
|
et_core_correct_video_proportions();
|
||
|
} else {
|
||
|
setTimeout(loadYouTubeIframe, 100);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Safe Mode: Activate/Deactivate
|
||
|
function toggleETSafeMode($toggle) {
|
||
|
var postData = {
|
||
|
action: 'et_safe_mode_update',
|
||
|
nonce: etSupportCenter.nonce
|
||
|
};
|
||
|
|
||
|
if ($toggle.hasClass('et_pb_off_state')) {
|
||
|
postData.support_update = 'activate';
|
||
|
} else if ($toggle.hasClass('et_pb_on_state') || $toggle.hasClass('et-safe-mode-indicator') || $toggle.hasClass('et-core-modal-action')) {
|
||
|
postData.support_update = 'deactivate';
|
||
|
} else {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if ('activate' === postData.support_update) {
|
||
|
var safeModeProduct = $toggle.parents('#et_card_safe_mode').data('et-product');
|
||
|
|
||
|
// Continue only if the product is in our allowlist
|
||
|
switch (safeModeProduct) {
|
||
|
case 'divi_builder_plugin':
|
||
|
case 'divi_theme':
|
||
|
case 'extra_theme':
|
||
|
case 'monarch_plugin':
|
||
|
case 'bloom_plugin':
|
||
|
postData.product = safeModeProduct;
|
||
|
break;
|
||
|
default:
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Ajax toggle Safe Mode
|
||
|
jQuery.ajax({
|
||
|
type: 'POST',
|
||
|
data: postData,
|
||
|
dataType: 'json',
|
||
|
url: etSupportCenter.ajaxURL,
|
||
|
action: 'safe_mode_update_via_ajax',
|
||
|
beforeSend: function(xhr) {
|
||
|
$('.et-core-safe-mode-block-modal').removeClass('et-core-active');
|
||
|
$save_message.addClass('et_loading').removeClass('success-animation');
|
||
|
$save_message.fadeIn('fast');
|
||
|
},
|
||
|
success: function(response) {
|
||
|
$save_message.removeClass('et_loading').addClass('success-animation');
|
||
|
var $msgExpiry = $('.et-support-user-expiry').first();
|
||
|
if ('activate' === postData.support_update) {
|
||
|
$('.et_safe_mode_toggle .et_pb_yes_no_button').removeClass('et_pb_off_state').addClass('et_pb_on_state');
|
||
|
} else if ('deactivate' === postData.support_update) {
|
||
|
$('.et_safe_mode_toggle .et_pb_yes_no_button').removeClass('et_pb_on_state').addClass('et_pb_off_state');
|
||
|
$('.et-safe-mode-indicator').fadeOut('slow');
|
||
|
setTimeout(function() {
|
||
|
$('.et-safe-mode-indicator').remove();
|
||
|
$('.wp-admin').removeClass('et-safe-mode-active');
|
||
|
}, removeDelay);
|
||
|
}
|
||
|
setTimeout(function() {
|
||
|
$save_message.fadeOut('slow');
|
||
|
window.location.reload(true);
|
||
|
}, removeDelay);
|
||
|
}
|
||
|
}).fail(function(data) {
|
||
|
console.log(data.responseText);
|
||
|
$save_message.fadeOut('slow');
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// Safe Mode: Interrupt Actions when Safe Mode is Active
|
||
|
function preventActionWhenSafeModeActive() {
|
||
|
$('body').append($modalSafeModeWarningTemplate);
|
||
|
$('.et-core-safe-mode-block-modal').addClass('et-core-active');
|
||
|
$(window).trigger('et-core-modal-active');
|
||
|
}
|
||
|
|
||
|
// Logs: Add CodeMirror Instance with Custom Formatting Rules
|
||
|
function addLogViewerInstance(codeEditor, $element, config) {
|
||
|
if (! $element || $element.length === 0) {
|
||
|
return;
|
||
|
}
|
||
|
var instance = codeEditor.initialize($element, {
|
||
|
codemirror: config,
|
||
|
});
|
||
|
if (instance && instance.codemirror) {
|
||
|
logViewers.push(instance.codemirror);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Dismiss Card in the Support Center
|
||
|
function dismissCard($button) {
|
||
|
const postData = {
|
||
|
action: 'et_dismiss_support_center_card',
|
||
|
nonce: etSupportCenter.nonce,
|
||
|
product: $button.data('product'),
|
||
|
card_key: $button.data('key'),
|
||
|
};
|
||
|
|
||
|
// Dismiss the Card via AJAX
|
||
|
jQuery.ajax({
|
||
|
type: 'POST',
|
||
|
data: postData,
|
||
|
dataType: 'json',
|
||
|
url: etSupportCenter.ajaxURL,
|
||
|
beforeSend: function(xhr) {
|
||
|
$button.prop('disabled', true);
|
||
|
$save_message.addClass('et_loading').removeClass('success-animation');
|
||
|
$save_message.fadeIn('fast');
|
||
|
},
|
||
|
success: function(response) {
|
||
|
$button.parent().remove();
|
||
|
$save_message.removeClass('et_loading').addClass('success-animation');
|
||
|
|
||
|
setTimeout(function() {
|
||
|
$save_message.fadeOut('slow');
|
||
|
}, removeDelay);
|
||
|
},
|
||
|
}).fail(function(data) {
|
||
|
$button.prop('disabled', false);
|
||
|
console.log(data.responseText);
|
||
|
$save_message.fadeOut('slow');
|
||
|
});
|
||
|
}
|
||
|
|
||
|
$(window).on('resize', function() {
|
||
|
resizeTimer = _.debounce(et_core_correct_video_proportions(), showHideDelay);
|
||
|
});
|
||
|
|
||
|
$(function() {
|
||
|
/**
|
||
|
* Support Center :: System Status
|
||
|
*/
|
||
|
|
||
|
// System Status: display message if all checks passed
|
||
|
if (0 === $('.et-system-status-report').children(':not(.et_system_status_pass)').length) {
|
||
|
$('.et-system-status-congratulations').show(showHideDelay);
|
||
|
}
|
||
|
|
||
|
// System Status: Show Full Report
|
||
|
$('.full_report_show').on('click', function() {
|
||
|
$etSystemStatusTable.find('.et_system_status_pass').show(showHideDelay);
|
||
|
$etSystemStatusTable.removeClass('summary').addClass('full');
|
||
|
});
|
||
|
|
||
|
// System Status: Show Summary Report
|
||
|
$('.full_report_hide').on('click', function() {
|
||
|
$etSystemStatusTable.find('.et_system_status_pass').hide(showHideDelay);
|
||
|
$etSystemStatusTable.addClass('summary').removeClass('full');
|
||
|
});
|
||
|
|
||
|
// System Status: Copy Full Report to Clipboard
|
||
|
$('.full_report_copy').on('click', function() {
|
||
|
$('#et_system_status_plain').trigger('select');
|
||
|
document.execCommand('copy');
|
||
|
confirmClipboardCopy();
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Support Center :: Remote Access
|
||
|
*/
|
||
|
if ($('.card.et_remote_access').length > 0) {
|
||
|
// Remote Access: Initial Calculation of Time To Auto-Deactivation
|
||
|
supportUserTimeToExpiry();
|
||
|
|
||
|
// Remote Access: Recalculate Time To Auto-Deactivation (every 30 seconds)
|
||
|
setInterval(supportUserTimeToExpiry, 30000);
|
||
|
|
||
|
// Remote Access: Display Auto-Deactivation Countdown
|
||
|
if ($etSupportUserToggle.hasClass('et_pb_on_state')) {
|
||
|
$('.et-support-user-expiry').first().show(0);
|
||
|
} else {
|
||
|
// If the Support User account toggle is off, send a quick AJAX request to verify the account is deactivated
|
||
|
supportUserActivationToggle($etSupportUserToggle, 'deactivate', true);
|
||
|
}
|
||
|
|
||
|
// Remote Access: Activate/Deactivate
|
||
|
$etSupportUserToggle.on('click', function(e) {
|
||
|
e.preventDefault();
|
||
|
|
||
|
if ($etSupportUserToggle.hasClass('et_pb_off_state')) {
|
||
|
supportUserActivationToggle($(this), 'activate');
|
||
|
} else if ($etSupportUserToggle.hasClass('et_pb_on_state')) {
|
||
|
supportUserActivationToggle($(this), 'deactivate');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// Remote Access: Elevate/Reset Divi Support user role
|
||
|
$('.et_support_user_elevated_toggle .et_pb_yes_no_button').on('click', function(e) {
|
||
|
e.preventDefault();
|
||
|
|
||
|
var $toggle = $(this);
|
||
|
|
||
|
var postData = {
|
||
|
action: 'et_support_user_update',
|
||
|
nonce: etSupportCenter.nonce
|
||
|
};
|
||
|
|
||
|
if ($toggle.hasClass('et_pb_off_state')) {
|
||
|
postData.support_update = 'elevate';
|
||
|
} else if ($toggle.hasClass('et_pb_on_state')) {
|
||
|
postData.support_update = 'activate';
|
||
|
} else {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// Ajax toggle ET Support User Admin Mode
|
||
|
jQuery.ajax({
|
||
|
type: 'POST',
|
||
|
data: postData,
|
||
|
dataType: 'json',
|
||
|
url: etSupportCenter.ajaxURL,
|
||
|
action: 'support_user_update_via_ajax',
|
||
|
beforeSend: function(xhr) {
|
||
|
$save_message.addClass('et_loading').removeClass('success-animation');
|
||
|
$save_message.fadeIn('fast');
|
||
|
},
|
||
|
success: function(response) {
|
||
|
$save_message.removeClass('et_loading').removeClass('success-animation');
|
||
|
|
||
|
setTimeout(function() {
|
||
|
$save_message.fadeOut('slow');
|
||
|
}, removeDelay);
|
||
|
if ('elevate' === postData.support_update) {
|
||
|
$toggle.removeClass('et_pb_off_state').addClass('et_pb_on_state');
|
||
|
} else if ('activate' === postData.support_update) {
|
||
|
$toggle.removeClass('et_pb_on_state').addClass('et_pb_off_state');
|
||
|
}
|
||
|
$save_message.addClass('success-animation');
|
||
|
}
|
||
|
}).fail(function(data) {
|
||
|
console.log(data.responseText);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// Remote Access: Copy Support Token to clipboard
|
||
|
$('body').on('click', '.copy_support_token', function() {
|
||
|
var token = $(this).attr('data-token');
|
||
|
var $temp = $('<input>');
|
||
|
$('body').append($temp);
|
||
|
$temp.val(token).trigger('select');
|
||
|
document.execCommand('copy');
|
||
|
$temp.remove();
|
||
|
confirmClipboardCopy();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Support Center :: Documentation & Help
|
||
|
*/
|
||
|
if ($('body').find('[data-et-page="wp-admin-support-center"]').length > 0) {
|
||
|
// Load the IFrame Player API code asynchronously.
|
||
|
var tag = document.createElement('script');
|
||
|
tag.src = 'https://www.youtube.com/iframe_api';
|
||
|
var firstScriptTag = document.getElementsByTagName('script')[0];
|
||
|
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
|
||
|
loadYouTubeIframe();
|
||
|
}
|
||
|
|
||
|
// Documentation & Help: YouTube Video Navigation
|
||
|
$et_documentation_videos_list_li.on('click', function() {
|
||
|
var $active = $(this);
|
||
|
|
||
|
$et_documentation_videos_list_li.removeClass('active');
|
||
|
$active.addClass('active');
|
||
|
|
||
|
docPlayer.cueVideoById($active.attr('data-ytid'), 0, 'large');
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Support Center :: Safe Mode
|
||
|
*/
|
||
|
|
||
|
if ($save_message.length === 0) {
|
||
|
$('body.wp-admin').append(
|
||
|
$('<div>').attr({ 'id': 'et-ajax-saving', 'class': 'et_loading' }).append(
|
||
|
$('<img>').attr({ 'src': etSupportCenter.ajaxLoaderImg, 'alt': 'loading', 'id': 'loading' })
|
||
|
)
|
||
|
);
|
||
|
$save_message = $('#et-ajax-saving');
|
||
|
}
|
||
|
|
||
|
// Safe Mode: Activate/Deactivate
|
||
|
$('body').on('click', '.et-safe-mode-indicator', function(e) {
|
||
|
e.preventDefault();
|
||
|
var $toggle = $(this);
|
||
|
toggleETSafeMode($toggle);
|
||
|
});
|
||
|
$('body').on('click', '.et_safe_mode_toggle .et_pb_yes_no_button', function(e) {
|
||
|
e.preventDefault();
|
||
|
var $toggle = $(this);
|
||
|
toggleETSafeMode($toggle);
|
||
|
});
|
||
|
$('body').on('click', '.et-core-safe-mode-block-modal .et-core-modal-action', function(e) {
|
||
|
e.preventDefault();
|
||
|
var $toggle = $(this);
|
||
|
toggleETSafeMode($toggle);
|
||
|
});
|
||
|
|
||
|
// Safe Mode: Interrupt Plugin/Theme Toggles
|
||
|
$('body.et-safe-mode-active').on('click', '.theme .activate', function(e) {
|
||
|
e.preventDefault();
|
||
|
preventActionWhenSafeModeActive();
|
||
|
});
|
||
|
$('body.et-safe-mode-active').on('click', '.plugins .activate a', function(e) {
|
||
|
e.preventDefault();
|
||
|
preventActionWhenSafeModeActive();
|
||
|
});
|
||
|
$('body.et-safe-mode-active').on('click', '.plugins .deactivate a', function(e) {
|
||
|
e.preventDefault();
|
||
|
preventActionWhenSafeModeActive();
|
||
|
});
|
||
|
$('body.et-safe-mode-active.plugins-php').on('click', '.page-title-action', function(e) {
|
||
|
e.preventDefault();
|
||
|
preventActionWhenSafeModeActive();
|
||
|
});
|
||
|
|
||
|
// Safe Mode: Close Interrupt
|
||
|
$('body').on('click', '>.et-core-safe-mode-block-modal .et-core-modal-close', function(e) {
|
||
|
e.preventDefault();
|
||
|
$('body>.et-core-safe-mode-block-modal').remove();
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Support Center :: Logs
|
||
|
*/
|
||
|
|
||
|
// Logs: Initialize CodeMirror Rendering of Log File
|
||
|
if (debugLogViewer && debugLogViewer.initialize && debugLogViewer.defaultSettings && debugLogViewer.defaultSettings.codemirror) {
|
||
|
|
||
|
// User ET CodeMirror theme
|
||
|
var configDebugLog = $.extend({}, debugLogViewer.defaultSettings.codemirror, {
|
||
|
indentUnit: 2,
|
||
|
tabSize: 2,
|
||
|
mode: 'nginx',
|
||
|
theme: 'et',
|
||
|
scrollbarStyle: 'native',
|
||
|
readOnly: true,
|
||
|
lineWrapping: true
|
||
|
});
|
||
|
|
||
|
if ($('#et_logs_display').length > 0) {
|
||
|
// Divi Theme
|
||
|
addLogViewerInstance(debugLogViewer, $('#et_logs_display'), configDebugLog);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Logs: Copy Full WP_DEBUG Log to Clipboard
|
||
|
$('.copy_debug_log').on('click', function() {
|
||
|
$('#et_logs_recent').trigger('select');
|
||
|
document.execCommand('copy');
|
||
|
confirmClipboardCopy();
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Support Center :: Divi Hosting Card
|
||
|
*/
|
||
|
|
||
|
// Dismiss Card from the Support Center
|
||
|
$('.card.has-dismiss-button').on('click', '.et-dismiss-button', function(e) {
|
||
|
const $toggle = $(this);
|
||
|
|
||
|
dismissCard($toggle);
|
||
|
});
|
||
|
|
||
|
// Initialize Tippy when it's available
|
||
|
if (typeof tippy !== 'undefined') {
|
||
|
tippy('[data-tippy-content]', {
|
||
|
arrow: tippy.roundArrow,
|
||
|
theme: 'et-tippy',
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
})(jQuery);
|