(function($){ AstraSitesInstallTheme = { /** * Init */ init: function() { this._auto_close_notice(); this._bind(); }, /** * Binds events for the Astra Sites. * * @since 1.3.2 * * @access private * @method _bind */ _bind: function() { $( document ).on( 'click', '.astra-sites-theme-not-installed', AstraSitesInstallTheme._install_and_activate ); $( document ).on( 'click', '.astra-sites-theme-installed-but-inactive', AstraSitesInstallTheme._activateTheme ); $( document ).on( 'wp-theme-install-success' , AstraSitesInstallTheme._activateTheme); }, /** * Close Getting Started Notice * * @param {object} event * @return void */ _auto_close_notice: function() { if( $( '.astra-sites-getting-started-btn' ).length ) { $.ajax({ url: AstraSitesInstallThemeVars.ajaxurl, type: 'POST', data: { 'action' : 'astra-sites-getting-started-notice', '_ajax_nonce' : AstraSitesInstallThemeVars._ajax_nonce, }, }) .done(function (result) { }); } }, /** * Activate Theme * * @since 1.3.2 */ _activateTheme: function( event, response ) { event.preventDefault(); $('#astra-theme-activation-nag a').addClass('processing'); if( response ) { $('#astra-theme-activation-nag a').text( AstraSitesInstallThemeVars.installed ); } else { $('#astra-theme-activation-nag a').text( AstraSitesInstallThemeVars.activating ); } // WordPress adds "Activate" button after waiting for 1000ms. So we will run our activation after that. setTimeout( function() { $.ajax({ url: AstraSitesInstallThemeVars.ajaxurl, type: 'POST', data: { 'action' : 'astra-sites-activate-theme', '_ajax_nonce' : AstraSitesInstallThemeVars._ajax_nonce, }, }) .done(function (result) { if( result.success ) { $('.astra-sites-theme-action-link').parent().html( AstraSitesInstallThemeVars.activated + ' 🎉' ); } }); }, 3000 ); }, /** * Install and activate * * @since 1.3.2 * * @param {object} event Current event. * @return void */ _install_and_activate: function(event ) { event.preventDefault(); var theme_slug = $(this).data('theme-slug') || ''; var btn = $( event.target ); if ( btn.hasClass( 'processing' ) ) { return; } btn.text( AstraSitesInstallThemeVars.installing ).addClass('processing'); if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) { wp.updates.requestFilesystemCredentials( event ); } wp.updates.installTheme( { slug: theme_slug }); } }; /** * Initialize */ $(function(){ AstraSitesInstallTheme.init(); }); })(jQuery);