laipower/wp-content/plugins/easy-digital-downloads/assets/js/admin/settings/extension-manager/index.js

76 lines
2.0 KiB
JavaScript

/* global EDDExtensionManager, ajaxurl */
; ( function ( document, $ ) {
'use strict';
$( '.edd-extension-manager__action' ).on( 'click', function ( e ) {
e.preventDefault();
var $btn = $( this ),
action = $btn.attr( 'data-action' ),
plugin = $btn.attr( 'data-plugin' ),
type = $btn.attr( 'data-type' ),
ajaxAction = '';
if ( $btn.attr( 'disabled' ) ) {
return;
}
switch ( action ) {
case 'activate':
ajaxAction = 'edd_activate_extension';
$btn.text( EDDExtensionManager.activating );
break;
case 'install':
ajaxAction = 'edd_install_extension';
$btn.text( EDDExtensionManager.installing );
break;
default:
return;
}
$btn.removeClass( 'button-primary' ).attr( 'disabled', true ).addClass( 'updating-message' );
var data = {
action: ajaxAction,
nonce: EDDExtensionManager.extension_manager_nonce,
plugin: plugin,
type: type,
pass: $btn.attr( 'data-pass' ),
id: $btn.attr( 'data-id' ),
product: $btn.attr( 'data-product' ),
};
$.post( ajaxurl, data )
.done( function ( res ) {
console.log( res );
var thisStep = $btn.closest( '.edd-extension-manager__step' );
if ( res.success ) {
var nextStep = thisStep.next();
if ( nextStep.length ) {
thisStep.fadeOut();
nextStep.prepend( '<div class="notice inline-notice notice-success"><p>' + res.data.message + '</p></div>' );
nextStep.fadeIn();
}
} else {
thisStep.fadeOut();
var message = res.data.message;
/**
* The install class returns an array of error messages, and res.data.message will be undefined.
* In that case, we'll use the standard failure messages.
*/
if ( ! message ) {
if ( 'plugin' !== type ) {
message = EDDExtensionManager.extension_install_failed;
} else {
message = EDDExtensionManager.plugin_install_failed;
}
}
thisStep.after( '<div class="notice inline-notice notice-warning"><p>' + message + '</p></div>' );
}
} );
} );
} )( document, jQuery );