upskill-event-manager/assets/js/key-admin.js
Ben Reed cdc5ea85f4 feat: Add comprehensive CSS, JavaScript and theme asset infrastructure
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
2025-08-11 16:20:31 -03:00

107 lines
2.9 KiB
JavaScript

( function( $, obj ) {
obj.init = function() {
$('a.uplink-authorize').on( 'click', function (e) {
if ( $( this ).attr('disabled') === 'disabled' ) {
e.preventDefault();
}
} );
$( '.stellarwp-uplink-license-key-field' ).each( function() {
var $el = $( this );
var slug = $el.data( 'plugin-slug' );
var $field = $el.find( 'input[type="text"]' );
var $oauth = $el.find( `a[data-plugin-slug="${slug}"]`);
if ( '' === $field.val().trim() ) {
$el.find( '.license-test-results' ).hide();
obj.disableAuthorizeButton( $oauth );
}
obj.validateKey( $el );
} );
$( document ).on( 'change', '.stellarwp-uplink-license-key-field', function() {
const $el = $( this );
obj.validateKey( $el );
} );
};
obj.disableAuthorizeButton = function( $button ) {
$button.attr( 'aria-disabled', 'true' );
$button.attr( 'disabled', 'disabled' );
}
obj.enableAuthorizeButton = function( $button ) {
$button.removeAttr( 'aria-disabled' );
$button.removeAttr( 'disabled' );
}
obj.validateKey = function( $el ) {
const field = $el.find( 'input[type="text"]' )
const action = $el.data( 'action' );
const slug = $el.data( 'plugin-slug' );
const $oauth = $el.find( `a[data-plugin-slug="${slug}"]`);
let $validityMessage = $el.find( '.key-validity' );
if ( '' === field.val().trim() ) {
obj.disableAuthorizeButton( $oauth );
return;
}
$( $el ).find( '.license-test-results' ).show();
$( $el ).find( '.tooltip' ).hide();
$( $el ).find( '.ajax-loading-license' ).show();
$validityMessage.hide();
// Strip whitespace from key
let licenseKey = field.val().trim();
field.val( licenseKey );
const nonceField = $($el).find('.wp-nonce-fluent') || $($el).find('.wp-nonce');
const data = {
action: window[`stellarwp_config_${action}`]['action'],
slug: slug,
key: licenseKey,
_wpnonce: nonceField.val()
};
$.post(ajaxurl, data, function (response) {
$validityMessage.show();
$validityMessage.html(response.message);
switch (response.status) {
case 1:
$validityMessage.addClass('valid-key').removeClass('invalid-key');
obj.enableAuthorizeButton( $oauth );
if ( $oauth.hasClass( 'not-authorized' ) ) {
$oauth.attr( 'href', response.auth_url );
}
break;
case 2:
$validityMessage.addClass('valid-key service-msg');
obj.enableAuthorizeButton( $oauth );
if ( $oauth.hasClass( 'not-authorized' ) ) {
$oauth.attr( 'href', response.auth_url );
}
break;
default:
$validityMessage.addClass('invalid-key').removeClass('valid-key');
obj.disableAuthorizeButton( $oauth );
break;
}
}).fail(function(error) {
$validityMessage.show();
$validityMessage.html(error.message);
obj.disableAuthorizeButton( $oauth );
}).always(function() {
$($el).find('.ajax-loading-license').hide();
});
};
$( function() {
obj.init();
} );
} )( jQuery, {} );