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
		
			
				
	
	
		
			151 lines
		
	
	
		
			No EOL
		
	
	
		
			4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			No EOL
		
	
	
		
			4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| (function($){
 | |
| 
 | |
| 	BSFCoreLicenseForm = {
 | |
| 
 | |
| 		/**
 | |
| 		 * Init
 | |
| 		 */
 | |
| 		init: function()
 | |
| 		{
 | |
| 			this._showFormOnLoad();
 | |
| 			this._bind();
 | |
| 		},
 | |
| 		
 | |
| 		/**
 | |
| 		 * Binds events
 | |
| 		 */
 | |
| 		_bind: function()
 | |
| 		{
 | |
| 			$( document ).on('click', '.bsf-core-license-form-btn', BSFCoreLicenseForm._showFormOnClick);
 | |
| 			$( document ).on('click', '.bsf-core-license-form-close-btn', BSFCoreLicenseForm._closeForm);
 | |
| 			$( document ).on('click', '.bsf-core-license-form .bsf-core-license-form-overlay', BSFCoreLicenseForm._closeForm);
 | |
| 		},
 | |
| 
 | |
| 		_changeURL: function( url )
 | |
| 		{
 | |
| 			History.pushState(null, null, url);
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Show form on Load
 | |
| 		 */
 | |
| 		_showFormOnLoad: function( e )
 | |
| 		{
 | |
| 			if( BSFCoreLicenseForm._getParamFromURL('bsf-inline-license-form') ) {
 | |
| 				var slug = BSFCoreLicenseForm._getParamFromURL('bsf-inline-license-form');
 | |
| 				BSFCoreLicenseForm._showForm( slug );
 | |
| 			} 
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Show form on Click
 | |
| 		 */
 | |
| 		_showFormOnClick: function( e )
 | |
| 		{
 | |
| 			// don't override click action if the link is not from the popup form.
 | |
| 			var licenseFormURl = $( this ).attr('href') || '';
 | |
| 
 | |
| 			if ( null !==  BSFCoreLicenseForm._getParamFromURL('bsf-inline-license-form', licenseFormURl) ||
 | |
| 				true === $( this ).hasClass('bsf-core-plugin-link') ) {
 | |
| 				e.preventDefault();
 | |
| 				var slug = $( this ).attr('plugin-slug') || '';
 | |
| 				var url_params = {'bsf-inline-license-form':slug};
 | |
| 				BSFCoreLicenseForm._showForm( slug );
 | |
| 
 | |
| 				// Change URL.
 | |
| 				if( ! BSFCoreLicenseForm._getParamFromURL('bsf-inline-license-form') ) {
 | |
| 					var current_url = window.location.href;
 | |
| 					var current_url_separator = ( window.location.href.indexOf( "?" ) === -1 ) ? "?" : "&";
 | |
| 
 | |
| 					var new_url = current_url + current_url_separator + decodeURIComponent( $.param( url_params ) );
 | |
| 					
 | |
| 					BSFCoreLicenseForm._changeURL( new_url );
 | |
| 				}
 | |
| 			}
 | |
| 
 | |
| 			
 | |
| 
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Show form by slug
 | |
| 		 */
 | |
| 		_showForm: function( slug )
 | |
| 		{
 | |
| 			if( $(".bsf-core-license-form[plugin-slug='"+slug+"']").length ) {
 | |
| 				$(".bsf-core-license-form[plugin-slug='"+slug+"']").show();
 | |
| 				$('body').addClass('bsf-core-license-form-open');
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Close form.
 | |
| 		 */
 | |
| 		_closeForm: function( e )
 | |
| 		{
 | |
| 			e.preventDefault();
 | |
| 
 | |
| 			$('.bsf-core-license-form').hide();
 | |
| 			$('body').removeClass('bsf-core-license-form-open');
 | |
| 
 | |
| 			if( BSFCoreLicenseForm._getParamFromURL('bsf-inline-license-form') ) {
 | |
| 
 | |
| 				var url_params = BSFCoreLicenseForm._getQueryStrings();
 | |
| 				delete url_params['bsf-inline-license-form'];
 | |
| 				delete url_params['bsf-inline-license-form'];
 | |
| 				delete url_params['license_action'];
 | |
| 				delete url_params['token'];
 | |
| 				delete url_params['product_id'];
 | |
| 				delete url_params['purchase_key'];
 | |
| 				delete url_params['success'];
 | |
| 				delete url_params['status'];
 | |
| 				delete url_params['message'];
 | |
| 				delete url_params['debug'];
 | |
| 				delete url_params['activation_method'];
 | |
| 
 | |
| 				var current_url = window.location.href;
 | |
| 				var root_url = current_url.substr(0, current_url.indexOf('?')); 
 | |
| 				if( jQuery.isEmptyObject( url_params ) ) {
 | |
| 					var new_url = root_url + decodeURIComponent( $.param( url_params ) );
 | |
| 				} else {
 | |
| 					var current_url_separator = ( root_url.indexOf( "?" ) === -1 ) ? "?" : "&";
 | |
| 					var new_url = root_url + current_url_separator + decodeURIComponent( $.param( url_params ) );
 | |
| 				}
 | |
| 
 | |
| 				// Change URL.
 | |
| 				BSFCoreLicenseForm._changeURL( new_url );
 | |
| 			}
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Get URL param.
 | |
| 		 */
 | |
| 		_getParamFromURL: function(name, url)
 | |
| 		{
 | |
| 		    if (!url) url = window.location.href;
 | |
| 		    name = name.replace(/[\[\]]/g, "\\$&");
 | |
| 		    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
 | |
| 		        results = regex.exec(url);
 | |
| 		    if (!results) return null;
 | |
| 		    if (!results[2]) return '';
 | |
| 		    return decodeURIComponent(results[2].replace(/\+/g, " "));
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Get query strings.
 | |
| 		 */
 | |
| 		_getQueryStrings( str )
 | |
| 		{
 | |
| 			return (str || document.location.search).replace(/(^\?)/,'').split("&").map(function(n){return n = n.split("="),this[n[0]] = n[1],this}.bind({}))[0];
 | |
| 		}
 | |
| 
 | |
| 	};
 | |
| 
 | |
| 	/**
 | |
| 	 * Initialization
 | |
| 	 */
 | |
| 	$(function(){
 | |
| 		BSFCoreLicenseForm.init();
 | |
| 	});
 | |
| 
 | |
| })(jQuery); |