/** * MainWP 3rd-party API Manager JS. * * JS actions for the MainWP 3rd-party API Manager. * * @file This files handles all js actions for the MainWP 3rd-party API Manager. * @author MainWP. * @since 4.2.7.1 */ /* eslint complexity: ["error", 100] */ jQuery(function(){ /******************************************************** * Ajax Event Hooks. */ /** * CloudWays Ajax Hooks */ // Trigger action_backup. jQuery('.mainwp_3rd_party_api_cloudways_action_backup').on('click', function () { cloudways_action_backup(this); }); // Trigger action_backup. jQuery('#mainwp_3rd_party_api_cloudways_action_individual_create_backup').on('click', function () { cloudways_action_backup(this); }); // Trigger action_update_ids. jQuery('.mainwp_3rd_party_api_cloudways_action_update_ids').on('click', function () { cloudways_action_update_ids(this); }); //Trigger action_refresh_available_backups. jQuery('#mainwp_3rd_party_api_cloudways_action_refresh_available_backups').on('click', function () { cloudways_action_refresh_available_backups(this); }); // Trigger action_restore_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_cloudways_action_restore_backup', function () { cloudways_action_restore_backup(this); }); // Trigger action_delete_backup. This will delete the 24hr restore point allowing for a new restoration to be created. jQuery('#mainwp_3rd_party_api_cloudways_action_delete_backup').on('click', function () { cloudways_action_delete_backup(this); }); /** * Vultr Ajax Hooks */ // Trigger action_backup. jQuery('.mainwp_3rd_party_api_vultr_action_backup').on('click', function () { vultr_action_create_snapshot(this); }); // Trigger action_backup. jQuery('#mainwp_3rd_party_api_vultr_action_individual_create_backup').on('click', function () { vultr_action_create_snapshot(this); }); // Trigger action_update_ids. jQuery('.mainwp_3rd_party_api_vultr_action_update_ids').on('click', function () { vultr_action_update_ids(this); }); //Trigger action_refresh_available_backups. jQuery('#mainwp_3rd_party_api_vultr_action_refresh_available_backups').on('click', function () { vultr_action_refresh_available_backups(this); }); // Trigger action_restore_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_vultr_action_restore_backup', function () { vultr_action_restore_backup(this); }); // Trigger action_delete_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_vultr_action_delete_backup', function () { vultr_action_delete_backup(this); }); /** * GridPane Ajax Hooks */ // Trigger action_backup. jQuery('.mainwp_3rd_party_api_gridpane_action_backup').on('click', function () { gridpane_action_create_backup(this); }); // Trigger action_backup. jQuery('#mainwp_3rd_party_api_gridpane_action_individual_create_backup').on('click', function () { gridpane_action_create_backup(this); }); // Trigger action_update_ids. jQuery('.mainwp_3rd_party_api_gridpane_action_update_ids').on('click', function () { gridpane_action_update_ids(this); }); // Trigger action_refresh_available_backups. jQuery('#mainwp_3rd_party_api_gridpane_action_refresh_available_backups').on('click', function () { gridpane_action_refresh_available_backups(this); }); // Trigger action_restore_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_gridpane_action_restore_backup', function () { gridpane_action_restore_backup(this); }); // Trigger action_delete_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_gridpane_action_delete_backup', function () { gridpane_action_delete_backup(this); }); /** * Linode Ajax Hooks */ // Trigger action_backup. jQuery('.mainwp_3rd_party_api_linode_action_backup').on('click', function () { linode_action_create_backup(this); }); // Trigger action_backup. jQuery('#mainwp_3rd_party_api_linode_action_individual_create_backup').on('click', function () { linode_action_create_backup(this); }); //Trigger action_update_ids. jQuery('.mainwp_3rd_party_api_linode_action_update_ids').on('click', function () { linode_action_update_ids(this); }); // Trigger action_refresh_available_backups. jQuery('#mainwp_3rd_party_api_linode_action_refresh_available_backups').on('click', function () { linode_action_refresh_available_backups(this); }); // Trigger action_restore_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_linode_action_restore_backup', function () { linode_action_restore_backup(this); }); // Trigger action_delete_backup. jQuery('#mainwp_3rd_party_api_linode_action_cancel_backups').on('click', function () { let confirmMsg = __('Are you sure you want to Disable and Delete all existing backups from this Linode?'); mainwp_confirm(confirmMsg, function () { linode_action_cancel_backups(this); }); }); /** * digitalocean Ajax Hooks */ //Trigger action_update_ids. jQuery('.mainwp_3rd_party_api_digitalocean_action_update_ids').on('click', function () { digitalocean_action_update_ids(this); }); // Trigger action_create_backup. jQuery('.mainwp_3rd_party_api_digitalocean_action_backup').on('click', function () { digitalocean_action_create_backup(this); }); // Trigger action_individual_create_backup. jQuery('#mainwp_3rd_party_api_digitalocean_action_individual_create_backup').on('click', function () { digitalocean_action_create_backup(this); }); // Trigger action_refresh_available_backups. jQuery('#mainwp_3rd_party_api_digitalocean_action_refresh_available_backups').on('click', function () { digitalocean_action_refresh_available_backups(this); }); // Trigger action_delete_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_digitalocean_action_delete_backup', function () { digitalocean_action_delete_backup(this); }); // Trigger action_restore_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_digitalocean_action_restore_backup', function () { digitalocean_action_restore_backup(this); }); /** * CPanel Ajax Hooks */ // Trigger action_refresh_available_backups. jQuery('#mainwp_3rd_party_api_cpanel_action_refresh_available_backups').on('click', function () { cpanel_action_refresh_available_backups(this); }); // Trigger action_restore_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_cpanel_action_restore_backup', function () { let confirmMsg = __('Are you sure you want to Restore this backup?'); mainwp_confirm(confirmMsg, function () { cPanel_action_restore_backup(this); }); }); // Trigger action_restore_database_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_cpanel_action_restore_database_backup', function () { let confirmMsg = __('Are you sure you want to Restore this backup?'); let btObj = this; mainwp_confirm(confirmMsg, function () { cpanel_action_restore_database_backup(btObj); }); }); // Trigger action_restore_manual_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_cpanel_action_restore_manual_backup', function () { let confirmMsg = __('Are you sure you want to Restore this backup?'); mainwp_confirm(confirmMsg, function () { cpanel_action_restore_manual_backup(); }); }); // Trigger action_backup. jQuery('#mainwp_3rd_party_api_cpanel_action_individual_create_backup').on('click', function () { cpanel_action_create_backup(this); }); // Trigger action_create_wptk_backup. jQuery('#mainwp_3rd_party_api_cpanel_action_create_wptk_backup').on('click', function () { cpanel_action_create_wptk_backup(this); }); // Trigger action_backup for bulk backups. jQuery('.mainwp_3rd_party_api_cpanel_action_full_backup').on('click', function () { cpanel_action_create_full_backup(this); }); // Trigger action_database_backup. jQuery('#mainwp_3rd_party_api_cpanel_action_create_database_backup').on('click', function () { cpanel_action_create_database_backup(this); }); // Trigger action_backup for full backups. Database & Files. jQuery('#mainwp_3rd_party_api_cpanel_action_create_full_backup').on('click', function () { cpanel_action_create_full_backup(this); }); // Trigger action_restore_wptk_backup. jQuery('.mainwp_3rd_party_api_cpanel_action_restore_wptk_backup').on('click', function () { let confirmMsg = __('Are you sure you want to Restore this backup?'); mainwp_confirm(confirmMsg, function () { cpanel_action_restore_wptk_backup(this); }); }); // Trigger action_delete_wptk_backup. jQuery('.mainwp_3rd_party_api_cpanel_action_delete_wptk_backup').on('click', function () { let confirmMsg = __('Are you sure you want to Delete this backup?'); mainwp_confirm(confirmMsg, function () { cpanel_action_delete_wptk_backup(this); }); }); // Trigger action_download_wptk_backup jQuery('.mainwp_3rd_party_api_cpanel_action_download_wptk_backup').on('click', function () { cpanel_action_download_wptk_backup(); }); /** * Plesk Ajax Hooks */ // Trigger action_refresh_available_backups. jQuery('#mainwp_3rd_party_api_plesk_action_refresh_available_backups').on('click', function () { plesk_action_refresh_available_backups(this); }); //Trigger action_backup. jQuery('#mainwp_3rd_party_api_plesk_action_individual_create_backup').on('click', function () { plesk_action_create_backup(this); }); // Trigger action_backup. ( bulk ) jQuery('.mainwp_3rd_party_api_plesk_action_backup ').on('click', function () { plesk_action_create_backup(this); }); // Trigger action_restore_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_plesk_action_restore_backup', function () { let confirmMsg = __('Are you sure you want to Restore this backup?'); mainwp_confirm(confirmMsg, function () { plesk_action_restore_backup(); }); }); // Trigger action_delete_backup. jQuery(document).on('click', '.mainwp_3rd_party_api_plesk_action_delete_backup', function () { let confirmMsg = __('Are you sure you want to Delete this backup?'); mainwp_confirm(confirmMsg, function () { plesk_action_delete_backup(); }); }); /** * Kinsta Ajax Hooks */ // Trigger action_refresh_available_backups. jQuery('#mainwp_3rd_party_api_kinsta_action_refresh_available_backups').on('click', function () { kinsta_action_refresh_available_backups(this); }); //Trigger action_backup. jQuery('#mainwp_3rd_party_api_kinsta_action_individual_create_backup').on('click', function () { kinsta_action_create_backup(this); }); // Trigger Bulk action_create_backup. jQuery('.mainwp_3rd_party_api_kinsta_action_backup').on('click', function () { kinsta_action_create_backup(this); }); // Trigger action_delete_backup. jQuery('.mainwp_3rd_party_api_kinsta_action_delete_backup').on('click', function () { let confirmMsg = __('Are you sure you want to Delete this backup?'); let backupId = jQuery(this).attr('backup_id'); mainwp_confirm(confirmMsg, function () { kinsta_action_delete_backup(this, backupId); }); }); // Trigger action_restore_backup. jQuery('.mainwp_3rd_party_api_kinsta_action_restore_backup').on('click', function () { let confirmMsg = __('Are you sure you want to Restore this backup?'); let backupId = jQuery(this).attr('backup_id'); mainwp_confirm(confirmMsg, function () { kinsta_action_restore_backup(this, backupId); }); }); /** * Global Bulk Action: backup selected sites. */ // Trigger action_backup_selected_sites. jQuery('#action_backup_selected_sites').on('click', function () { action_backup_selected_sites(this); }); /******************************************************** * Fomantic-ui Tabs Event Hooks. */ /** * Activate Fomantic-ui tabs for the 3rd-party API Manager Settings page, * Settings > 3rd-Party API Manager. * * @url https://fomantic-ui.com/modules/tab.html#/usage */ jQuery('#3rd-party-api-manager .menu .item').tab(); /** * Activate Fomantic-ui tabs for the Individual cPanel Backups page, * ChildSite Overview > API Backups * * @url https://fomantic-ui.com/modules/tab.html#/usage */ jQuery('#mainwp_api_cpanel_backup_tabs .item').tab(); // Trigger action_check_tab. Handle the click event on the TAB Buttons. jQuery('#mainwp_api_cpanel_backup_tabs .item').on('click', function () { action_check_tab(); }); /** * Handle switching TAB Buttons. * Check if cPanel or Plesk is selected TAB when page loads & display the correct content. */ let ref_this = jQuery('#mainwp_api_cpanel_backup_tabs div.active'); if (ref_this.data('tab') === 'cpanel-native') { jQuery('#mainwp_3rd_party_api_cpanel_action_create_full_backup').show(); jQuery('#mainwp_3rd_party_api_cpanel_action_create_wptk_backup').hide(); } else if (ref_this.data('tab') === 'cpanel-wp-toolkit') { jQuery('#mainwp_3rd_party_api_cpanel_action_create_full_backup').hide(); jQuery('#mainwp_3rd_party_api_cpanel_action_create_wptk_backup').show(); } }); /******************************************************** * Invocable Functions. */ /** * Extension Overview Page: #action_backup_selected_sites. * * This function is called when the "Backup Selected Sites" button is clicked. * mainwp_api_backups_do_backups() is defined in assets/js/mainwp-api-backups.js. */ let action_backup_selected_sites = function (pObj) { mainwp_api_backups_do_backups(pObj); } /** * Handle switching TAB Action Buttons on Individual Cpanel Backups page. * Check if cPanel or Plesk is selected TAB when TAB is clicked & display the correct content. */ let action_check_tab = function () { let ref_this = jQuery('#mainwp_api_cpanel_backup_tabs div.active'); if (ref_this.data('tab') === 'cpanel-native') { jQuery('#mainwp_3rd_party_api_cpanel_action_create_full_backup').show(); jQuery('#mainwp_3rd_party_api_cpanel_action_create_wptk_backup').hide(); } else if (ref_this.data('tab') === 'cpanel-wp-toolkit') { jQuery('#mainwp_3rd_party_api_cpanel_action_create_full_backup').hide(); jQuery('#mainwp_3rd_party_api_cpanel_action_create_wptk_backup').show(); } } let module_api_backups_prepare_working_status = function(button){ jQuery(button).html(''); } /******************************************************** * Cloudways Functions. */ // Create Backup. let cloudways_action_backup = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let lastBackup = jQuery(pObj).closest('td').prev(); let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'cloudways_action_backup', website_id: websiteId, backup_api: 'cloudways' }); module_api_backups_prepare_working_status(button); jQuery(lastBackup).html('Requesting Backup...'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( 'A backup has been requested. Please allow some time for the backup to complete, then Refresh Available Backups.') ; setTimeout(function () { location.reload(); }, 5000); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while requesting your backup. Please check that your ID and API Key are correct.') ; setTimeout(function () { location.reload(); }, 5000); } }); }; // Assign Apps to Child Sites. let cloudways_action_update_ids = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let data = mainwp_secure_data({ action: 'cloudways_action_update_ids' }); module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { window.location.search += '&update=true'; } else { window.location.search += '&update=false'; } }); }; // Refresh Available Backup. let cloudways_action_refresh_available_backups = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); // Start button animation. jQuery(pObj).addClass('disabled loading'); // Prepare the data to send. // The "action" is the name of the action hook to trigger. // Anything else is data that we want to pass to the PHP function. let data = mainwp_secure_data({ action: 'cloudways_action_refresh_available_backups', website_id: websiteId, backup_api: 'cloudways' }); // Send a POST request to the ajaxurl (WordPress variable), using the data // we prepared above, and running the below function when we receive the // response. The last parameter tells jQuery to expect a JSON response jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( 'Available backups have been refreshed.' ) ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); setInterval('location.reload()', 7000); // Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( 'There was an issue while refreshing available backups.' ) ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }, 'json'); }; // Restore backups. let cloudways_action_restore_backup = function (pObj) { let button = jQuery(pObj); let websiteId = jQuery(pObj).attr('website_id'); let backupDate = jQuery(pObj).attr('backup_date'); let data = mainwp_secure_data({ action: 'cloudways_action_restore_backup', website_id: websiteId, backup_date: backupDate, backup_api: 'cloudways' }); // Start button animation. module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( 'Your application is in the process of restoring. This will take a few minuets...' ) ; // Stop button animation. jQuery(button).html(''); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( 'There was an issue while attempting to restore your application...' ) ; // Stop button animation. jQuery(button).html(''); } }); }; // Delete backups. let cloudways_action_delete_backup = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'cloudways_action_delete_backup', website_id: websiteId, backup_api: 'cloudways' }); // Start button animation. jQuery(button).find('i.loading').css({ 'display': 'block' }); jQuery(button).find('div').addClass('hidden'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( 'The local backups done before last restore have been deleted.' ) ; // Stop button animation. jQuery(button).find('i.loading').css({ 'display': 'none' }); jQuery(button).find('div').removeClass('hidden'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( 'There was an issue while deleting your backups.' ) ; // Stop button animation. jQuery(button).find('i.loading').css({ 'display': 'none' }); jQuery(button).find('div').removeClass('hidden'); } }); }; /******************************************************** * Vultr Functions. */ // Assign Instances to Child Sites. let vultr_action_update_ids = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let data = mainwp_secure_data({ action: 'vultr_action_update_ids' }); // Start button animation. jQuery(button).find('i.loading').css({ 'display': 'block' }); jQuery(button).find('div').addClass('hidden'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Backup Stats have been refreshed.') ; // Stop button animation. jQuery(button).find('i.loading').css({ 'display': 'none' }); jQuery(button).find('div').removeClass('hidden'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( 'There was an issue refreshing the Backup Stats.' ) ; // Stop button animation. jQuery(button).find('i.loading').css({ 'display': 'none' }); jQuery(button).find('div').removeClass('hidden'); } }); }; // Create Backup. let vultr_action_create_snapshot = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let lastBackup = jQuery(pObj).closest('td').prev(); let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'vultr_action_create_snapshot', website_id: websiteId, backup_api: 'vultr' }); module_api_backups_prepare_working_status(button); jQuery(lastBackup).html('Requesting Backup...'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('A backup has been requested.'); setTimeout(function () { location.reload(); }, 5000); } else { let err_message = '' !== response ? response : 'There was an issue while requesting your backup. Please check that your ID and API Key are correct.'; // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( err_message ); setTimeout(function () { location.reload(); }, 5000); } }); }; // Refresh Available Backup. let vultr_action_refresh_available_backups = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'vultr_action_refresh_available_backups', website_id: websiteId, backup_api: 'vultr' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Available backups have been refreshed.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); setInterval('location.reload()', 7000); // Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while refreshing available backups.' ) ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // Restore Backup. let vultr_action_restore_backup = function (pObj) { let button = jQuery(pObj); let websiteId = jQuery(pObj).attr('website_id'); let snapshotID = jQuery(pObj).attr('snapshot_id'); let data = mainwp_secure_data({ action: 'vultr_action_restore_backup', website_id: websiteId, backup_api: 'vultr', snapshot_id: snapshotID }); // Start button animation. module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Backup restoration process has begun. Please wait a few moments and then check the site.') ; // Stop button animation. jQuery(button).html(''); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while restoring your backup.') ; // Stop button animation. jQuery(button).html(''); } }); }; // Delete Backup. let vultr_action_delete_backup = function (pObj) { let button = jQuery(pObj); let websiteId = jQuery(pObj).attr('website_id'); let snapshotID = jQuery(pObj).attr('snapshot_id'); let data = mainwp_secure_data({ action: 'vultr_action_delete_backup', website_id: websiteId, backup_api: 'vultr', snapshot_id: snapshotID }); // Start button animation. module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The selected backup has been deleted.') ; // Stop button animation. jQuery(button).html(''); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while deleting the selected backup.') ; // Stop button animation. jQuery(button).html(''); } }); }; /******************************************************** * Gridpane Functions. */ // Assign Site ID's to Child Sites. let gridpane_action_update_ids = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let data = mainwp_secure_data({ action: 'gridpane_action_update_ids' }); module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { window.location.search += '&update=true'; } else { window.location.search += '&update=false'; } }); }; // Create Backup. let gridpane_action_create_backup = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let lastBackup = jQuery(pObj).closest('td').prev(); let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'gridpane_action_create_backup', website_id: websiteId, backup_api: 'gridpane' }); module_api_backups_prepare_working_status(button); jQuery(lastBackup).html('Requesting Backup...'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('A backup has been requested.') ; setTimeout(function () { location.reload(); }, 5000); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while requesting your backup. Please check that your ID and API Key are correct.' ) ; setTimeout(function () { location.reload(); }, 5000); } }); }; // Refresh Available Backup. let gridpane_action_refresh_available_backups = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'gridpane_action_refresh_available_backups', website_id: websiteId, backup_api: 'gridpane' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Available backups have been refreshed.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); setInterval('location.reload()', 7000); // Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while refreshing available backups.' ) ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // Restore Backup. let gridpane_action_restore_backup = function (pObj) { let button = jQuery(pObj); let websiteId = jQuery(pObj).attr('website_id'); let backupType = jQuery(pObj).attr('backup_type'); let backupName = jQuery(pObj).attr('backup_name'); let data = mainwp_secure_data({ action: 'gridpane_action_restore_backup', website_id: websiteId, backup_api: 'gridpane', backup_type: backupType, backup_name: backupName }); // Start button animation. module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Backup restoration has begun. Please wait a few moments and then check the site.') ; // Stop button animation. jQuery(button).html(''); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while restoring your backup.' ) ; // Stop button animation. jQuery(button).html(''); } }); }; // Delete Backup. let gridpane_action_delete_backup = function (pObj) { let button = jQuery(pObj); let websiteId = jQuery(pObj).attr('website_id'); let backupType = jQuery(pObj).attr('backup_type'); let backupName = jQuery(pObj).attr('backup_name'); let data = mainwp_secure_data({ action: 'gridpane_action_delete_backup', website_id: websiteId, backup_api: 'gridpane', backup_type: backupType, backup_name: backupName }); // Start button animation. module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The selected backup has been deleted.') ; // Stop button animation. jQuery(button).html(''); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while deleting the selected backup.') ; // Stop button animation. jQuery(button).html(''); } }); }; /******************************************************** * Linode Functions. */ // Assign Site ID's to Child Sites. let linode_action_update_ids = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let data = mainwp_secure_data({ action: 'linode_action_update_ids' }); module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { window.location.search += '&update=true'; } else { window.location.search += '&update=false'; } }); }; // Create Backup. let linode_action_create_backup = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let lastBackup = jQuery(pObj).closest('td').prev(); let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'linode_action_create_backup', website_id: websiteId, backup_api: 'linode' }); module_api_backups_prepare_working_status(button); jQuery(lastBackup).html('Requesting Backup...'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('A backup has been requested.') ; setTimeout(function () { location.reload(); }, 5000); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while requesting your backup. Please check that your backups are enabled & ID\'s are correct.') ; setTimeout(function () { location.reload(); }, 5000); } }); }; // Refresh Available Backup. let linode_action_refresh_available_backups = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'linode_action_refresh_available_backups', website_id: websiteId, backup_api: 'linode' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Available backups have been refreshed.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); setInterval('location.reload()', 7000); // Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while refreshing available backups.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // restore Backup. let linode_action_restore_backup = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let backupStatus = jQuery(pObj).closest('td').prev(); let websiteId = jQuery(pObj).attr('website_id'); let backupId = jQuery(pObj).attr('backup_id'); let data = mainwp_secure_data({ action: 'linode_action_restore_backup', website_id: websiteId, backup_api: 'linode', backup_id: backupId }); // Start button animation. module_api_backups_prepare_working_status(button); jQuery(backupStatus).html('Restoring Backup...'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The backup restoration was successful. Please check your Linode Server Status...') ; jQuery(backupStatus).html('Rebooting Server...'); setInterval('location.reload()', 7000);// Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while restoring your backup.') ; // Stop button animation. setInterval('location.reload()', 7000); // Using .reload() method. } }); }; // Cancel Backup. let linode_action_cancel_backups = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'linode_action_cancel_backups', website_id: websiteId, backup_api: 'linode' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The backups associated with this Linode have been removed.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while canceling your backup.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; /******************************************************** * Digital Ocean Functions. */ // Assign Site ID's to Child Sites. let digitalocean_action_update_ids = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let data = mainwp_secure_data({ action: 'digitalocean_action_update_ids' }); module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { window.location.search += '&update=true'; } else { window.location.search += '&update=false'; } }); }; // Create Backup. let digitalocean_action_create_backup = function (pObj) { jQuery(pObj).attr('disabled', 'true'); let button = jQuery(pObj).closest('td'); let lastBackup = jQuery(pObj).closest('td').prev(); let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'digitalocean_action_create_backup', website_id: websiteId, backup_api: 'digitalocean' }); module_api_backups_prepare_working_status(button); jQuery(lastBackup).html('Requesting Backup...'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('A backup has been requested.') ; setTimeout(function () { location.reload(); }, 5000); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while requesting your backup. Please check that your ID and API Key are correct.') ; setTimeout(function () { location.reload(); }, 5000); } }); }; // Refresh Available Backups. let digitalocean_action_refresh_available_backups = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'digitalocean_action_refresh_available_backups', website_id: websiteId, backup_api: 'digitalocean' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Available backups have been refreshed.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); setInterval('location.reload()', 7000);// Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while refreshing available backups.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // restore Backup. let digitalocean_action_restore_backup = function (pObj) { let button = jQuery(pObj); let lastBackup = jQuery(pObj).closest('td').prev(); let websiteId = jQuery(pObj).attr('website_id'); let snapshotId = jQuery(pObj).attr('snapshot_id'); let data = mainwp_secure_data({ action: 'digitalocean_action_restore_backup', website_id: websiteId, backup_api: 'digitalocean', snapshot_id: snapshotId }); // Start button animation. module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); jQuery(lastBackup).html(''); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Backup restoration has begun. Please wait a few moments and then check the site.') ; // Stop button animation. jQuery(button).html(''); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while restoring your backup.') ; // Stop button animation. jQuery(button).html(''); } }); }; // Delete Backup. let digitalocean_action_delete_backup = function (pObj) { let button = jQuery(pObj); let snapshotId = jQuery(pObj).attr('snapshot_id'); let data = mainwp_secure_data({ action: 'digitalocean_action_delete_backup', snapshot_id: snapshotId }); // Start button animation. module_api_backups_prepare_working_status(button); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The selected backup has been deleted.') ; // Stop button animation. jQuery(button).html(''); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while deleting the selected backup.') ; // Stop button animation. jQuery(button).html(''); } }); }; /******************************************************** * Cpanel Functions. */ let cpanel_action_create_wptk_backup = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'cpanel_action_create_wptk_backup', website_id: websiteId, backup_api: 'cpanel', backup: 'true' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( 'A backup has been requested. Please allow some time for the backup to complete, then Refresh Available Backups.'); // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( response ) ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // restore Backup. let cpanel_action_restore_wptk_backup = function (pObj) { // Disable link. jQuery(pObj).attr('disabled', 'true'); let backupName = jQuery('.mainwp_3rd_party_api_cpanel_action_restore_wptk_backup').attr('backup_name'); let websiteId = jQuery('.mainwp_3rd_party_api_cpanel_action_restore_wptk_backup').attr('website_id'); let data = mainwp_secure_data({ action: 'cpanel_action_restore_wptk_backup', website_id: websiteId, backup_api: 'cpanel', backup_name: backupName, }); // Start button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_wptk_backup').addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The backup restoration process has finished. Please wait a few moments and then check the site.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_wptk_backup').removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while restoring your backup.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_wptk_backup').removeClass('disabled loading'); } }); }; // Delete Backup. let cpanel_action_delete_wptk_backup = function (pObj) { // Disable link. jQuery(pObj).attr('disabled', 'true'); let backupName = jQuery('.mainwp_3rd_party_api_cpanel_action_delete_wptk_backup').attr('backup_name'); let websiteId = jQuery('.mainwp_3rd_party_api_cpanel_action_delete_wptk_backup').attr('website_id'); let data = mainwp_secure_data({ action: 'cpanel_action_delete_wptk_backup', website_id: websiteId, backup_api: 'cpanel', backup_name: backupName, }); // Start button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_delete_wptk_backup').addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The selected backup has been deleted.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_delete_wptk_backup').removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while deleting your backup.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_delete_wptk_backup').removeClass('disabled loading'); } }); }; // Download Backup. let cpanel_action_download_wptk_backup = function () { let href = jQuery('.mainwp_3rd_party_api_cpanel_action_download_wptk_backup').attr('href'); window.open(href, '_blank'); }; let cpanel_action_create_backup = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'cpanel_action_create_manual_backup', website_id: websiteId, backup_api: 'cpanel' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('A backup has been requested.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( response ) ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // Refresh Available Backups. let cpanel_action_refresh_available_backups = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'cpanel_action_refresh_available_backups', website_id: websiteId, backup_api: 'cPanel' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Available backups have been refreshed.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); setInterval('location.reload()', 7000); // Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while refreshing available backups.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // restore Backup. let cPanel_action_restore_backup = function (pObj) { // Disable link. jQuery(pObj).attr('disabled', 'true'); let websiteId = jQuery('#cpanel_automatic_backup_button').attr('website_id'); let backupID = jQuery('#cpanel_automatic_backup_button').attr('backup_name'); let backupPath = jQuery('#cpanel_automatic_backup_button').attr('backup_path'); let data = mainwp_secure_data({ action: 'cpanel_action_restore_backup', website_id: websiteId, backup_api: 'cpanel', backup_id: backupID, backup_path: backupPath }); // Start button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_backup button').addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The backup restoration process has finished. Please wait a few moments and then check the site.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_backup button').removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while restoring your backup.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_backup button').removeClass('disabled loading'); } }); }; // restore Backup. let cpanel_action_restore_database_backup = function (btObj) { let websiteId = jQuery(btObj).attr('website_id'); let backupID = jQuery(btObj).attr('backup_name'); let backupPath = jQuery(btObj).attr('backup_path'); let data = mainwp_secure_data({ action: 'cpanel_action_restore_database_backup', website_id: websiteId, backup_api: 'cpanel', backup_id: backupID, backup_path: backupPath }); // Start button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_database_backup button').addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The backup restoration process has finished. Please wait a few moments and then check the site.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_database_backup button').removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while restoring your backup.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_database_backup button').removeClass('disabled loading'); } }); }; // restore Backup. let cpanel_action_restore_manual_backup = function () { let websiteId = jQuery('#cpanel_automatic_backup_button').attr('website_id'); let backupID = jQuery('#database_backup_button').attr('backup_name'); let backupPath = jQuery('#database_backup_button').attr('backup_path'); let data = mainwp_secure_data({ action: 'cpanel_action_restore_manual_backup', website_id: websiteId, backup_api: 'cpanel', backup_id: backupID, backup_path: backupPath }); // Start button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_manual_backup button').addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The backup restoration process has finished. Please wait a few moments and then check the site.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_manual_backup button').removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while restoring your backup.') ; // Stop button animation. ( Using class so ALL buttons are animated not just the one clicked ). jQuery('.mainwp_3rd_party_api_cpanel_action_restore_database_backup button').removeClass('disabled loading'); } }); }; let cpanel_action_create_database_backup = function (pObj) { // Grab the website ID. let websiteId = jQuery(pObj).attr('website_id'); // Build the data object. let data = mainwp_secure_data({ action: 'cpanel_action_create_database_backup', website_id: websiteId, }); // Start button animation. jQuery(pObj).addClass('disabled loading'); // Send the data to the server. jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); // Check & return the response. if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The current database backup has finished. Please wait a few moments and then Refresh Available Backups.') ; // Start button animation. jQuery(pObj).removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while creating your backup.') ; // Start button animation. jQuery(pObj).removeClass('disabled loading'); } }); } let cpanel_action_create_full_backup = function (pObj) { // Grab the website ID. let websiteId = jQuery(pObj).attr('website_id'); // Build the data object. let data = mainwp_secure_data({ action: 'cpanel_action_create_full_backup', website_id: websiteId, backup_api: 'cpanel', backup: 'true' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); // Send the data to the server. jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); // Check & return the response. if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The current File & Database backup has finished. Please wait a few moments and then Refresh Available Backups.') ; // Start button animation. jQuery(pObj).removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while creating your backups.') ; // Start button animation. jQuery(pObj).removeClass('disabled loading'); } }); } /******************************************************** * Plesk Functions. */ // Refresh Available Backups. let plesk_action_refresh_available_backups = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'plesk_action_refresh_available_backups', website_id: websiteId, backup_api: 'Plesk' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Available backups have been refreshed.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); setInterval('location.reload()', 7000);// Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while refreshing available backups.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; let plesk_action_create_backup = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'plesk_action_create_backup', website_id: websiteId, backup_api: 'plesk' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('A backup has been requested.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( response ) ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // Restore backups. let plesk_action_restore_backup = function () { let button = jQuery('.mainwp_3rd_party_api_plesk_action_restore_backup').closest('td'); let installationId = jQuery('.mainwp_3rd_party_api_plesk_action_restore_backup').attr('installation_id'); let backupName = jQuery('.mainwp_3rd_party_api_plesk_action_restore_backup').attr('backup_name'); let websiteId = jQuery('.mainwp_3rd_party_api_plesk_action_restore_backup').attr('website_id'); let data = mainwp_secure_data({ action: 'plesk_action_restore_backup', installation_id: installationId, backup_name: backupName, website_id: websiteId, backup_api: 'plesk' }); // Start button animation. jQuery(button).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Your application is in the process of restoring. This will take a few minuets...') ; // Stop button animation. jQuery(button).removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while attempting to restore your application...') ; // Stop button animation. jQuery(button).removeClass('disabled loading'); } }); }; // Delete backups. let plesk_action_delete_backup = function () { jQuery('.mainwp_3rd_party_api_plesk_action_delete_backup').attr('disabled', 'true'); let button = jQuery('.mainwp_3rd_party_api_plesk_action_delete_backup').closest('td'); let installationId = jQuery('.mainwp_3rd_party_api_plesk_action_delete_backup').attr('installation_id'); let backupName = jQuery('.mainwp_3rd_party_api_plesk_action_delete_backup').attr('backup_name'); let websiteId = jQuery('.mainwp_3rd_party_api_plesk_action_delete_backup').attr('website_id'); let data = mainwp_secure_data({ action: 'plesk_action_delete_backup', installation_id: installationId, backup_name: backupName, website_id: websiteId, backup_api: 'plesk' }); // Start button animation. jQuery(button).find('i.loading').css({ 'display': 'block' }); jQuery(button).find('div').addClass('hidden'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The selected backup has been deleted.') ; setInterval('location.reload()', 5000); // Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while deleting your backup.') ; setInterval('location.reload()', 5000); // Using .reload() method. } }); }; /******************************************************** * Kinsta Functions. */ // Refresh Available Backups. let kinsta_action_refresh_available_backups = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'kinsta_action_refresh_available_backups', website_id: websiteId, backup_api: 'Kinsta' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Available backups have been refreshed.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); setInterval('location.reload()', 7000);// Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while refreshing available backups.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // Create Manual Backup. let kinsta_action_create_backup = function (pObj) { let websiteId = jQuery(pObj).attr('website_id'); let data = mainwp_secure_data({ action: 'kinsta_action_create_backup', website_id: websiteId, backup_api: 'kinsta' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('A backup has been requested.') ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html( response ) ; // Stop button animation. jQuery(pObj).removeClass('disabled loading'); } }); }; // Delete Manual Backup. let kinsta_action_delete_backup = function (pObj, backupId) { let websiteId = jQuery('.mainwp_3rd_party_api_kinsta_action_delete_backup ').attr('website_id'); console.log(websiteId); let data = mainwp_secure_data({ action: 'kinsta_action_delete_backup', backup_id: backupId, website_id: websiteId, backup_api: 'kinsta' }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); console.log(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('The selected backup has been deleted.') ; setInterval('location.reload()', 5000); // Using .reload() method. } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while deleting your backup.') ; setInterval('location.reload()', 5000); // Using .reload() method. } }); }; // Delete Manual Backup. let kinsta_action_restore_backup = function (pObj, backupId) { let websiteId = jQuery('.mainwp_3rd_party_api_kinsta_action_restore_backup').attr('website_id'); let data = mainwp_secure_data({ action: 'kinsta_action_restore_backup', backup_id: backupId, backup_api: 'kinsta', website_id: websiteId }); // Start button animation. jQuery(pObj).addClass('disabled loading'); jQuery.post(ajaxurl, data, function (response) { response = jQuery.trim(response); if (response === 'true') { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('green').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('Your application is in the process of restoring. This will take a few minuets...') ; // Stop button animation. jQuery(button).removeClass('disabled loading'); } else { // Show message. jQuery('#mainwp-api-backups-message-zone').addClass('red').show(); jQuery('#mainwp-api-backups-message-zone .content .message') .html('There was an issue while attempting to restore your application...') ; // Stop button animation. jQuery(button).removeClass('disabled loading'); } }); };