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
134 lines
3.7 KiB
JavaScript
134 lines
3.7 KiB
JavaScript
/**
|
|
* Initializes in a Strict env the code that manages the Stellar Installer buttons.
|
|
*
|
|
* @since 1.0.0
|
|
*
|
|
* @param {Object} $ jQuery
|
|
* @param {Object} hooks WP Hooks
|
|
* @param {Object} obj window.stellarwp.installer
|
|
*
|
|
* @return {void}
|
|
*/
|
|
|
|
( function( $, hooks, document ) {
|
|
'use strict';
|
|
|
|
/**
|
|
* Initialize the necessary varaibles for StellarWP libraries such that
|
|
* they are isolated from other instances of this library in the wild.
|
|
*/
|
|
// BEGIN: stellarwp library initialization.
|
|
const currentScript = typeof document.currentScript !== 'undefined' ? document.currentScript : document.scripts[document.scripts.length - 1];
|
|
const namespace = currentScript.getAttribute( 'data-stellarwp-namespace' );
|
|
if ( namespace === null ) {
|
|
console.info( 'The stellarwp/installer library failed to initialize because the data-stellarwp-namespace attribute could not be read from the script tag.' );
|
|
return;
|
|
}
|
|
window.stellarwp = window.stellarwp || {};
|
|
window.stellarwp[ namespace ] = window.stellarwp[ namespace ] || {};
|
|
// END: stellarwp library initialization.
|
|
|
|
// If the library has already been initialized, bail.
|
|
if ( typeof window.stellarwp[ namespace ].installer === 'object' ) {
|
|
return;
|
|
}
|
|
|
|
window.stellarwp[ namespace ].installer = JSON.parse( currentScript.getAttribute( 'data-stellarwp-data' ) );
|
|
const obj = window.stellarwp[ namespace ].installer;
|
|
const $document = $( document );
|
|
|
|
/**
|
|
* Gets the AJAX request data.
|
|
*
|
|
* @since 1.0.0
|
|
*
|
|
* @param {Element|jQuery} $button The button where the configuration data is.
|
|
*
|
|
* @return {Object} data
|
|
*/
|
|
obj.getData = ( $button ) => {
|
|
const data = {
|
|
'action': $button.data( 'action' ),
|
|
'request': $button.data( 'request-action' ),
|
|
'slug': $button.data( 'slug' ),
|
|
'_wpnonce': $button.data( 'nonce' ),
|
|
};
|
|
|
|
return data;
|
|
};
|
|
|
|
/**
|
|
* Handles the plugin install AJAX call.
|
|
*
|
|
* @since 1.0.0
|
|
*/
|
|
obj.handleInstall = ( event ) => {
|
|
const $button = $( event.target );
|
|
const ajaxUrl = obj.ajaxurl;
|
|
const data = obj.getData( $button );
|
|
const requestType = $button.data( 'request-action' );
|
|
|
|
$button.addClass( obj.busyClass );
|
|
$button.prop( 'disabled', true );
|
|
|
|
if ( 'install' === requestType ) {
|
|
$button.text( $button.data( 'installing-label' ) );
|
|
} else if ( 'activate' === requestType ) {
|
|
$button.text( $button.data( 'activating-label' ) );
|
|
}
|
|
|
|
$.post( ajaxUrl, data, ( response ) => {
|
|
$button.removeClass( obj.busyClass );
|
|
$button.prop( 'disabled', false );
|
|
|
|
if ( 'undefined' === typeof response.data || 'object' !== typeof response.data ) {
|
|
return;
|
|
}
|
|
|
|
if ( response.success ) {
|
|
if ( 'install' === requestType ) {
|
|
$button.text( $button.data( 'installed-label' ) );
|
|
} else if ( 'activate' === requestType ) {
|
|
$button.text( $button.data( 'activated-label' ) );
|
|
}
|
|
|
|
if ( $button.data('redirect-url') ) {
|
|
location.replace( $button.data('redirect-url') );
|
|
}
|
|
} else {
|
|
hooks.doAction(
|
|
'stellarwp_installer_' + $button.data( 'hook-prefix' ) + '_error',
|
|
event.data.selector,
|
|
$button.data( 'slug' ),
|
|
data.action,
|
|
response.data.message,
|
|
$button.data( 'hook-prefix' )
|
|
);
|
|
}
|
|
} );
|
|
}
|
|
|
|
/**
|
|
* Handles the initialization of the notice actions.
|
|
*
|
|
* @since 1.0.0
|
|
*
|
|
* @return {void}
|
|
*/
|
|
obj.ready = ( event ) => {
|
|
for ( const key in obj.selectors ) {
|
|
$document.on(
|
|
'click',
|
|
obj.selectors[ key ],
|
|
{
|
|
slug: key,
|
|
selector: obj.selectors[ key ]
|
|
},
|
|
obj.handleInstall
|
|
);
|
|
}
|
|
};
|
|
|
|
// Configure on document ready.
|
|
$document.ready( obj.ready );
|
|
} )( window.jQuery, window.wp.hooks, document );
|