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
		
			
				
	
	
		
			170 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			170 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* global wpforms_admin_settings_stripe, wpforms_admin */
 | |
| 
 | |
| /**
 | |
|  * Stripe integration settings script.
 | |
|  *
 | |
|  * @since 1.8.2
 | |
|  */
 | |
| 
 | |
| const WPFormsSettingsStripe = window.WPFormsSettingsStripe || ( function( document, window, $ ) {
 | |
| 	/**
 | |
| 	 * Elements holder.
 | |
| 	 *
 | |
| 	 * @since 1.8.2
 | |
| 	 *
 | |
| 	 * @type {Object}
 | |
| 	 */
 | |
| 	const el = {};
 | |
| 
 | |
| 	/**
 | |
| 	 * Runtime variables.
 | |
| 	 *
 | |
| 	 * @since 1.8.2
 | |
| 	 *
 | |
| 	 * @type {Object}
 | |
| 	 */
 | |
| 	const vars = {
 | |
| 		alertTitle: wpforms_admin.heads_up,
 | |
| 		alertContent: wpforms_admin_settings_stripe.mode_update,
 | |
| 		ok: wpforms_admin.ok,
 | |
| 		hideClassName: 'wpforms-hide',
 | |
| 	};
 | |
| 
 | |
| 	/**
 | |
| 	 * Public functions and properties.
 | |
| 	 *
 | |
| 	 * @since 1.8.2
 | |
| 	 */
 | |
| 	const app = {
 | |
| 
 | |
| 		/**
 | |
| 		 * Start the engine.
 | |
| 		 *
 | |
| 		 * @since 1.8.2
 | |
| 		 */
 | |
| 		init() {
 | |
| 			$( app.ready );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Document ready.
 | |
| 		 *
 | |
| 		 * @since 1.8.2
 | |
| 		 */
 | |
| 		ready() {
 | |
| 			app.setup();
 | |
| 			app.bindEvents();
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Setup. Prepare some variables.
 | |
| 		 *
 | |
| 		 * @since 1.8.2
 | |
| 		 */
 | |
| 		setup() {
 | |
| 			// Cache DOM elements.
 | |
| 			el.$wrapper = $( '.wpforms-admin-content-payments' );
 | |
| 			el.$liveConnectionBlock = $( '.wpforms-stripe-connection-status-live' );
 | |
| 			el.$testConnectionBlock = $( '.wpforms-stripe-connection-status-test' );
 | |
| 			el.$testModeCheckbox = $( '#wpforms-setting-stripe-test-mode' );
 | |
| 			el.copyButton = $( '#wpforms-setting-row-stripe-webhooks-endpoint-set .wpforms-copy-to-clipboard' );
 | |
| 			el.webhookEndpointUrl = $( 'input#wpforms-stripe-webhook-endpoint-url' );
 | |
| 			el.webhookMethod = $( 'input[name="stripe-webhooks-communication"]' );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Bind events.
 | |
| 		 *
 | |
| 		 * @since 1.8.2
 | |
| 		 */
 | |
| 		bindEvents() {
 | |
| 			el.$wrapper
 | |
| 				.on( 'change', '#wpforms-setting-stripe-test-mode', app.triggerModeSwitchAlert );
 | |
| 			el.copyButton
 | |
| 				.on( 'click', app.copyWebhooksEndpoint );
 | |
| 			el.webhookMethod
 | |
| 				.on( 'change', app.onMethodChange );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Conditionally show Stripe mode switch warning.
 | |
| 		 *
 | |
| 		 * @since 1.8.2
 | |
| 		 */
 | |
| 		triggerModeSwitchAlert() {
 | |
| 			if ( el.$testModeCheckbox.is( ':checked' ) ) {
 | |
| 				el.$liveConnectionBlock.addClass( vars.hideClassName );
 | |
| 				el.$testConnectionBlock.removeClass( vars.hideClassName );
 | |
| 			} else {
 | |
| 				el.$testConnectionBlock.addClass( vars.hideClassName );
 | |
| 				el.$liveConnectionBlock.removeClass( vars.hideClassName );
 | |
| 			}
 | |
| 
 | |
| 			if ( $( '#wpforms-setting-row-stripe-connection-status .wpforms-connected' ).is( ':visible' ) ) {
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			$.alert( {
 | |
| 				title: vars.alertTitle,
 | |
| 				content: vars.alertContent,
 | |
| 				icon: 'fa fa-exclamation-circle',
 | |
| 				type: 'orange',
 | |
| 				buttons: {
 | |
| 					confirm: {
 | |
| 						text: vars.ok,
 | |
| 						btnClass: 'btn-confirm',
 | |
| 						keys: [ 'enter' ],
 | |
| 					},
 | |
| 				},
 | |
| 			} );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Copy webhooks endpoint URL to clipboard.
 | |
| 		 *
 | |
| 		 * @since 1.8.4
 | |
| 		 *
 | |
| 		 * @param {Object} event Event object.
 | |
| 		 */
 | |
| 		copyWebhooksEndpoint( event ) {
 | |
| 			event.preventDefault();
 | |
| 
 | |
| 			// Use Clipboard API for modern browsers and HTTPS connections, in other cases use old-fashioned way.
 | |
| 			if ( navigator.clipboard ) {
 | |
| 				navigator.clipboard.writeText( el.webhookEndpointUrl.val() ).then(
 | |
| 					function() {
 | |
| 						el.copyButton.find( 'span' ).removeClass( 'dashicons-admin-page' ).addClass( 'dashicons-yes-alt' );
 | |
| 					}
 | |
| 				);
 | |
| 
 | |
| 				return;
 | |
| 			}
 | |
| 
 | |
| 			el.webhookEndpointUrl.attr( 'disabled', false ).focus().select();
 | |
| 
 | |
| 			document.execCommand( 'copy' );
 | |
| 
 | |
| 			el.copyButton.find( 'span' ).removeClass( 'dashicons-admin-page' ).addClass( 'dashicons-yes-alt' );
 | |
| 
 | |
| 			el.webhookEndpointUrl.attr( 'disabled', true );
 | |
| 		},
 | |
| 
 | |
| 		/**
 | |
| 		 * Update the endpoint URL.
 | |
| 		 *
 | |
| 		 * @since 1.8.4
 | |
| 		 */
 | |
| 		onMethodChange() {
 | |
| 			const checked = el.webhookMethod.filter( ':checked' ).val(),
 | |
| 				newUrl = wpforms_admin_settings_stripe.webhook_urls[ checked ];
 | |
| 
 | |
| 			el.webhookEndpointUrl.val( newUrl );
 | |
| 		},
 | |
| 	};
 | |
| 
 | |
| 	// Provide access to public functions/properties.
 | |
| 	return app;
 | |
| }( document, window, jQuery ) );
 | |
| 
 | |
| // Initialize.
 | |
| WPFormsSettingsStripe.init();
 |