Add massive collection of CSS, JavaScript and theme assets that were previously excluded: **CSS Files (681 total):** - HVAC plugin-specific styles (hvac-*.css): 34 files including dashboard, certificates, registration, mobile nav, accessibility fixes, animations, and welcome popup - Theme framework files (Astra, builder systems, layouts): 200+ files - Plugin compatibility styles (WooCommerce, WPForms, Elementor, Contact Form 7): 150+ files - WordPress core and editor styles: 50+ files - Responsive and RTL language support: 200+ files **JavaScript Files (400+ total):** - HVAC plugin functionality (hvac-*.js): 27 files including menu systems, dashboard enhancements, profile sharing, mobile responsive features, accessibility, and animations - Framework and library files: jQuery plugins, GSAP, AOS, Swiper, Chart.js, Lottie, Isotope - Plugin compatibility scripts: WPForms, WooCommerce, Elementor, Contact Form 7, LifterLMS - WordPress core functionality: customizer, admin, block editor compatibility - Third-party integrations: Stripe, SMTP, analytics, search functionality **Assets:** - Certificate background images and logos - Comprehensive theme styling infrastructure - Mobile-responsive design systems - Cross-browser compatibility assets - Performance-optimized minified versions **Updated .gitignore:** - Fixed asset directory whitelisting patterns to properly include CSS/JS/images - Added proper directory structure recognition (!/assets/css/, !/assets/js/, etc.) - Maintains security by excluding sensitive files while including essential assets This commit provides the complete frontend infrastructure needed for: - Full theme functionality and styling - Plugin feature implementations - Mobile responsiveness and accessibility - Cross-browser compatibility - Performance optimization - Developer workflow support
		
			
				
	
	
		
			2355 lines
		
	
	
	
		
			62 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			2355 lines
		
	
	
	
		
			62 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * AJAX Request Queue
 | |
|  *
 | |
|  * - add()
 | |
|  * - remove()
 | |
|  * - run()
 | |
|  * - stop()
 | |
|  *
 | |
|  * @since 1.0.0
 | |
|  */
 | |
| 
 | |
| var AstraSitesAjaxQueue = ( function () {
 | |
| 	var requests = [];
 | |
| 
 | |
| 	return {
 | |
| 		/**
 | |
| 		 * Add AJAX request
 | |
| 		 *
 | |
| 		 * @since 1.0.0
 | |
| 		 */
 | |
| 		add: function ( opt ) {
 | |
| 			requests.push( opt );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Remove AJAX request
 | |
| 		 *
 | |
| 		 * @since 1.0.0
 | |
| 		 */
 | |
| 		remove: function ( opt ) {
 | |
| 			if ( jQuery.inArray( opt, requests ) > -1 )
 | |
| 				requests.splice( $.inArray( opt, requests ), 1 );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Run / Process AJAX request
 | |
| 		 *
 | |
| 		 * @since 1.0.0
 | |
| 		 */
 | |
| 		run: function () {
 | |
| 			var self = this,
 | |
| 				oriSuc;
 | |
| 
 | |
| 			if ( requests.length ) {
 | |
| 				oriSuc = requests[ 0 ].complete;
 | |
| 
 | |
| 				requests[ 0 ].complete = function () {
 | |
| 					if ( typeof oriSuc === 'function' ) oriSuc();
 | |
| 					requests.shift();
 | |
| 					self.run.apply( self, [] );
 | |
| 				};
 | |
| 
 | |
| 				jQuery.ajax( requests[ 0 ] );
 | |
| 			} else {
 | |
| 				self.tid = setTimeout( function () {
 | |
| 					self.run.apply( self, [] );
 | |
| 				}, 1000 );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Stop AJAX request
 | |
| 		 *
 | |
| 		 * @since 1.0.0
 | |
| 		 */
 | |
| 		stop: function () {
 | |
| 			requests = [];
 | |
| 			clearTimeout( this.tid );
 | |
| 		},
 | |
| 	};
 | |
| } )();
 | |
| 
 | |
| ( function ( $ ) {
 | |
| 	$elscope = {};
 | |
| 
 | |
| 	$.fn.isInViewport = function () {
 | |
| 		// If not have the element then return false!
 | |
| 		if ( ! $( this ).length ) {
 | |
| 			return false;
 | |
| 		}
 | |
| 
 | |
| 		var elementTop = $( this ).offset().top;
 | |
| 		var elementBottom = elementTop + $( this ).outerHeight();
 | |
| 		var viewportTop = $( window ).scrollTop();
 | |
| 		var viewportBottom = viewportTop + $( window ).height();
 | |
| 
 | |
| 		return elementBottom > viewportTop && elementTop < viewportBottom;
 | |
| 	};
 | |
| 
 | |
| 	AstraElementorSitesAdmin = {
 | |
| 		visited_pages: [],
 | |
| 		reset_remaining_posts: 0,
 | |
| 		site_imported_data: null,
 | |
| 		backup_taken: false,
 | |
| 		templateData: {},
 | |
| 		insertData: {},
 | |
| 		log_file: '',
 | |
| 		pages_list: '',
 | |
| 		insertActionFlag: false,
 | |
| 		page_id: '',
 | |
| 		site_id: '',
 | |
| 		block_id: '',
 | |
| 		requiredPlugins: [],
 | |
| 		canImport: false,
 | |
| 		canInsert: false,
 | |
| 		type: 'pages',
 | |
| 		action: '',
 | |
| 		masonryObj: [],
 | |
| 		index: 0,
 | |
| 		blockCategory: '',
 | |
| 		blockColor: '',
 | |
| 		processing: false,
 | |
| 		siteType: '',
 | |
| 		page: 1,
 | |
| 		per_page: 20,
 | |
| 
 | |
| 		init: function () {
 | |
| 			this._bind();
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Binds events for the Astra Sites.
 | |
| 		 *
 | |
| 		 * @since 1.0.0
 | |
| 		 * @access private
 | |
| 		 * @method _bind
 | |
| 		 */
 | |
| 		_bind: function () {
 | |
| 			if ( elementorCommon ) {
 | |
| 				let add_section_tmpl = $( '#tmpl-elementor-add-section' );
 | |
| 
 | |
| 				if ( add_section_tmpl.length > 0 ) {
 | |
| 					let action_for_add_section = add_section_tmpl.text();
 | |
| 					let white_label_class = '';
 | |
| 					let stylesheet = '';
 | |
| 					if ( astraElementorSites.isWhiteLabeled ) {
 | |
| 						white_label_class = ' ast-elementor-white-label';
 | |
| 						stylesheet =
 | |
| 							'<style type="">.elementor-add-ast-site-button.ast-elementor-white-label .eicon-folder:before {content: \'' +
 | |
| 							astraElementorSites.plugin_name[ 0 ] +
 | |
| 							"';}</style>";
 | |
| 					}
 | |
| 
 | |
| 					action_for_add_section = action_for_add_section.replace(
 | |
| 						'<div class="elementor-add-section-drag-title',
 | |
| 						stylesheet +
 | |
| 							'<div class="elementor-add-section-area-button elementor-add-ast-site-button ' +
 | |
| 							white_label_class +
 | |
| 							'" title="' +
 | |
| 							astraElementorSites.plugin_name +
 | |
| 							'"> <i class="eicon-folder"></i> </div><div class="elementor-add-section-drag-title'
 | |
| 					);
 | |
| 
 | |
| 					add_section_tmpl.text( action_for_add_section );
 | |
| 
 | |
| 					elementor.on( 'preview:loaded', function () {
 | |
| 						let base_skeleton = wp.template(
 | |
| 							'ast-template-base-skeleton'
 | |
| 						);
 | |
| 						let header_template = $(
 | |
| 							'#tmpl-ast-template-modal__header'
 | |
| 						).text();
 | |
| 
 | |
| 						if ( $( '#ast-sites-modal' ).length == 0 ) {
 | |
| 							$( 'body' ).append( base_skeleton() );
 | |
| 							$elscope = $( '#ast-sites-modal' );
 | |
| 							$elscope
 | |
| 								.find( '.astra-sites-content-wrap' )
 | |
| 								.before( header_template );
 | |
| 						}
 | |
| 
 | |
| 						AstraElementorSitesAdmin._populate_color_filters();
 | |
| 
 | |
| 						$elscope.find( '.astra-blocks-category' ).select2();
 | |
| 
 | |
| 						$elscope
 | |
| 							.find( '.astra-blocks-category' )
 | |
| 							.on(
 | |
| 								'select2:select',
 | |
| 								AstraElementorSitesAdmin._categoryChange
 | |
| 							);
 | |
| 						$elscope
 | |
| 							.find(
 | |
| 								'#elementor-template-block-color-filter select'
 | |
| 							)
 | |
| 							.on(
 | |
| 								'change',
 | |
| 								AstraElementorSitesAdmin._blockColorChange
 | |
| 							);
 | |
| 
 | |
| 						$( elementor.$previewContents[ 0 ].body ).on(
 | |
| 							'click',
 | |
| 							'.elementor-add-ast-site-button',
 | |
| 							AstraElementorSitesAdmin._open
 | |
| 						);
 | |
| 
 | |
| 						// Click events.
 | |
| 						$( 'body' ).on(
 | |
| 							'click',
 | |
| 							'.ast-sites-modal__header__close',
 | |
| 							AstraElementorSitesAdmin._close
 | |
| 						);
 | |
| 						$( 'body' ).on(
 | |
| 							'click',
 | |
| 							'#ast-sites-modal .elementor-template-library-menu-item',
 | |
| 							AstraElementorSitesAdmin._libraryClick
 | |
| 						);
 | |
| 						$( 'body' ).on(
 | |
| 							'click',
 | |
| 							'#ast-sites-modal .theme-screenshot',
 | |
| 							AstraElementorSitesAdmin._preview
 | |
| 						);
 | |
| 						$( 'body' ).on(
 | |
| 							'click',
 | |
| 							'#ast-sites-modal .back-to-layout',
 | |
| 							AstraElementorSitesAdmin._goBack
 | |
| 						);
 | |
| 						$( 'body' ).on(
 | |
| 							'click',
 | |
| 							AstraElementorSitesAdmin._closeTooltip
 | |
| 						);
 | |
| 
 | |
| 						$( document ).on(
 | |
| 							'click',
 | |
| 							'#ast-sites-modal .ast-library-template-insert',
 | |
| 							AstraElementorSitesAdmin._insert
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'click',
 | |
| 							'.ast-import-elementor-template',
 | |
| 							AstraElementorSitesAdmin._importTemplate
 | |
| 						);
 | |
| 						$( 'body' ).on(
 | |
| 							'click',
 | |
| 							'#ast-sites-modal .astra-sites-tooltip-icon',
 | |
| 							AstraElementorSitesAdmin._toggleTooltip
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'click',
 | |
| 							'.elementor-template-library-menu-item',
 | |
| 							AstraElementorSitesAdmin._toggle
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'click',
 | |
| 							'#ast-sites-modal .astra-sites__sync-wrap',
 | |
| 							AstraElementorSitesAdmin._sync
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'click',
 | |
| 							'#ast-sites-modal .ast-sites-modal__header__logo, #ast-sites-modal .back-to-layout-button',
 | |
| 							AstraElementorSitesAdmin._home
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'click',
 | |
| 							'#ast-sites-modal .notice-dismiss',
 | |
| 							AstraElementorSitesAdmin._dismiss
 | |
| 						);
 | |
| 
 | |
| 						// Other events.
 | |
| 						$elscope
 | |
| 							.find( '.astra-sites-content-wrap' )
 | |
| 							.scroll(
 | |
| 								AstraElementorSitesAdmin._loadLargeImages
 | |
| 							);
 | |
| 						$( document ).on(
 | |
| 							'keyup input',
 | |
| 							'#ast-sites-modal #wp-filter-search-input',
 | |
| 							AstraElementorSitesAdmin._search
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'change',
 | |
| 							'#ast-sites-modal .elementor-template-library-order-input',
 | |
| 							AstraElementorSitesAdmin._changeType
 | |
| 						);
 | |
| 
 | |
| 						// Triggers.
 | |
| 						$( document ).on(
 | |
| 							'astra-sites__elementor-open-after',
 | |
| 							AstraElementorSitesAdmin._initSites
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'astra-sites__elementor-open-before',
 | |
| 							AstraElementorSitesAdmin._beforeOpen
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'astra-sites__elementor-plugin-check',
 | |
| 							AstraElementorSitesAdmin._pluginCheck
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'astra-sites__elementor-close-before',
 | |
| 							AstraElementorSitesAdmin._beforeClose
 | |
| 						);
 | |
| 
 | |
| 						$( document ).on(
 | |
| 							'astra-sites__elementor-do-step-1',
 | |
| 							AstraElementorSitesAdmin._step1
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'astra-sites__elementor-do-step-2',
 | |
| 							AstraElementorSitesAdmin._step2
 | |
| 						);
 | |
| 
 | |
| 						$( document ).on(
 | |
| 							'astra-sites__elementor-goback-step-1',
 | |
| 							AstraElementorSitesAdmin._goStep1
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'astra-sites__elementor-goback-step-2',
 | |
| 							AstraElementorSitesAdmin._goStep2
 | |
| 						);
 | |
| 
 | |
| 						// Plugin install & activate.
 | |
| 						$( document ).on(
 | |
| 							'wp-plugin-installing',
 | |
| 							AstraElementorSitesAdmin._pluginInstalling
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'wp-plugin-install-error',
 | |
| 							AstraElementorSitesAdmin._installError
 | |
| 						);
 | |
| 						$( document ).on(
 | |
| 							'wp-plugin-install-success',
 | |
| 							AstraElementorSitesAdmin._installSuccess
 | |
| 						);
 | |
| 
 | |
| 						//open modal on reload after required plugins activated
 | |
| 						AstraElementorSitesAdmin.insertBlockOnRefresh();
 | |
| 					} );
 | |
| 				}
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		insertBlockOnRefresh() {
 | |
| 			const urlObj = new URL( window.location.href );
 | |
| 			const remoteST = urlObj.searchParams.get( 'remoteST' );
 | |
| 			// Get the value of the "blockID" parameter
 | |
| 			const blockID = urlObj.searchParams.get( 'blockID' );
 | |
| 			const type =
 | |
| 				urlObj.searchParams.get( 'type' ) === 'blocks'
 | |
| 					? 'astra-blocks'
 | |
| 					: 'site-pages';
 | |
| 
 | |
| 			if ( remoteST && blockID && type ) {
 | |
| 				const data = astraElementorSites[ 'last_viewed_block_data' ];
 | |
| 				const templateModel = new Backbone.Model( {
 | |
| 					getTitle() {
 | |
| 						return data?.title;
 | |
| 					},
 | |
| 				} );
 | |
| 				this.requestInsert(
 | |
| 					blockID,
 | |
| 					type,
 | |
| 					templateModel,
 | |
| 					this.afterInsert,
 | |
| 					this.beforeInsert,
 | |
| 					this.failedCallback
 | |
| 				);
 | |
| 				this.removeAddedParams();
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_populate_color_filters: function () {
 | |
| 			if ( ! Object.keys( astraElementorSites.astra_blocks ).length ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			let template = wp.template( 'ast-template-block-color-filters' );
 | |
| 
 | |
| 			var colorFilters = [];
 | |
| 
 | |
| 			for ( block_id in astraElementorSites.astra_blocks ) {
 | |
| 				if (
 | |
| 					astraElementorSites.astra_blocks[ block_id ][ 'filter' ] &&
 | |
| 					! colorFilters.includes(
 | |
| 						astraElementorSites.astra_blocks[ block_id ][ 'filter' ]
 | |
| 					)
 | |
| 				) {
 | |
| 					colorFilters.push(
 | |
| 						astraElementorSites.astra_blocks[ block_id ][ 'filter' ]
 | |
| 					);
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			if ( colorFilters.length <= 1 ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			$( '#elementor-template-block-color-filter' )
 | |
| 				.show()
 | |
| 				.html( template( colorFilters ) );
 | |
| 		},
 | |
| 
 | |
| 		_paginateBlocks: function () {
 | |
| 			if ( AstraElementorSitesAdmin.type == 'blocks' ) {
 | |
| 				if (
 | |
| 					undefined !=
 | |
| 					$elscope
 | |
| 						.find( '.astra-sites-library-template:last' )
 | |
| 						.offset()
 | |
| 				) {
 | |
| 					if (
 | |
| 						$( '.dialog-widget-content' ).scrollTop() + 600 >=
 | |
| 						$elscope
 | |
| 							.find( '.astra-sites-library-template:last' )
 | |
| 							.offset().top
 | |
| 					) {
 | |
| 						AstraElementorSitesAdmin.page =
 | |
| 							AstraElementorSitesAdmin.page + 1;
 | |
| 						// Set listing HTML.
 | |
| 						AstraElementorSitesAdmin._appendPaginationBlocks(
 | |
| 							astraElementorSites.astra_blocks
 | |
| 						);
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_changeType: function () {
 | |
| 			AstraElementorSitesAdmin.siteType = $( this ).val();
 | |
| 			$elscope.find( '#wp-filter-search-input' ).trigger( 'keyup' );
 | |
| 		},
 | |
| 
 | |
| 		_categoryChange: function ( event ) {
 | |
| 			AstraElementorSitesAdmin.blockCategory = $( this ).val();
 | |
| 			$elscope.find( '#wp-filter-search-input' ).trigger( 'keyup' );
 | |
| 		},
 | |
| 
 | |
| 		_blockColorChange: function ( event ) {
 | |
| 			AstraElementorSitesAdmin.blockColor = $( this ).val();
 | |
| 			$elscope.find( '#wp-filter-search-input' ).trigger( 'keyup' );
 | |
| 		},
 | |
| 
 | |
| 		_dismiss: function () {
 | |
| 			$( this )
 | |
| 				.closest( '.ast-sites-floating-notice-wrap' )
 | |
| 				.removeClass( 'slide-in' );
 | |
| 			$( this )
 | |
| 				.closest( '.ast-sites-floating-notice-wrap' )
 | |
| 				.addClass( 'slide-out' );
 | |
| 
 | |
| 			setTimeout( function () {
 | |
| 				$( this )
 | |
| 					.closest( '.ast-sites-floating-notice-wrap' )
 | |
| 					.removeClass( 'slide-out' );
 | |
| 			}, 200 );
 | |
| 
 | |
| 			if (
 | |
| 				$( this )
 | |
| 					.closest( '.ast-sites-floating-notice-wrap' )
 | |
| 					.hasClass( 'refreshed-notice' )
 | |
| 			) {
 | |
| 				$.ajax( {
 | |
| 					url: astraElementorSites.ajaxurl,
 | |
| 					type: 'POST',
 | |
| 					data: {
 | |
| 						action: 'astra-sites-update-library-complete',
 | |
| 						_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 					},
 | |
| 				} ).done( function ( response ) {
 | |
| 					$( '#ast-sites-floating-notice-wrap-id' ).toggle();
 | |
| 				} );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_done: function ( data ) {
 | |
| 			console.groupEnd( 'Process Done.' );
 | |
| 
 | |
| 			var str =
 | |
| 				AstraElementorSitesAdmin.type == 'pages'
 | |
| 					? astraElementorSites.template
 | |
| 					: astraElementorSites.block;
 | |
| 			$elscope
 | |
| 				.find( '.ast-import-elementor-template' )
 | |
| 				.removeClass( 'installing' );
 | |
| 			$elscope
 | |
| 				.find( '.ast-import-elementor-template' )
 | |
| 				.attr( 'data-demo-link', data.data.link );
 | |
| 			setTimeout( function () {
 | |
| 				$elscope
 | |
| 					.find( '.ast-import-elementor-template' )
 | |
| 					.text( 'View Saved ' + str );
 | |
| 				$elscope
 | |
| 					.find( '.ast-import-elementor-template' )
 | |
| 					.addClass( 'action-done' );
 | |
| 			}, 200 );
 | |
| 		},
 | |
| 
 | |
| 		_beforeClose: function () {
 | |
| 			if ( AstraElementorSitesAdmin.action == 'insert' ) {
 | |
| 				$elscope
 | |
| 					.find( '.ast-library-template-insert' )
 | |
| 					.removeClass( 'installing' );
 | |
| 				$elscope
 | |
| 					.find( '.ast-library-template-insert' )
 | |
| 					.text( 'Imported' );
 | |
| 				$elscope
 | |
| 					.find( '.ast-library-template-insert' )
 | |
| 					.addClass( 'action-done' );
 | |
| 
 | |
| 				if (
 | |
| 					$elscope
 | |
| 						.find( '.ast-sites-floating-notice-wrap' )
 | |
| 						.hasClass( 'slide-in' )
 | |
| 				) {
 | |
| 					$elscope
 | |
| 						.find( '.ast-sites-floating-notice-wrap' )
 | |
| 						.removeClass( 'slide-in' );
 | |
| 					$elscope
 | |
| 						.find( '.ast-sites-floating-notice-wrap' )
 | |
| 						.addClass( 'slide-out' );
 | |
| 
 | |
| 					setTimeout( function () {
 | |
| 						$elscope
 | |
| 							.find( '.ast-sites-floating-notice-wrap' )
 | |
| 							.removeClass( 'slide-out' );
 | |
| 					}, 200 );
 | |
| 				}
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_closeTooltip: function ( event ) {
 | |
| 			if (
 | |
| 				event.target.className !== 'ast-tooltip-wrap' &&
 | |
| 				event.target.className !== 'dashicons dashicons-editor-help'
 | |
| 			) {
 | |
| 				var wrap = $elscope.find( '.ast-tooltip-wrap' );
 | |
| 				if ( wrap.hasClass( 'ast-show-tooltip' ) ) {
 | |
| 					$elscope
 | |
| 						.find( '.ast-tooltip-wrap' )
 | |
| 						.removeClass( 'ast-show-tooltip' );
 | |
| 				}
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_sync: function ( event ) {
 | |
| 			event.preventDefault();
 | |
| 			var button = $( this ).find( '.astra-sites-sync-library-button' );
 | |
| 
 | |
| 			if ( button.hasClass( 'updating-message' ) ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			button.addClass( 'updating-message' );
 | |
| 			$elscope
 | |
| 				.find( '#ast-sites-floating-notice-wrap-id' )
 | |
| 				.show()
 | |
| 				.removeClass( 'error' );
 | |
| 			$elscope
 | |
| 				.find(
 | |
| 					'#ast-sites-floating-notice-wrap-id .ast-sites-floating-notice'
 | |
| 				)
 | |
| 				.html(
 | |
| 					'<span class="message">Syncing template library in the background. The process can take anywhere between 2 to 3 minutes. We will notify you once done.<span><button type="button" class="notice-dismiss"><span class="screen-reader-text">' +
 | |
| 						astraElementorSites.dismiss_text +
 | |
| 						'</span></button>'
 | |
| 				);
 | |
| 			$elscope
 | |
| 				.find( '#ast-sites-floating-notice-wrap-id' )
 | |
| 				.addClass( 'slide-in' )
 | |
| 				.removeClass( 'refreshed-notice' );
 | |
| 
 | |
| 			$.ajax( {
 | |
| 				url: astraElementorSites.ajaxurl,
 | |
| 				type: 'POST',
 | |
| 				data: {
 | |
| 					action: 'astra-sites-update-library',
 | |
| 					_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 				},
 | |
| 			} )
 | |
| 				.fail( function ( jqXHR ) {
 | |
| 					console.log( jqXHR );
 | |
| 				} )
 | |
| 				.done( function ( response ) {
 | |
| 					if ( response.success ) {
 | |
| 						if ( 'updated' === response.data ) {
 | |
| 							$elscope
 | |
| 								.find( '#ast-sites-floating-notice-wrap-id' )
 | |
| 								.addClass( 'refreshed-notice' )
 | |
| 								.find( '.ast-sites-floating-notice' )
 | |
| 								.html(
 | |
| 									'<span class="message">' +
 | |
| 										astraElementorSites.syncCompleteMessage +
 | |
| 										'</span><button type="button" class="notice-dismiss"><span class="screen-reader-text">' +
 | |
| 										astraElementorSites.dismiss_text +
 | |
| 										'</span></button>'
 | |
| 								);
 | |
| 							button.removeClass( 'updating-message' );
 | |
| 							console.log( 'Already sync all the sites.' );
 | |
| 						} else {
 | |
| 							// Import categories.
 | |
| 							$.ajax( {
 | |
| 								url: astraElementorSites.ajaxurl,
 | |
| 								type: 'POST',
 | |
| 								data: {
 | |
| 									action: 'astra-sites-import-all-categories-and-tags',
 | |
| 									_ajax_nonce:
 | |
| 										astraElementorSites._ajax_nonce,
 | |
| 								},
 | |
| 							} ).fail( function ( jqXHR ) {
 | |
| 								console.log( jqXHR );
 | |
| 							} );
 | |
| 
 | |
| 							// Import categories.
 | |
| 							$.ajax( {
 | |
| 								url: astraElementorSites.ajaxurl,
 | |
| 								type: 'POST',
 | |
| 								data: {
 | |
| 									action: 'astra-sites-import-all-categories',
 | |
| 									_ajax_nonce:
 | |
| 										astraElementorSites._ajax_nonce,
 | |
| 								},
 | |
| 							} ).fail( function ( jqXHR ) {
 | |
| 								console.log( jqXHR );
 | |
| 							} );
 | |
| 
 | |
| 							// Import Blocks.
 | |
| 							$.ajax( {
 | |
| 								url: astraElementorSites.ajaxurl,
 | |
| 								type: 'POST',
 | |
| 								data: {
 | |
| 									action: 'astra-sites-get-blocks-request-count',
 | |
| 									_ajax_nonce:
 | |
| 										astraElementorSites._ajax_nonce,
 | |
| 								},
 | |
| 								beforeSend: function () {
 | |
| 									console.groupCollapsed( 'Updating Blocks' );
 | |
| 									console.log( 'Updating Blocks' );
 | |
| 								},
 | |
| 							} )
 | |
| 								.fail( function ( jqXHR ) {
 | |
| 									console.log( jqXHR, 'error' );
 | |
| 									console.error(
 | |
| 										jqXHR.status + jqXHR.statusText,
 | |
| 										'Blocks Count Request Failed!',
 | |
| 										jqXHR
 | |
| 									);
 | |
| 									console.groupEnd( 'Updating Blocks' );
 | |
| 								} )
 | |
| 								.done( function ( response ) {
 | |
| 									console.log( response );
 | |
| 									if ( response.success ) {
 | |
| 										var total = response.data;
 | |
| 
 | |
| 										for ( let i = 1; i <= total; i++ ) {
 | |
| 											AstraSitesAjaxQueue.add( {
 | |
| 												url: astraElementorSites.ajaxurl,
 | |
| 												type: 'POST',
 | |
| 												data: {
 | |
| 													action: 'astra-sites-import-blocks',
 | |
| 													page_no: i,
 | |
| 													_ajax_nonce:
 | |
| 														astraElementorSites._ajax_nonce,
 | |
| 												},
 | |
| 												beforeSend: function () {
 | |
| 													console.groupCollapsed(
 | |
| 														'Importing Blocks - Page ' +
 | |
| 															i
 | |
| 													);
 | |
| 													console.log(
 | |
| 														'Importing Blocks - Page ' +
 | |
| 															i
 | |
| 													);
 | |
| 												},
 | |
| 												success: function ( response ) {
 | |
| 													console.log( response );
 | |
| 													console.groupEnd(
 | |
| 														'Importing Blocks - Page ' +
 | |
| 															i
 | |
| 													);
 | |
| 												},
 | |
| 											} );
 | |
| 										}
 | |
| 
 | |
| 										// Run the AJAX queue.
 | |
| 										AstraSitesAjaxQueue.run();
 | |
| 									} else {
 | |
| 										console.error(
 | |
| 											response.data,
 | |
| 											'Blocks Count Request Failed!'
 | |
| 										);
 | |
| 									}
 | |
| 								} );
 | |
| 
 | |
| 							// Import Block Categories.
 | |
| 							$.ajax( {
 | |
| 								url: astraElementorSites.ajaxurl,
 | |
| 								type: 'POST',
 | |
| 								data: {
 | |
| 									action: 'astra-sites-import-block-categories',
 | |
| 									_ajax_nonce:
 | |
| 										astraElementorSites._ajax_nonce,
 | |
| 								},
 | |
| 							} ).fail( function ( jqXHR ) {
 | |
| 								console.log( jqXHR );
 | |
| 							} );
 | |
| 
 | |
| 							$.ajax( {
 | |
| 								url: astraElementorSites.ajaxurl,
 | |
| 								type: 'POST',
 | |
| 								data: {
 | |
| 									action: 'astra-sites-get-sites-request-count',
 | |
| 									_ajax_nonce:
 | |
| 										astraElementorSites._ajax_nonce,
 | |
| 								},
 | |
| 							} )
 | |
| 								.fail( function ( jqXHR ) {
 | |
| 									console.log( jqXHR );
 | |
| 								} )
 | |
| 								.done( function ( response ) {
 | |
| 									if ( response.success ) {
 | |
| 										var total = response.data;
 | |
| 
 | |
| 										for ( let i = 1; i <= total; i++ ) {
 | |
| 											AstraSitesAjaxQueue.add( {
 | |
| 												url: astraElementorSites.ajaxurl,
 | |
| 												type: 'POST',
 | |
| 												data: {
 | |
| 													action: 'astra-sites-import-sites',
 | |
| 													page_no: i,
 | |
| 													_ajax_nonce:
 | |
| 														astraElementorSites._ajax_nonce,
 | |
| 												},
 | |
| 												success: function ( result ) {
 | |
| 													if (
 | |
| 														i === total &&
 | |
| 														astraElementorSites.syncCompleteMessage
 | |
| 													) {
 | |
| 														button.removeClass(
 | |
| 															'updating-message'
 | |
| 														);
 | |
| 														$elscope
 | |
| 															.find(
 | |
| 																'#ast-sites-floating-notice-wrap-id'
 | |
| 															)
 | |
| 															.addClass(
 | |
| 																'refreshed-notice'
 | |
| 															)
 | |
| 															.find(
 | |
| 																'.ast-sites-floating-notice'
 | |
| 															)
 | |
| 															.html(
 | |
| 																'<span class="message">' +
 | |
| 																	astraElementorSites.syncCompleteMessage +
 | |
| 																	'</span><button type="button" class="notice-dismiss"><span class="screen-reader-text">' +
 | |
| 																	astraElementorSites.dismiss_text +
 | |
| 																	'</span></button>'
 | |
| 															);
 | |
| 													}
 | |
| 												},
 | |
| 											} );
 | |
| 										}
 | |
| 
 | |
| 										// Run the AJAX queue.
 | |
| 										AstraSitesAjaxQueue.run();
 | |
| 									}
 | |
| 								} );
 | |
| 						}
 | |
| 					}
 | |
| 				} );
 | |
| 		},
 | |
| 
 | |
| 		_toggleTooltip: function ( e ) {
 | |
| 			var wrap = $elscope.find( '.ast-tooltip-wrap' );
 | |
| 
 | |
| 			if ( wrap.hasClass( 'ast-show-tooltip' ) ) {
 | |
| 				$elscope
 | |
| 					.find( '.ast-tooltip-wrap' )
 | |
| 					.removeClass( 'ast-show-tooltip' );
 | |
| 			} else {
 | |
| 				$elscope
 | |
| 					.find( '.ast-tooltip-wrap' )
 | |
| 					.addClass( 'ast-show-tooltip' );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_toggle: function ( e ) {
 | |
| 			$elscope
 | |
| 				.find( '.elementor-template-library-menu-item' )
 | |
| 				.removeClass( 'elementor-active' );
 | |
| 
 | |
| 			$elscope.find( '.dialog-lightbox-content' ).hide();
 | |
| 
 | |
| 			$elscope.find( '.theme-preview' ).hide();
 | |
| 			$elscope.find( '.theme-preview' ).html( '' );
 | |
| 			$elscope.find( '.theme-preview-block' ).hide();
 | |
| 			$elscope.find( '.theme-preview-block' ).html( '' );
 | |
| 			$elscope.find( '.ast-template-library-toolbar' ).show();
 | |
| 
 | |
| 			$elscope.find( '.dialog-lightbox-content' ).hide();
 | |
| 			$elscope.find( '.dialog-lightbox-content-block' ).hide();
 | |
| 
 | |
| 			$( this ).addClass( 'elementor-active' );
 | |
| 			let data_type = $( this ).data( 'template-type' );
 | |
| 
 | |
| 			AstraElementorSitesAdmin.type = data_type;
 | |
| 			AstraElementorSitesAdmin._switchTo( data_type );
 | |
| 		},
 | |
| 
 | |
| 		_home: function () {
 | |
| 			if ( AstraElementorSitesAdmin.processing ) {
 | |
| 				return;
 | |
| 			}
 | |
| 			$elscope.find( '#wp-filter-search-input' ).val( '' );
 | |
| 			// Hide Back button.
 | |
| 			$elscope.find( '.back-to-layout' ).css( 'visibility', 'hidden' );
 | |
| 			$elscope.find( '.back-to-layout' ).css( 'opacity', '0' );
 | |
| 			$elscope
 | |
| 				.find( '.elementor-template-library-menu-item:first-child' )
 | |
| 				.trigger( 'click' );
 | |
| 		},
 | |
| 
 | |
| 		_switchTo: function ( type ) {
 | |
| 			if ( 'pages' == type ) {
 | |
| 				AstraElementorSitesAdmin._initSites();
 | |
| 				$elscope.find( '.dialog-lightbox-content' ).show();
 | |
| 				$elscope.find( '.astra-blocks-category-inner-wrap' ).hide();
 | |
| 				$elscope.find( '.astra-blocks-filter-inner-wrap' ).hide();
 | |
| 				$elscope.find( '.elementor-template-library-order' ).show();
 | |
| 			} else {
 | |
| 				AstraElementorSitesAdmin._initBlocks();
 | |
| 				$elscope.find( '.dialog-lightbox-content-block' ).show();
 | |
| 				$elscope.find( '.astra-blocks-category-inner-wrap' ).show();
 | |
| 				$elscope.find( '.astra-blocks-filter-inner-wrap' ).show();
 | |
| 				$elscope.find( '.elementor-template-library-order' ).hide();
 | |
| 			}
 | |
| 			$elscope.find( '.astra-sites-content-wrap' ).trigger( 'scroll' );
 | |
| 		},
 | |
| 
 | |
| 		_importWPForm: function ( wpforms_url, callback ) {
 | |
| 			if ( ! wpforms_url ) {
 | |
| 				if ( callback && typeof callback == 'function' ) {
 | |
| 					callback( '' );
 | |
| 				}
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			$.ajax( {
 | |
| 				url: astraElementorSites.ajaxurl,
 | |
| 				type: 'POST',
 | |
| 				dataType: 'json',
 | |
| 				data: {
 | |
| 					action: 'astra-sites-import-wpforms',
 | |
| 					screen: 'elementor',
 | |
| 					id: AstraElementorSitesAdmin.templateData.id,
 | |
| 					_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 				},
 | |
| 				beforeSend: function () {
 | |
| 					console.groupCollapsed( 'Importing WP Forms' );
 | |
| 				},
 | |
| 			} )
 | |
| 				.fail( function ( jqXHR ) {
 | |
| 					console.log(
 | |
| 						jqXHR.status + ' ' + jqXHR.responseText,
 | |
| 						true
 | |
| 					);
 | |
| 					console.groupEnd();
 | |
| 				} )
 | |
| 				.done( function ( data ) {
 | |
| 					// 1. Fail - Import WPForms Options.
 | |
| 					if ( false === data.success ) {
 | |
| 						console.log( data.data );
 | |
| 						console.groupEnd();
 | |
| 					} else {
 | |
| 						if ( callback && typeof callback == 'function' ) {
 | |
| 							callback( data );
 | |
| 						}
 | |
| 					}
 | |
| 				} );
 | |
| 		},
 | |
| 
 | |
| 		_createTemplate: function () {
 | |
| 			console.groupEnd();
 | |
| 
 | |
| 			// Work with JSON page here
 | |
| 			$.ajax( {
 | |
| 				url: astraElementorSites.ajaxurl,
 | |
| 				type: 'POST',
 | |
| 				dataType: 'json',
 | |
| 				data: {
 | |
| 					action: 'astra-sites-create-template',
 | |
| 					id:
 | |
| 						AstraElementorSitesAdmin.type == 'pages'
 | |
| 							? AstraElementorSitesAdmin.page_id?.replace(
 | |
| 									'id-',
 | |
| 									''
 | |
| 							  )
 | |
| 							: AstraElementorSitesAdmin.block_id?.replace(
 | |
| 									'id-',
 | |
| 									''
 | |
| 							  ),
 | |
| 					title:
 | |
| 						AstraElementorSitesAdmin.templateData?.title
 | |
| 							?.rendered || '',
 | |
| 					type:
 | |
| 						'blocks' == AstraElementorSitesAdmin.type
 | |
| 							? 'astra-blocks'
 | |
| 							: 'site-pages',
 | |
| 					_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 				},
 | |
| 				beforeSend: function () {
 | |
| 					console.groupCollapsed( 'Creating Template' );
 | |
| 				},
 | |
| 			} )
 | |
| 				.fail( function ( jqXHR ) {
 | |
| 					console.log( jqXHR );
 | |
| 				} )
 | |
| 				.done( function ( data ) {
 | |
| 					AstraElementorSitesAdmin._done( data );
 | |
| 				} );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Install All Plugins.
 | |
| 		 */
 | |
| 		_installAllPlugins: function ( not_installed ) {
 | |
| 			$.each( not_installed, function ( index, single_plugin ) {
 | |
| 				console.log( 'Installing Plugin - ' + single_plugin.name );
 | |
| 
 | |
| 				// Add each plugin activate request in Ajax queue.
 | |
| 				// @see wp-admin/js/updates.js
 | |
| 				wp.updates.queue.push( {
 | |
| 					action: 'install-plugin', // Required action.
 | |
| 					data: {
 | |
| 						slug: single_plugin.slug,
 | |
| 					},
 | |
| 				} );
 | |
| 			} );
 | |
| 
 | |
| 			// Required to set queue.
 | |
| 			wp.updates.queueChecker();
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Activate All Plugins.
 | |
| 		 */
 | |
| 		_activateAllPlugins: function ( activate_plugins ) {
 | |
| 			$.each( activate_plugins, function ( index, single_plugin ) {
 | |
| 				console.log( 'Activating Plugin - ' + single_plugin.name );
 | |
| 
 | |
| 				AstraSitesAjaxQueue.add( {
 | |
| 					url: astraElementorSites.ajaxurl,
 | |
| 					type: 'POST',
 | |
| 					data: {
 | |
| 						action: 'astra-sites-required_plugin_activate',
 | |
| 						init: single_plugin.init,
 | |
| 						_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 					},
 | |
| 					success: function ( result ) {
 | |
| 						if ( result.success ) {
 | |
| 							var pluginsList =
 | |
| 								AstraElementorSitesAdmin.requiredPlugins
 | |
| 									.inactive;
 | |
| 
 | |
| 							// Reset not installed plugins list.
 | |
| 							AstraElementorSitesAdmin.requiredPlugins.inactive =
 | |
| 								AstraElementorSitesAdmin._removePluginFromQueue(
 | |
| 									single_plugin.slug,
 | |
| 									pluginsList
 | |
| 								);
 | |
| 
 | |
| 							// Enable Demo Import Button
 | |
| 							AstraElementorSitesAdmin._enableImport();
 | |
| 						}
 | |
| 					},
 | |
| 				} );
 | |
| 			} );
 | |
| 			AstraSitesAjaxQueue.run();
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Remove plugin from the queue.
 | |
| 		 */
 | |
| 		_removePluginFromQueue: function ( removeItem, pluginsList ) {
 | |
| 			return jQuery.grep( pluginsList, function ( value ) {
 | |
| 				return value.slug != removeItem;
 | |
| 			} );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Get plugin from the queue.
 | |
| 		 */
 | |
| 		_getPluginFromQueue: function ( item, pluginsList ) {
 | |
| 			var match = '';
 | |
| 			for ( ind in pluginsList ) {
 | |
| 				if ( item == pluginsList[ ind ].slug ) {
 | |
| 					match = pluginsList[ ind ];
 | |
| 				}
 | |
| 			}
 | |
| 			return match;
 | |
| 		},
 | |
| 
 | |
| 		_bulkPluginInstallActivate: function () {
 | |
| 			console.groupCollapsed( 'Bulk Plugin Install Process Started' );
 | |
| 
 | |
| 			// If has class the skip-plugins then,
 | |
| 			// Avoid installing 3rd party plugins.
 | |
| 			var not_installed =
 | |
| 				AstraElementorSitesAdmin.requiredPlugins.notinstalled || '';
 | |
| 			var activate_plugins =
 | |
| 				AstraElementorSitesAdmin.requiredPlugins.inactive || '';
 | |
| 
 | |
| 			console.log( AstraElementorSitesAdmin.requiredPlugins );
 | |
| 
 | |
| 			// First Install Bulk.
 | |
| 			if ( not_installed.length > 0 ) {
 | |
| 				AstraElementorSitesAdmin._installAllPlugins( not_installed );
 | |
| 			}
 | |
| 
 | |
| 			// Second Activate Bulk.
 | |
| 			if ( activate_plugins.length > 0 ) {
 | |
| 				AstraElementorSitesAdmin._activateAllPlugins(
 | |
| 					activate_plugins
 | |
| 				);
 | |
| 			}
 | |
| 
 | |
| 			if ( activate_plugins.length <= 0 && not_installed.length <= 0 ) {
 | |
| 				AstraElementorSitesAdmin._enableImport();
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_importTemplate: function ( e ) {
 | |
| 			if ( ! AstraElementorSitesAdmin.canImport ) {
 | |
| 				if ( $( this ).attr( 'data-demo-link' ) != undefined ) {
 | |
| 					window.open( $( this ).attr( 'data-demo-link' ), '_blank' );
 | |
| 				}
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			AstraElementorSitesAdmin.canImport = false;
 | |
| 
 | |
| 			var str =
 | |
| 				AstraElementorSitesAdmin.type == 'pages'
 | |
| 					? astraElementorSites.template
 | |
| 					: astraElementorSites.block;
 | |
| 
 | |
| 			$( this ).addClass( 'installing' );
 | |
| 			$( this ).text( 'Saving ' + str + '...' );
 | |
| 
 | |
| 			AstraElementorSitesAdmin.action = 'import';
 | |
| 
 | |
| 			AstraElementorSitesAdmin._bulkPluginInstallActivate();
 | |
| 		},
 | |
| 
 | |
| 		_unescape: function ( input_string ) {
 | |
| 			var title = _.unescape( input_string );
 | |
| 
 | |
| 			// @todo check why below character not escape with function _.unescape();
 | |
| 			title = title.replace( '–', '-' );
 | |
| 
 | |
| 			return title;
 | |
| 		},
 | |
| 
 | |
| 		_unescape_lower: function ( input_string ) {
 | |
| 			input_string = $( '<textarea/>' ).html( input_string ).text();
 | |
| 			var input_string =
 | |
| 				AstraElementorSitesAdmin._unescape( input_string );
 | |
| 			return input_string.toLowerCase();
 | |
| 		},
 | |
| 
 | |
| 		_search: function () {
 | |
| 			let search_term = $( this ).val() || '';
 | |
| 			search_term = search_term.toLowerCase();
 | |
| 
 | |
| 			if ( 'pages' == AstraElementorSitesAdmin.type ) {
 | |
| 				var items =
 | |
| 					AstraElementorSitesAdmin._getSearchedPages( search_term );
 | |
| 
 | |
| 				if ( search_term.length ) {
 | |
| 					$( this ).addClass( 'has-input' );
 | |
| 					AstraElementorSitesAdmin._addSites( items );
 | |
| 				} else {
 | |
| 					$( this ).removeClass( 'has-input' );
 | |
| 					AstraElementorSitesAdmin._appendSites(
 | |
| 						astraElementorSites.default_page_builder_sites
 | |
| 					);
 | |
| 				}
 | |
| 			} else {
 | |
| 				var items =
 | |
| 					AstraElementorSitesAdmin._getSearchedBlocks( search_term );
 | |
| 
 | |
| 				if ( search_term.length ) {
 | |
| 					$( this ).addClass( 'has-input' );
 | |
| 					AstraElementorSitesAdmin._appendBlocks( items );
 | |
| 				} else {
 | |
| 					$( this ).removeClass( 'has-input' );
 | |
| 					AstraElementorSitesAdmin._appendBlocks(
 | |
| 						astraElementorSites.astra_blocks
 | |
| 					);
 | |
| 				}
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_getSearchedPages: function ( search_term ) {
 | |
| 			var items = [];
 | |
| 			search_term = search_term.toLowerCase();
 | |
| 
 | |
| 			for ( site_id in astraElementorSites.default_page_builder_sites ) {
 | |
| 				var current_site =
 | |
| 					astraElementorSites.default_page_builder_sites[ site_id ];
 | |
| 
 | |
| 				// Check in site title.
 | |
| 				if ( current_site[ 'title' ] ) {
 | |
| 					var site_title = AstraElementorSitesAdmin._unescape_lower(
 | |
| 						current_site[ 'title' ]
 | |
| 					);
 | |
| 
 | |
| 					if ( site_title.toLowerCase().includes( search_term ) ) {
 | |
| 						for ( page_id in current_site[ 'pages' ] ) {
 | |
| 							items[ page_id ] =
 | |
| 								current_site[ 'pages' ][ page_id ];
 | |
| 							items[ page_id ][ 'type' ] = 'page';
 | |
| 							items[ page_id ][ 'site_id' ] = site_id;
 | |
| 							items[ page_id ][ 'astra-sites-type' ] =
 | |
| 								current_site[ 'astra-sites-type' ] || '';
 | |
| 							items[ page_id ][ 'parent-site-name' ] =
 | |
| 								current_site[ 'title' ] || '';
 | |
| 							items[ page_id ][ 'pages-count' ] = 0;
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 
 | |
| 				// Check in page title.
 | |
| 				if ( Object.keys( current_site[ 'pages' ] ).length ) {
 | |
| 					var pages = current_site[ 'pages' ];
 | |
| 
 | |
| 					for ( page_id in pages ) {
 | |
| 						// Check in site title.
 | |
| 						if ( pages[ page_id ][ 'title' ] ) {
 | |
| 							var page_title =
 | |
| 								AstraElementorSitesAdmin._unescape_lower(
 | |
| 									pages[ page_id ][ 'title' ]
 | |
| 								);
 | |
| 
 | |
| 							if (
 | |
| 								page_title.toLowerCase().includes( search_term )
 | |
| 							) {
 | |
| 								items[ page_id ] = pages[ page_id ];
 | |
| 								items[ page_id ][ 'type' ] = 'page';
 | |
| 								items[ page_id ][ 'site_id' ] = site_id;
 | |
| 								items[ page_id ][ 'astra-sites-type' ] =
 | |
| 									current_site[ 'astra-sites-type' ] || '';
 | |
| 								items[ page_id ][ 'parent-site-name' ] =
 | |
| 									current_site[ 'title' ] || '';
 | |
| 								items[ page_id ][ 'pages-count' ] = 0;
 | |
| 							}
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			return items;
 | |
| 		},
 | |
| 
 | |
| 		_getSearchedBlocks: function ( search_term ) {
 | |
| 			var items = [];
 | |
| 
 | |
| 			if ( search_term.length ) {
 | |
| 				for ( block_id in astraElementorSites.astra_blocks ) {
 | |
| 					var current_site =
 | |
| 						astraElementorSites.astra_blocks[ block_id ];
 | |
| 
 | |
| 					// Check in site title.
 | |
| 					if ( current_site[ 'title' ] ) {
 | |
| 						var site_title =
 | |
| 							AstraElementorSitesAdmin._unescape_lower(
 | |
| 								current_site[ 'title' ]
 | |
| 							);
 | |
| 
 | |
| 						if (
 | |
| 							site_title.toLowerCase().includes( search_term )
 | |
| 						) {
 | |
| 							items[ block_id ] = current_site;
 | |
| 							items[ block_id ][ 'type' ] = 'site';
 | |
| 							items[ block_id ][ 'site_id' ] = block_id;
 | |
| 						}
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			return items;
 | |
| 		},
 | |
| 
 | |
| 		_addSites: function ( data ) {
 | |
| 			if ( data ) {
 | |
| 				let single_template = wp.template( 'astra-sites-search' );
 | |
| 				pages_list = single_template( data );
 | |
| 				$elscope.find( '.dialog-lightbox-content' ).html( pages_list );
 | |
| 				AstraElementorSitesAdmin._loadLargeImages();
 | |
| 			} else {
 | |
| 				$elscope
 | |
| 					.find( '.dialog-lightbox-content' )
 | |
| 					.html( wp.template( 'astra-sites-no-sites' ) );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_appendSites: function ( data ) {
 | |
| 			let single_template = wp.template( 'astra-sites-list' );
 | |
| 			pages_list = single_template( data );
 | |
| 			$elscope.find( '.dialog-lightbox-message-block' ).hide();
 | |
| 			$elscope.find( '.dialog-lightbox-message' ).show();
 | |
| 			$elscope.find( '.dialog-lightbox-content' ).html( pages_list );
 | |
| 			AstraElementorSitesAdmin._loadLargeImages();
 | |
| 		},
 | |
| 
 | |
| 		_appendBlocks: function ( data ) {
 | |
| 			let single_template = wp.template( 'astra-blocks-list' );
 | |
| 			let blocks_list = single_template( data );
 | |
| 			$elscope.find( '.dialog-lightbox-message' ).hide();
 | |
| 			$elscope.find( '.dialog-lightbox-message-block' ).show();
 | |
| 			$elscope
 | |
| 				.find( '.dialog-lightbox-content-block' )
 | |
| 				.html( blocks_list );
 | |
| 			AstraElementorSitesAdmin._masonry();
 | |
| 		},
 | |
| 
 | |
| 		_appendPaginationBlocks: function ( data ) {
 | |
| 			let single_template = wp.template( 'astra-blocks-list' );
 | |
| 			let blocks_list = single_template( data );
 | |
| 			$elscope.find( '.dialog-lightbox-message' ).hide();
 | |
| 			$elscope.find( '.dialog-lightbox-message-block' ).show();
 | |
| 			$elscope
 | |
| 				.find( '.dialog-lightbox-content-block' )
 | |
| 				.append( blocks_list );
 | |
| 			AstraElementorSitesAdmin._masonry();
 | |
| 		},
 | |
| 
 | |
| 		_masonry: function () {
 | |
| 			//create empty var masonryObj
 | |
| 			var masonryObj;
 | |
| 			var container = document.querySelector(
 | |
| 				'.dialog-lightbox-content-block'
 | |
| 			);
 | |
| 			// initialize Masonry after all images have loaded
 | |
| 			imagesLoaded( container, function () {
 | |
| 				masonryObj = new Masonry( container, {
 | |
| 					itemSelector: '.astra-sites-library-template',
 | |
| 				} );
 | |
| 			} );
 | |
| 		},
 | |
| 
 | |
| 		_enableImport: function () {
 | |
| 			console.log( 'Required Plugins Process Done.' );
 | |
| 			console.groupEnd();
 | |
| 
 | |
| 			if ( AstraElementorSitesAdmin[ 'initial-page-refresh' ] ) {
 | |
| 				AstraElementorSitesAdmin.saveContentAndRefresh();
 | |
| 			} else {
 | |
| 				AstraElementorSitesAdmin.removeAddedParams();
 | |
| 			}
 | |
| 
 | |
| 			let form_url = '';
 | |
| 			if ( 'pages' == AstraElementorSitesAdmin.type ) {
 | |
| 				form_url =
 | |
| 					AstraElementorSitesAdmin.templateData[
 | |
| 						'astra-site-wpforms-path'
 | |
| 					];
 | |
| 			} else {
 | |
| 				form_url =
 | |
| 					undefined !=
 | |
| 					AstraElementorSitesAdmin.templateData[ 'post-meta' ]
 | |
| 						? AstraElementorSitesAdmin.templateData[ 'post-meta' ][
 | |
| 								'astra-site-wpforms-path'
 | |
| 						  ]
 | |
| 						: '';
 | |
| 			}
 | |
| 
 | |
| 			if ( ! AstraElementorSitesAdmin[ 'initial-page-refresh' ] ) {
 | |
| 				AstraElementorSitesAdmin._importWPForm( form_url, function () {
 | |
| 					AstraElementorSitesAdmin.insertData =
 | |
| 						AstraElementorSitesAdmin.templateData;
 | |
| 					if ( 'insert' == AstraElementorSitesAdmin.action ) {
 | |
| 						AstraElementorSitesAdmin._insertDemo();
 | |
| 					} else {
 | |
| 						AstraElementorSitesAdmin._createTemplate();
 | |
| 					}
 | |
| 				} );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_insert: function ( e ) {
 | |
| 			if ( ! AstraElementorSitesAdmin.canInsert ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			AstraElementorSitesAdmin.canInsert = false;
 | |
| 			var str =
 | |
| 				AstraElementorSitesAdmin.type == 'pages'
 | |
| 					? astraElementorSites.template
 | |
| 					: astraElementorSites.block;
 | |
| 
 | |
| 			$( this ).addClass( 'installing' );
 | |
| 			if ( ! AstraElementorSitesAdmin[ 'initial-page-refresh' ] ) {
 | |
| 				$( this ).text( 'Importing ' + str + '...' );
 | |
| 			}
 | |
| 
 | |
| 			AstraElementorSitesAdmin.action = 'insert';
 | |
| 
 | |
| 			AstraElementorSitesAdmin._bulkPluginInstallActivate();
 | |
| 		},
 | |
| 
 | |
| 		requestInsert: function (
 | |
| 			_id,
 | |
| 			type,
 | |
| 			templateModel,
 | |
| 			afterInsert,
 | |
| 			beforeInsert,
 | |
| 			failedCallback
 | |
| 		) {
 | |
| 			$.ajax( {
 | |
| 				url: astraElementorSites.ajaxurl,
 | |
| 				type: 'POST',
 | |
| 				data: {
 | |
| 					action: 'astra-page-elementor-insert-page',
 | |
| 					id: _id,
 | |
| 					type: type,
 | |
| 					_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 				},
 | |
| 				beforeSend: function () {
 | |
| 					console.groupCollapsed( 'Inserting Demo.' );
 | |
| 				},
 | |
| 			} )
 | |
| 				.fail( function ( jqXHR ) {
 | |
| 					failedCallback( jqXHR );
 | |
| 				} )
 | |
| 				.done( function ( response ) {
 | |
| 					beforeInsert();
 | |
| 
 | |
| 					let page_content = response.data;
 | |
| 
 | |
| 					page_content = page_content.map( function ( item ) {
 | |
| 						item.id = Math.random().toString( 36 ).substr( 2, 7 );
 | |
| 						return item;
 | |
| 					} );
 | |
| 
 | |
| 					console.log( page_content );
 | |
| 					console.groupEnd();
 | |
| 					if ( undefined !== page_content && '' !== page_content ) {
 | |
| 						if (
 | |
| 							undefined != $e &&
 | |
| 							'undefined' != typeof $e.internal
 | |
| 						) {
 | |
| 							elementor.channels.data.trigger(
 | |
| 								'document/import',
 | |
| 								templateModel
 | |
| 							);
 | |
| 							elementor
 | |
| 								.getPreviewView()
 | |
| 								.addChildModel(
 | |
| 									page_content,
 | |
| 									{ at: AstraElementorSitesAdmin.index } || {}
 | |
| 								);
 | |
| 							elementor.channels.data.trigger(
 | |
| 								'template:after:insert',
 | |
| 								{}
 | |
| 							);
 | |
| 							$e.internal( 'document/save/set-is-modified', {
 | |
| 								status: true,
 | |
| 							} );
 | |
| 						} else {
 | |
| 							elementor.channels.data.trigger(
 | |
| 								'document/import',
 | |
| 								templateModel
 | |
| 							);
 | |
| 							elementor
 | |
| 								.getPreviewView()
 | |
| 								.addChildModel(
 | |
| 									page_content,
 | |
| 									{ at: AstraElementorSitesAdmin.index } || {}
 | |
| 								);
 | |
| 							elementor.channels.data.trigger(
 | |
| 								'template:after:insert',
 | |
| 								{}
 | |
| 							);
 | |
| 							elementor.saver.setFlagEditorChange( true );
 | |
| 						}
 | |
| 					}
 | |
| 					afterInsert();
 | |
| 				} );
 | |
| 		},
 | |
| 
 | |
| 		beforeInsert: function () {
 | |
| 			AstraElementorSitesAdmin.processing = false;
 | |
| 			$elscope
 | |
| 				.find( '.astra-sites-content-wrap' )
 | |
| 				.removeClass( 'processing' );
 | |
| 		},
 | |
| 
 | |
| 		afterInsert: function () {
 | |
| 			AstraElementorSitesAdmin.insertActionFlag = true;
 | |
| 			AstraElementorSitesAdmin._close();
 | |
| 		},
 | |
| 
 | |
| 		failedCallback: function ( jqXHR ) {
 | |
| 			console.log( jqXHR );
 | |
| 			console.groupEnd();
 | |
| 		},
 | |
| 
 | |
| 		_insertDemo: function () {
 | |
| 			var data = AstraElementorSitesAdmin.templateData;
 | |
| 
 | |
| 			if ( undefined !== data ) {
 | |
| 				let templateModel = new Backbone.Model( {
 | |
| 					getTitle() {
 | |
| 						return data[ 'title' ];
 | |
| 					},
 | |
| 				} );
 | |
| 
 | |
| 				let type =
 | |
| 					'blocks' == AstraElementorSitesAdmin.type
 | |
| 						? 'astra-blocks'
 | |
| 						: 'site-pages';
 | |
| 
 | |
| 				this.requestInsert(
 | |
| 					data[ 'id' ],
 | |
| 					type,
 | |
| 					templateModel,
 | |
| 					this.afterInsert,
 | |
| 					this.beforeInsert,
 | |
| 					this.failedCallback
 | |
| 				);
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_goBack: function ( e ) {
 | |
| 			if ( AstraElementorSitesAdmin.processing ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			let step = $( this ).attr( 'data-step' );
 | |
| 
 | |
| 			$elscope.find( '#ast-sites-floating-notice-wrap-id.error' ).hide();
 | |
| 
 | |
| 			$elscope.find( '.astra-sites-step-1-wrap' ).show();
 | |
| 			$elscope.find( '.astra-preview-actions-wrap' ).remove();
 | |
| 
 | |
| 			$elscope.find( '.ast-template-library-toolbar' ).show();
 | |
| 			$elscope
 | |
| 				.find( '.ast-sites-modal__header' )
 | |
| 				.removeClass( 'ast-preview-mode' );
 | |
| 
 | |
| 			let id =
 | |
| 				'blocks' === AstraElementorSitesAdmin.type
 | |
| 					? AstraElementorSitesAdmin.block_id?.replace( 'id-', '' )
 | |
| 					: AstraElementorSitesAdmin.page_id?.replace( 'id-', '' );
 | |
| 
 | |
| 			if ( '' !== id ) {
 | |
| 				$.ajax( {
 | |
| 					url: astraElementorSites.ajaxurl,
 | |
| 					type: 'POST',
 | |
| 					data: {
 | |
| 						action: 'astra-sites-elementor-flush-request',
 | |
| 						id,
 | |
| 						_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 					},
 | |
| 					beforeSend: function () {
 | |
| 						console.groupCollapsed(
 | |
| 							'Deleting cached template data.'
 | |
| 						);
 | |
| 					},
 | |
| 				} )
 | |
| 					.fail( function ( jqXHR ) {
 | |
| 						console.log( jqXHR );
 | |
| 						console.groupEnd();
 | |
| 					} )
 | |
| 					.done( function ( response ) {
 | |
| 						console.log( response );
 | |
| 					} );
 | |
| 			}
 | |
| 
 | |
| 			if ( 'pages' == AstraElementorSitesAdmin.type ) {
 | |
| 				if ( 3 == step ) {
 | |
| 					$( this ).attr( 'data-step', 2 );
 | |
| 					$( document ).trigger(
 | |
| 						'astra-sites__elementor-goback-step-2'
 | |
| 					);
 | |
| 				} else if ( 2 == step ) {
 | |
| 					$( this ).attr( 'data-step', 1 );
 | |
| 					$( document ).trigger(
 | |
| 						'astra-sites__elementor-goback-step-1'
 | |
| 					);
 | |
| 				}
 | |
| 			} else {
 | |
| 				$( this ).attr( 'data-step', 1 );
 | |
| 				$( document ).trigger( 'astra-sites__elementor-goback-step-1' );
 | |
| 			}
 | |
| 
 | |
| 			$elscope.find( '.astra-sites-content-wrap' ).trigger( 'scroll' );
 | |
| 		},
 | |
| 
 | |
| 		_goStep1: function ( e ) {
 | |
| 			// Reset site and page ids to null.
 | |
| 			AstraElementorSitesAdmin.site_id = '';
 | |
| 			AstraElementorSitesAdmin.page_id = '';
 | |
| 			AstraElementorSitesAdmin.block_id = '';
 | |
| 			AstraElementorSitesAdmin.requiredPlugins = [];
 | |
| 			AstraElementorSitesAdmin.templateData = {};
 | |
| 			AstraElementorSitesAdmin.canImport = false;
 | |
| 			AstraElementorSitesAdmin.canInsert = false;
 | |
| 
 | |
| 			// Hide Back button.
 | |
| 			$elscope.find( '.back-to-layout' ).css( 'visibility', 'hidden' );
 | |
| 			$elscope.find( '.back-to-layout' ).css( 'opacity', '0' );
 | |
| 
 | |
| 			// Hide Preview Page.
 | |
| 			$elscope.find( '.theme-preview' ).hide();
 | |
| 			$elscope.find( '.theme-preview' ).html( '' );
 | |
| 			$elscope.find( '.theme-preview-block' ).hide();
 | |
| 			$elscope.find( '.theme-preview-block' ).html( '' );
 | |
| 			$elscope.find( '.ast-template-library-toolbar' ).show();
 | |
| 
 | |
| 			// Show listing page.
 | |
| 			if ( AstraElementorSitesAdmin.type == 'pages' ) {
 | |
| 				$elscope.find( '.dialog-lightbox-content' ).show();
 | |
| 				$elscope.find( '.dialog-lightbox-content-block' ).hide();
 | |
| 
 | |
| 				// Set listing HTML.
 | |
| 				AstraElementorSitesAdmin._appendSites(
 | |
| 					astraElementorSites.default_page_builder_sites
 | |
| 				);
 | |
| 			} else {
 | |
| 				// Set listing HTML.
 | |
| 				AstraElementorSitesAdmin._appendBlocks(
 | |
| 					astraElementorSites.astra_blocks
 | |
| 				);
 | |
| 
 | |
| 				$elscope.find( '.dialog-lightbox-content-block' ).show();
 | |
| 				$elscope.find( '.dialog-lightbox-content' ).hide();
 | |
| 
 | |
| 				if ( '' !== $elscope.find( '#wp-filter-search-input' ).val() ) {
 | |
| 					$elscope
 | |
| 						.find( '#wp-filter-search-input' )
 | |
| 						.trigger( 'keyup' );
 | |
| 				}
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_goStep2: function ( e ) {
 | |
| 			// Set page and site ids.
 | |
| 			AstraElementorSitesAdmin.site_id = $elscope
 | |
| 				.find( '#astra-blocks' )
 | |
| 				.data( 'site-id' );
 | |
| 			AstraElementorSitesAdmin.page_id = '';
 | |
| 
 | |
| 			if ( undefined === AstraElementorSitesAdmin.site_id ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			// Single Preview template.
 | |
| 			let single_template = wp.template( 'astra-sites-list-search' );
 | |
| 			let passing_data =
 | |
| 				astraElementorSites.default_page_builder_sites[
 | |
| 					AstraElementorSitesAdmin.site_id
 | |
| 				][ 'pages' ];
 | |
| 			passing_data[ 'site_id' ] = AstraElementorSitesAdmin.site_id;
 | |
| 			pages_list = single_template( passing_data );
 | |
| 			$elscope.find( '.dialog-lightbox-content' ).html( pages_list );
 | |
| 
 | |
| 			// Hide Preview page.
 | |
| 			$elscope.find( '.theme-preview' ).hide();
 | |
| 			$elscope.find( '.theme-preview' ).html( '' );
 | |
| 			$elscope.find( '.ast-template-library-toolbar' ).show();
 | |
| 			$elscope.find( '.theme-preview-block' ).hide();
 | |
| 			$elscope.find( '.theme-preview-block' ).html( '' );
 | |
| 
 | |
| 			// Show listing page.
 | |
| 			$elscope.find( '.dialog-lightbox-content' ).show();
 | |
| 			$elscope.find( '.dialog-lightbox-content-block' ).hide();
 | |
| 
 | |
| 			AstraElementorSitesAdmin._loadLargeImages();
 | |
| 
 | |
| 			if ( '' !== $elscope.find( '#wp-filter-search-input' ).val() ) {
 | |
| 				$elscope.find( '#wp-filter-search-input' ).trigger( 'keyup' );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_step1: function ( e ) {
 | |
| 			if ( 'pages' == AstraElementorSitesAdmin.type ) {
 | |
| 				let passing_data =
 | |
| 					astraElementorSites.default_page_builder_sites[
 | |
| 						AstraElementorSitesAdmin.site_id
 | |
| 					][ 'pages' ];
 | |
| 
 | |
| 				var count = 0;
 | |
| 				var one_page = [];
 | |
| 				var one_page_id = '';
 | |
| 
 | |
| 				for ( key in passing_data ) {
 | |
| 					if (
 | |
| 						undefined == passing_data[ key ][ 'site-pages-type' ]
 | |
| 					) {
 | |
| 						continue;
 | |
| 					}
 | |
| 					if (
 | |
| 						'gutenberg' ==
 | |
| 						passing_data[ key ][ 'site-pages-page-builder' ]
 | |
| 					) {
 | |
| 						continue;
 | |
| 					}
 | |
| 					count++;
 | |
| 					one_page = passing_data[ key ];
 | |
| 					one_page_id = key;
 | |
| 				}
 | |
| 
 | |
| 				if ( count == 1 ) {
 | |
| 					// Logic for one page sites.
 | |
| 					AstraElementorSitesAdmin.page_id = one_page_id;
 | |
| 
 | |
| 					$elscope
 | |
| 						.find( '.back-to-layout' )
 | |
| 						.css( 'visibility', 'visible' );
 | |
| 					$elscope.find( '.back-to-layout' ).css( 'opacity', '1' );
 | |
| 
 | |
| 					$elscope.find( '.back-to-layout' ).attr( 'data-step', 2 );
 | |
| 					$( document ).trigger( 'astra-sites__elementor-do-step-2' );
 | |
| 
 | |
| 					return;
 | |
| 				}
 | |
| 
 | |
| 				let single_template = wp.template( 'astra-sites-list-search' );
 | |
| 				passing_data[ 'site_id' ] = AstraElementorSitesAdmin.site_id;
 | |
| 				pages_list = single_template( passing_data );
 | |
| 				$elscope.find( '.dialog-lightbox-content-block' ).hide();
 | |
| 				$elscope.find( '.astra-sites-step-1-wrap' ).show();
 | |
| 				$elscope.find( '.astra-preview-actions-wrap' ).remove();
 | |
| 				$elscope.find( '.theme-preview' ).hide();
 | |
| 				$elscope.find( '.theme-preview' ).html( '' );
 | |
| 				$elscope.find( '.ast-template-library-toolbar' ).show();
 | |
| 				$elscope.find( '.theme-preview-block' ).hide();
 | |
| 				$elscope.find( '.theme-preview-block' ).html( '' );
 | |
| 				$elscope.find( '.dialog-lightbox-content' ).show();
 | |
| 				$elscope.find( '.dialog-lightbox-content' ).html( pages_list );
 | |
| 
 | |
| 				AstraElementorSitesAdmin._loadLargeImages();
 | |
| 			} else {
 | |
| 				$elscope.find( '.dialog-lightbox-content' ).hide();
 | |
| 				$elscope.find( '.dialog-lightbox-content-block' ).hide();
 | |
| 				$elscope
 | |
| 					.find( '.dialog-lightbox-message' )
 | |
| 					.animate( { scrollTop: 0 }, 50 );
 | |
| 				$elscope.find( '.theme-preview-block' ).show();
 | |
| 				$elscope.find( '.ast-template-library-toolbar' ).hide();
 | |
| 				$elscope
 | |
| 					.find( '.ast-sites-modal__header' )
 | |
| 					.addClass( 'ast-preview-mode' );
 | |
| 
 | |
| 				// Hide.
 | |
| 				$elscope.find( '.theme-preview' ).hide();
 | |
| 				$elscope.find( '.theme-preview' ).html( '' );
 | |
| 
 | |
| 				let import_template = wp.template(
 | |
| 					'astra-sites-elementor-preview'
 | |
| 				);
 | |
| 				let import_template_header = wp.template(
 | |
| 					'astra-sites-elementor-preview-actions'
 | |
| 				);
 | |
| 				let template_object =
 | |
| 					astraElementorSites.astra_blocks[
 | |
| 						AstraElementorSitesAdmin.block_id
 | |
| 					];
 | |
| 
 | |
| 				template_object[ 'id' ] = AstraElementorSitesAdmin.block_id;
 | |
| 
 | |
| 				preview_page_html = import_template( template_object );
 | |
| 				$elscope
 | |
| 					.find( '.theme-preview-block' )
 | |
| 					.html( preview_page_html );
 | |
| 
 | |
| 				$elscope.find( '.astra-sites-step-1-wrap' ).hide();
 | |
| 
 | |
| 				preview_action_html = import_template_header( template_object );
 | |
| 				$elscope
 | |
| 					.find( '.elementor-templates-modal__header__items-area' )
 | |
| 					.append( preview_action_html );
 | |
| 				AstraElementorSitesAdmin._masonry();
 | |
| 
 | |
| 				let actual_id = AstraElementorSitesAdmin.block_id.replace(
 | |
| 					'id-',
 | |
| 					''
 | |
| 				);
 | |
| 				$( document ).trigger( 'astra-sites__elementor-plugin-check', {
 | |
| 					id: actual_id,
 | |
| 				} );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_step2: function ( e ) {
 | |
| 			$elscope.find( '.dialog-lightbox-content' ).hide();
 | |
| 			$elscope
 | |
| 				.find( '.dialog-lightbox-message' )
 | |
| 				.animate( { scrollTop: 0 }, 50 );
 | |
| 			$elscope.find( '.theme-preview' ).show();
 | |
| 
 | |
| 			$elscope
 | |
| 				.find( '.ast-sites-modal__header' )
 | |
| 				.addClass( 'ast-preview-mode' );
 | |
| 
 | |
| 			if ( undefined === AstraElementorSitesAdmin.site_id ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			let import_template = wp.template(
 | |
| 				'astra-sites-elementor-preview'
 | |
| 			);
 | |
| 			let import_template_header = wp.template(
 | |
| 				'astra-sites-elementor-preview-actions'
 | |
| 			);
 | |
| 			let template_object =
 | |
| 				astraElementorSites.default_page_builder_sites[
 | |
| 					AstraElementorSitesAdmin.site_id
 | |
| 				][ 'pages' ][ AstraElementorSitesAdmin.page_id ];
 | |
| 
 | |
| 			if ( undefined === template_object ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			template_object[ 'id' ] = AstraElementorSitesAdmin.site_id;
 | |
| 
 | |
| 			preview_page_html = import_template( template_object );
 | |
| 			$elscope.find( '.theme-preview' ).html( preview_page_html );
 | |
| 
 | |
| 			$elscope.find( '.astra-sites-step-1-wrap' ).hide();
 | |
| 
 | |
| 			preview_action_html = import_template_header( template_object );
 | |
| 			$elscope
 | |
| 				.find( '.elementor-templates-modal__header__items-area' )
 | |
| 				.append( preview_action_html );
 | |
| 
 | |
| 			let actual_id = AstraElementorSitesAdmin.page_id.replace(
 | |
| 				'id-',
 | |
| 				''
 | |
| 			);
 | |
| 			$( document ).trigger( 'astra-sites__elementor-plugin-check', {
 | |
| 				id: actual_id,
 | |
| 			} );
 | |
| 		},
 | |
| 
 | |
| 		_preview: function ( e ) {
 | |
| 			if ( AstraElementorSitesAdmin.processing ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			let step = $( this ).attr( 'data-step' );
 | |
| 
 | |
| 			AstraElementorSitesAdmin.site_id = $( this )
 | |
| 				.closest( '.astra-theme' )
 | |
| 				.data( 'site-id' );
 | |
| 			AstraElementorSitesAdmin.page_id = $( this )
 | |
| 				.closest( '.astra-theme' )
 | |
| 				.data( 'template-id' );
 | |
| 			AstraElementorSitesAdmin.block_id = $( this )
 | |
| 				.closest( '.astra-theme' )
 | |
| 				.data( 'block-id' );
 | |
| 
 | |
| 			$elscope.find( '.back-to-layout' ).css( 'visibility', 'visible' );
 | |
| 			$elscope.find( '.back-to-layout' ).css( 'opacity', '1' );
 | |
| 
 | |
| 			$elscope.find( '.ast-template-library-toolbar' ).hide();
 | |
| 			$elscope
 | |
| 				.find( '.ast-sites-modal__header' )
 | |
| 				.removeClass( 'ast-preview-mode' );
 | |
| 
 | |
| 			if ( 1 == step ) {
 | |
| 				$elscope.find( '.back-to-layout' ).attr( 'data-step', 2 );
 | |
| 				$( document ).trigger( 'astra-sites__elementor-do-step-1' );
 | |
| 			} else {
 | |
| 				$elscope.find( '.back-to-layout' ).attr( 'data-step', 3 );
 | |
| 				$( document ).trigger( 'astra-sites__elementor-do-step-2' );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_pluginCheck: function ( e, data ) {
 | |
| 			var type =
 | |
| 				'blocks' !== AstraElementorSitesAdmin.type
 | |
| 					? 'site-pages'
 | |
| 					: 'astra-blocks';
 | |
| 			var id = data[ 'id' ];
 | |
| 
 | |
| 			const generateData = new FormData();
 | |
| 			generateData.append(
 | |
| 				'action',
 | |
| 				'astra-sites-elementor-api-request'
 | |
| 			);
 | |
| 			generateData.append( 'id', id );
 | |
| 			generateData.append( 'type', type );
 | |
| 			generateData.append(
 | |
| 				'_ajax_nonce',
 | |
| 				astraElementorSites._ajax_nonce
 | |
| 			);
 | |
| 
 | |
| 			$.ajax( {
 | |
| 				url: astraElementorSites.ajaxurl,
 | |
| 				type: 'POST',
 | |
| 				data: {
 | |
| 					action: 'astra-sites-elementor-api-request',
 | |
| 					_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 					type: type,
 | |
| 					id: id,
 | |
| 				},
 | |
| 			} )
 | |
| 				.fail( function ( jqXHR ) {
 | |
| 					console.log( jqXHR );
 | |
| 					console.groupEnd();
 | |
| 				} )
 | |
| 				.done( function ( response ) {
 | |
| 					if ( response.success === true ) {
 | |
| 						var data = response.data;
 | |
| 						if ( undefined !== data ) {
 | |
| 							AstraElementorSitesAdmin.templateData = data;
 | |
| 							if ( type == 'site-pages' ) {
 | |
| 								if (
 | |
| 									undefined !==
 | |
| 									data[ 'site-pages-required-plugins' ]
 | |
| 								) {
 | |
| 									AstraElementorSitesAdmin._requiredPluginsMarkup(
 | |
| 										data[ 'site-pages-required-plugins' ]
 | |
| 									);
 | |
| 								}
 | |
| 							} else {
 | |
| 								if (
 | |
| 									undefined !==
 | |
| 									data[ 'post-meta' ][
 | |
| 										'astra-blocks-required-plugins'
 | |
| 									]
 | |
| 								) {
 | |
| 									AstraElementorSitesAdmin._requiredPluginsMarkup(
 | |
| 										PHP.parse(
 | |
| 											data[ 'post-meta' ][
 | |
| 												'astra-blocks-required-plugins'
 | |
| 											]
 | |
| 										)
 | |
| 									);
 | |
| 								}
 | |
| 							}
 | |
| 						}
 | |
| 					}
 | |
| 				} );
 | |
| 		},
 | |
| 
 | |
| 		_requiredPluginsMarkup: function ( requiredPlugins ) {
 | |
| 			if ( '' === requiredPlugins ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			if (
 | |
| 				AstraElementorSitesAdmin.type == 'pages' &&
 | |
| 				astraElementorSites.default_page_builder_sites[
 | |
| 					AstraElementorSitesAdmin.site_id
 | |
| 				][ 'astra-sites-type' ] != undefined &&
 | |
| 				astraElementorSites.default_page_builder_sites[
 | |
| 					AstraElementorSitesAdmin.site_id
 | |
| 				][ 'astra-sites-type' ] != 'free'
 | |
| 			) {
 | |
| 				if ( ! astraElementorSites.license_status ) {
 | |
| 					output =
 | |
| 						'<p class="ast-validate">' +
 | |
| 						astraElementorSites.license_msg +
 | |
| 						'</p>';
 | |
| 
 | |
| 					$elscope.find( '.required-plugins-list' ).html( output );
 | |
| 					$elscope.find( '.ast-tooltip-wrap' ).css( 'opacity', 1 );
 | |
| 					$elscope.find( '.astra-sites-tooltip' ).css( 'opacity', 1 );
 | |
| 
 | |
| 					/**
 | |
| 					 * Enable Demo Import Button
 | |
| 					 * @type number
 | |
| 					 */
 | |
| 					AstraElementorSitesAdmin.requiredPlugins = [];
 | |
| 					AstraElementorSitesAdmin.canImport = true;
 | |
| 					AstraElementorSitesAdmin.canInsert = true;
 | |
| 					$elscope
 | |
| 						.find( '.astra-sites-import-template-action > div' )
 | |
| 						.removeClass( 'disabled' );
 | |
| 					return;
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			let id =
 | |
| 				'blocks' === AstraElementorSitesAdmin.type
 | |
| 					? AstraElementorSitesAdmin.block_id?.replace( 'id-', '' )
 | |
| 					: AstraElementorSitesAdmin.page_id?.replace( 'id-', '' );
 | |
| 
 | |
| 			// Required Required.
 | |
| 			$.ajax( {
 | |
| 				url: astraElementorSites.ajaxurl,
 | |
| 				type: 'POST',
 | |
| 				data: {
 | |
| 					action: 'astra-sites-required_plugins',
 | |
| 					id,
 | |
| 					screen: 'elementor',
 | |
| 					_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 					required_plugins: requiredPlugins,
 | |
| 				},
 | |
| 			} )
 | |
| 				.fail( function ( jqXHR ) {
 | |
| 					console.log( jqXHR );
 | |
| 					console.groupEnd();
 | |
| 				} )
 | |
| 				.done( function ( response ) {
 | |
| 					if ( false === response.success ) {
 | |
| 						$elscope = $( '#ast-sites-modal' );
 | |
| 						$elscope
 | |
| 							.find( '#ast-sites-floating-notice-wrap-id' )
 | |
| 							.show()
 | |
| 							.removeClass( 'error' );
 | |
| 						$elscope
 | |
| 							.find(
 | |
| 								'#ast-sites-floating-notice-wrap-id .ast-sites-floating-notice'
 | |
| 							)
 | |
| 							.show()
 | |
| 							.html(
 | |
| 								'<span class="message">Insufficient Permission. Please contact your Super Admin to allow the install required plugin permissions.<span>'
 | |
| 							);
 | |
| 						$elscope
 | |
| 							.find( '#ast-sites-floating-notice-wrap-id' )
 | |
| 							.addClass( 'error slide-in' )
 | |
| 							.removeClass( 'refreshed-notice' );
 | |
| 					} else {
 | |
| 						var output = '';
 | |
| 
 | |
| 						/**
 | |
| 						 * Count remaining plugins.
 | |
| 						 * @type number
 | |
| 						 */
 | |
| 						var remaining_plugins = 0;
 | |
| 						var required_plugins_markup = '';
 | |
| 
 | |
| 						required_plugins = response.data[ 'required_plugins' ];
 | |
| 
 | |
| 						if (
 | |
| 							response.data[ 'third_party_required_plugins' ]
 | |
| 								.length
 | |
| 						) {
 | |
| 							$(
 | |
| 								response.data[ 'third_party_required_plugins' ]
 | |
| 							).each( function ( index, plugin ) {
 | |
| 								output +=
 | |
| 									'<li class="plugin-card plugin-card-' +
 | |
| 									plugin.slug +
 | |
| 									'" data-slug="' +
 | |
| 									plugin.slug +
 | |
| 									'" data-init="' +
 | |
| 									plugin.init +
 | |
| 									'" data-name="' +
 | |
| 									plugin.name +
 | |
| 									'">' +
 | |
| 									plugin.name +
 | |
| 									'</li>';
 | |
| 							} );
 | |
| 						}
 | |
| 
 | |
| 						/**
 | |
| 						 * Not Installed
 | |
| 						 *
 | |
| 						 * List of not installed required plugins.
 | |
| 						 */
 | |
| 						if (
 | |
| 							typeof required_plugins.notinstalled !== 'undefined'
 | |
| 						) {
 | |
| 							// Add not have installed plugins count.
 | |
| 							remaining_plugins += parseInt(
 | |
| 								required_plugins.notinstalled.length
 | |
| 							);
 | |
| 
 | |
| 							$( required_plugins.notinstalled ).each( function (
 | |
| 								index,
 | |
| 								plugin
 | |
| 							) {
 | |
| 								if ( 'elementor' == plugin.slug ) {
 | |
| 									return;
 | |
| 								}
 | |
| 								output +=
 | |
| 									'<li class="plugin-card plugin-card-' +
 | |
| 									plugin.slug +
 | |
| 									'" data-slug="' +
 | |
| 									plugin.slug +
 | |
| 									'" data-init="' +
 | |
| 									plugin.init +
 | |
| 									'" data-name="' +
 | |
| 									plugin.name +
 | |
| 									'">' +
 | |
| 									plugin.name +
 | |
| 									'</li>';
 | |
| 							} );
 | |
| 						}
 | |
| 
 | |
| 						/**
 | |
| 						 * Inactive
 | |
| 						 *
 | |
| 						 * List of not inactive required plugins.
 | |
| 						 */
 | |
| 						if (
 | |
| 							typeof required_plugins.inactive !== 'undefined'
 | |
| 						) {
 | |
| 							// Add inactive plugins count.
 | |
| 							remaining_plugins += parseInt(
 | |
| 								required_plugins.inactive.length
 | |
| 							);
 | |
| 
 | |
| 							$( required_plugins.inactive ).each( function (
 | |
| 								index,
 | |
| 								plugin
 | |
| 							) {
 | |
| 								if ( 'elementor' == plugin.slug ) {
 | |
| 									return;
 | |
| 								}
 | |
| 								output +=
 | |
| 									'<li class="plugin-card plugin-card-' +
 | |
| 									plugin.slug +
 | |
| 									'" data-slug="' +
 | |
| 									plugin.slug +
 | |
| 									'" data-init="' +
 | |
| 									plugin.init +
 | |
| 									'" data-name="' +
 | |
| 									plugin.name +
 | |
| 									'">' +
 | |
| 									plugin.name +
 | |
| 									'</li>';
 | |
| 							} );
 | |
| 						}
 | |
| 
 | |
| 						/**
 | |
| 						 * Active
 | |
| 						 *
 | |
| 						 * List of not active required plugins.
 | |
| 						 */
 | |
| 						if ( typeof required_plugins.active !== 'undefined' ) {
 | |
| 							$( required_plugins.active ).each( function (
 | |
| 								index,
 | |
| 								plugin
 | |
| 							) {
 | |
| 								if ( 'elementor' == plugin.slug ) {
 | |
| 									return;
 | |
| 								}
 | |
| 								output +=
 | |
| 									'<li class="plugin-card plugin-card-' +
 | |
| 									plugin.slug +
 | |
| 									'" data-slug="' +
 | |
| 									plugin.slug +
 | |
| 									'" data-init="' +
 | |
| 									plugin.init +
 | |
| 									'" data-name="' +
 | |
| 									plugin.name +
 | |
| 									'">' +
 | |
| 									plugin.name +
 | |
| 									'</li>';
 | |
| 							} );
 | |
| 						}
 | |
| 
 | |
| 						if ( '' != output ) {
 | |
| 							output =
 | |
| 								'<li class="plugin-card-head"><strong>' +
 | |
| 								astraElementorSites.install_plugin_text +
 | |
| 								'</strong></li>' +
 | |
| 								output;
 | |
| 							$elscope
 | |
| 								.find( '.required-plugins-list' )
 | |
| 								.html( output );
 | |
| 							$elscope
 | |
| 								.find( '.ast-tooltip-wrap' )
 | |
| 								.css( 'opacity', 1 );
 | |
| 							$elscope
 | |
| 								.find( '.astra-sites-tooltip' )
 | |
| 								.css( 'opacity', 1 );
 | |
| 						}
 | |
| 
 | |
| 						/**
 | |
| 						 * Enable Demo Import Button
 | |
| 						 * @type number
 | |
| 						 */
 | |
| 						AstraElementorSitesAdmin.requiredPlugins =
 | |
| 							response.data[ 'required_plugins' ];
 | |
| 						AstraElementorSitesAdmin[ 'initial-page-refresh' ] =
 | |
| 							AstraElementorSitesAdmin[ 'requiredPlugins' ][
 | |
| 								'notinstalled'
 | |
| 							]?.length ||
 | |
| 							AstraElementorSitesAdmin[ 'requiredPlugins' ][
 | |
| 								'inactive'
 | |
| 							]?.length
 | |
| 								? true
 | |
| 								: false;
 | |
| 						if (
 | |
| 							AstraElementorSitesAdmin[ 'initial-page-refresh' ]
 | |
| 						) {
 | |
| 							document.querySelectorAll(
 | |
| 								'.astra-sites-import-template-action .ast-library-template-insert'
 | |
| 							)[ 0 ].innerText =
 | |
| 								'Install Required Plugins & Import';
 | |
| 						}
 | |
| 						AstraElementorSitesAdmin.canImport = true;
 | |
| 						AstraElementorSitesAdmin.canInsert = true;
 | |
| 						$elscope
 | |
| 							.find( '.astra-sites-import-template-action > div' )
 | |
| 							.removeClass( 'disabled' );
 | |
| 					}
 | |
| 				} );
 | |
| 		},
 | |
| 
 | |
| 		removeAddedParams: function () {
 | |
| 			const urlObj = new URL( window.location.href );
 | |
| 			// Check if the query parameters exist
 | |
| 			if (
 | |
| 				urlObj.searchParams.has( 'remoteST' ) &&
 | |
| 				urlObj.searchParams.has( 'blockID' )
 | |
| 			) {
 | |
| 				// Remove specific query parameters
 | |
| 				urlObj.searchParams.delete( 'remoteST' );
 | |
| 				urlObj.searchParams.delete( 'blockID' );
 | |
| 				urlObj.searchParams.delete( 'type' );
 | |
| 
 | |
| 				// Update the URL in the browser
 | |
| 				window.history.replaceState( {}, '', urlObj.href );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		saveContentAndRefresh: function () {
 | |
| 			const elementorPanel = document.querySelector( '.elementor-panel' ); // Get the Elementor panel element
 | |
| 
 | |
| 			if ( elementorPanel ) {
 | |
| 				const updateButton = elementorPanel.querySelector(
 | |
| 					'#elementor-panel-saver-button-publish'
 | |
| 				); // Find the Elementor update button
 | |
| 
 | |
| 				if ( updateButton ) {
 | |
| 					updateButton.click(); // Trigger a click event on the update button
 | |
| 					let id =
 | |
| 						'blocks' === AstraElementorSitesAdmin.type
 | |
| 							? AstraElementorSitesAdmin.block_id?.replace(
 | |
| 									'id-',
 | |
| 									''
 | |
| 							  )
 | |
| 							: AstraElementorSitesAdmin.page_id?.replace(
 | |
| 									'id-',
 | |
| 									''
 | |
| 							  );
 | |
| 					if ( id ) {
 | |
| 						AstraElementorSitesAdmin.updateURLParams( id );
 | |
| 						window.location.reload(); // Refresh the page
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		updateURLParams: function ( block_id ) {
 | |
| 			// Get the current URL
 | |
| 			var url = new URL( window.location.href );
 | |
| 
 | |
| 			// Create a new URLSearchParams object from the URL's search params
 | |
| 			var searchParams = new URLSearchParams( url.search );
 | |
| 
 | |
| 			let type = AstraElementorSitesAdmin.type;
 | |
| 
 | |
| 			// Add parameters to the searchParams object
 | |
| 			searchParams.append( 'remoteST', 'true' );
 | |
| 			searchParams.append( 'blockID', block_id );
 | |
| 			searchParams.append( 'type', type );
 | |
| 
 | |
| 			// Update the search property of the URL object with the new search params
 | |
| 			url.search = searchParams.toString();
 | |
| 
 | |
| 			// Get the modified URL
 | |
| 			var modifiedUrl = url.toString();
 | |
| 
 | |
| 			// Update the browser's live URL
 | |
| 			window.history.pushState( { path: modifiedUrl }, '', modifiedUrl );
 | |
| 		},
 | |
| 
 | |
| 		_libraryClick: function ( e ) {
 | |
| 			$elscope
 | |
| 				.find( '.elementor-template-library-menu-item' )
 | |
| 				.each( function () {
 | |
| 					$( this ).removeClass( 'elementor-active' );
 | |
| 				} );
 | |
| 			$( this ).addClass( 'elementor-active' );
 | |
| 		},
 | |
| 
 | |
| 		_loadLargeImage: function ( el ) {
 | |
| 			if ( el.hasClass( 'loaded' ) ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			if ( el.parents( '.astra-theme' ).isInViewport() ) {
 | |
| 				var large_img_url = el.data( 'src' ) || '';
 | |
| 				var imgLarge = new Image();
 | |
| 				imgLarge.src = large_img_url;
 | |
| 				imgLarge.onload = function () {
 | |
| 					el.removeClass( 'loading' );
 | |
| 					el.addClass( 'loaded' );
 | |
| 					el.css( 'background-image', "url('" + imgLarge.src + "'" );
 | |
| 				};
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		_loadLargeImages: function () {
 | |
| 			$elscope.find( '.theme-screenshot' ).each( function ( key, el ) {
 | |
| 				AstraElementorSitesAdmin._loadLargeImage( $( el ) );
 | |
| 			} );
 | |
| 		},
 | |
| 
 | |
| 		_close: function ( e ) {
 | |
| 			console.groupEnd( 'Process Done.' );
 | |
| 			$( document ).trigger( 'astra-sites__elementor-close-before' );
 | |
| 			setTimeout( function () {
 | |
| 				$elscope.fadeOut();
 | |
| 				$( 'body' ).removeClass( 'astra-sites__elementor-open' );
 | |
| 			}, 300 );
 | |
| 			$( document ).trigger( 'astra-sites__elementor-close-after' );
 | |
| 		},
 | |
| 
 | |
| 		_open: function ( e ) {
 | |
| 			$( document ).trigger( 'astra-sites__elementor-open-before' );
 | |
| 
 | |
| 			$( 'body' ).addClass( 'astra-sites__elementor-open' );
 | |
| 
 | |
| 			let add_section = $( this ).closest( '.elementor-add-section' );
 | |
| 
 | |
| 			if ( add_section.hasClass( 'elementor-add-section-inline' ) ) {
 | |
| 				AstraElementorSitesAdmin.index = add_section.prevAll().length;
 | |
| 			} else {
 | |
| 				AstraElementorSitesAdmin.index = add_section
 | |
| 					.prev()
 | |
| 					.children().length;
 | |
| 			}
 | |
| 			AstraElementorSitesAdmin._home();
 | |
| 			$elscope.fadeIn();
 | |
| 			if ( $( '.refreshed-notice' ).length == 1 ) {
 | |
| 				setTimeout( function () {
 | |
| 					$( '.refreshed-notice' ).find( '.notice-dismiss' ).click();
 | |
| 				}, 2500 );
 | |
| 			}
 | |
| 			$( document ).trigger( 'astra-sites__elementor-open-after' );
 | |
| 		},
 | |
| 
 | |
| 		_beforeOpen: function ( e ) {
 | |
| 			let userPrefersDark = matchMedia(
 | |
| 				'(prefers-color-scheme: dark)'
 | |
| 			).matches;
 | |
| 			let uiTheme =
 | |
| 				elementor.settings.editorPreferences.model.get( 'ui_theme' );
 | |
| 
 | |
| 			if (
 | |
| 				'dark' === uiTheme ||
 | |
| 				( 'auto' === uiTheme && userPrefersDark )
 | |
| 			) {
 | |
| 				$( 'body' ).addClass( 'ast-sites-dark-mode' );
 | |
| 			} else {
 | |
| 				$( 'body' ).removeClass( 'ast-sites-dark-mode' );
 | |
| 			}
 | |
| 
 | |
| 			// Hide preview page.
 | |
| 			$elscope.find( '.theme-preview' ).hide();
 | |
| 			$elscope.find( '.theme-preview' ).html( '' );
 | |
| 
 | |
| 			// Show site listing page.
 | |
| 			$elscope.find( '.dialog-lightbox-content' ).show();
 | |
| 
 | |
| 			// Hide Back button.
 | |
| 			$elscope.find( '.back-to-layout' ).css( 'visibility', 'hidden' );
 | |
| 			$elscope.find( '.back-to-layout' ).css( 'opacity', '0' );
 | |
| 		},
 | |
| 
 | |
| 		_initSites: function ( e ) {
 | |
| 			AstraElementorSitesAdmin._appendSites(
 | |
| 				astraElementorSites.default_page_builder_sites
 | |
| 			);
 | |
| 			AstraElementorSitesAdmin._goBack();
 | |
| 		},
 | |
| 
 | |
| 		_initBlocks: function ( e ) {
 | |
| 			AstraElementorSitesAdmin._appendBlocks(
 | |
| 				astraElementorSites.astra_blocks
 | |
| 			);
 | |
| 			AstraElementorSitesAdmin._goBack();
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Install Success
 | |
| 		 */
 | |
| 		_installSuccess: function ( event, response ) {
 | |
| 			event.preventDefault();
 | |
| 
 | |
| 			// Transform the 'Install' button into an 'Activate' button.
 | |
| 			var $init = $( '.plugin-card-' + response.slug ).data( 'init' );
 | |
| 			var $name = $( '.plugin-card-' + response.slug ).data( 'name' );
 | |
| 
 | |
| 			// Reset not installed plugins list.
 | |
| 			var pluginsList =
 | |
| 				AstraElementorSitesAdmin.requiredPlugins.notinstalled;
 | |
| 			var curr_plugin = AstraElementorSitesAdmin._getPluginFromQueue(
 | |
| 				response.slug,
 | |
| 				pluginsList
 | |
| 			);
 | |
| 
 | |
| 			AstraElementorSitesAdmin.requiredPlugins.notinstalled =
 | |
| 				AstraElementorSitesAdmin._removePluginFromQueue(
 | |
| 					response.slug,
 | |
| 					pluginsList
 | |
| 				);
 | |
| 
 | |
| 			// WordPress adds "Activate" button after waiting for 1000ms. So we will run our activation after that.
 | |
| 			setTimeout( function () {
 | |
| 				console.log( 'Activating Plugin - ' + curr_plugin.name );
 | |
| 
 | |
| 				$.ajax( {
 | |
| 					url: astraElementorSites.ajaxurl,
 | |
| 					type: 'POST',
 | |
| 					data: {
 | |
| 						action: 'astra-sites-required_plugin_activate',
 | |
| 						init: curr_plugin.init,
 | |
| 						_ajax_nonce: astraElementorSites._ajax_nonce,
 | |
| 					},
 | |
| 				} ).done( function ( result ) {
 | |
| 					if ( result.success ) {
 | |
| 						var pluginsList =
 | |
| 							AstraElementorSitesAdmin.requiredPlugins.inactive;
 | |
| 
 | |
| 						console.log( 'Activated Plugin - ' + curr_plugin.name );
 | |
| 
 | |
| 						// Reset not installed plugins list.
 | |
| 						AstraElementorSitesAdmin.requiredPlugins.inactive =
 | |
| 							AstraElementorSitesAdmin._removePluginFromQueue(
 | |
| 								response.slug,
 | |
| 								pluginsList
 | |
| 							);
 | |
| 
 | |
| 						// Enable Demo Import Button
 | |
| 						AstraElementorSitesAdmin._enableImport();
 | |
| 					}
 | |
| 				} );
 | |
| 			}, 1200 );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Plugin Installation Error.
 | |
| 		 */
 | |
| 		_installError: function ( event, response ) {
 | |
| 			console.log( response );
 | |
| 			console.log( 'Error Installing Plugin - ' + response.slug );
 | |
| 			console.log( response.errorMessage );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Installing Plugin
 | |
| 		 */
 | |
| 		_pluginInstalling: function ( event, args ) {
 | |
| 			console.log( 'Installing Plugin - ' + args.slug );
 | |
| 		},
 | |
| 	};
 | |
| 
 | |
| 	/**
 | |
| 	 * Initialize AstraElementorSitesAdmin
 | |
| 	 */
 | |
| 	$( function () {
 | |
| 		AstraElementorSitesAdmin.init();
 | |
| 	} );
 | |
| } )( jQuery );
 |