(function( $, pluginsData ) {
'use strict';
var JetPluginsPage = {
init: function() {
var self = this;
$( document )
.on( 'click.JetPluginsPage', 'a[data-action="install"]', self.installPlugin )
.on( 'click.JetPluginsPage', 'a[data-action="activate"]', self.activatePlugin )
.on( 'click.JetPluginsPage', 'a[data-action="update"]', self.updatePlugin );
},
showError: function( $button, message ) {
$button.closest( '.jet-plugin' ).find( '.jet-plugin__errors' ).html( message );
},
installPlugin: function( event ) {
event.preventDefault();
var $this = $( this ),
plugin = $this.data( 'plugin' );
$this.html( pluginsData.installing );
$.ajax({
url: ajaxurl,
type: 'post',
dataType: 'json',
data: {
action: 'jet_core_install_plugin',
plugin: plugin
}
}).done( function( response ) {
if ( true === response.success ) {
$this.html( pluginsData.activate );
$this.data( 'activate' );
$this.attr( 'data-action', 'activate' );
$this.closest( '.jet-plugin' ).find( '.user-version b' ).html( response.data.version );
} else {
JetPluginsPage.showError( $this, response.data.errorMessage );
$this.html( pluginsData.failed );
}
});
},
activatePlugin: function( event ) {
event.preventDefault();
var $this = $( this ),
plugin = $this.data( 'plugin' );
$this.html( pluginsData.activating );
$.ajax({
url: ajaxurl,
type: 'post',
dataType: 'json',
data: {
action: 'jet_core_activate_plugin',
plugin: plugin
}
}).done( function( response ) {
if ( true === response.success ) {
$this.replaceWith( pluginsData.activated );
} else {
JetPluginsPage.showError( $this, response.data.errorMessage );
$this.html( pluginsData.failed );
}
});
},
updatePlugin: function( event ) {
event.preventDefault();
var $this = $( this ),
plugin = $this.data( 'plugin' );
$this.html( pluginsData.updating );
$.ajax({
url: ajaxurl,
type: 'post',
dataType: 'json',
data: {
action: 'jet_core_update_plugin',
plugin: plugin
}
}).done( function( response ) {
if ( true === response.success ) {
$this.closest( '.jet-plugin' ).find( '.user-version b' ).html( response.data.newVersion );
$this.replaceWith( pluginsData.updated );
} else {
JetPluginsPage.showError( $this, response.data.errorMessage );
$this.html( pluginsData.failed );
}
});
}
};
JetPluginsPage.init();
})( jQuery, window.JetPluginsData );