upskill-event-manager/assets/js/astra-advanced-headers-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

493 lines
14 KiB
JavaScript

( function( $ ) {
/**
* Handles logic for the theme layout admin edit interface.
*
* @class AstraPageTitleBarAdminEdit
* @since 1.0
*/
AstraPageTitleBarAdmin = {
/**
* Initializes the theme layout admin edit interface.
*
* @since 1.0
* @access private
* @method _init
*/
_init: function()
{
this._bind();
this._initLayoutSettings();
this._inputFileInit();
},
/**
* Binds events for the theme layout admin edit interface.
*
* @since 1.0
* @access private
* @method _bind
*/
_bind: function()
{
// Instead of updating PHP globals $parent_file, $submenu_file, used following JS for making Custom Layout menu active while editing any post.
$( 'li#menu-appearance.wp-has-current-submenu, li#menu-appearance.wp-has-current-submenu > a' ).removeClass('wp-has-current-submenu');
$( 'li#toplevel_page_' + astraPageHeaderVars.home_slug + ', li#toplevel_page_' + astraPageHeaderVars.home_slug + ' > a' ).removeClass('wp-not-current-submenu').addClass('wp-has-current-submenu');
$( 'li#toplevel_page_' + astraPageHeaderVars.home_slug + ' a[href="edit.php?post_type=astra_adv_header"]' ).parent().addClass('current');
// Call Tooltip
$('.ast-advanced-headers-heading-help').tooltip({
content: function() {
return $(this).prop('title');
},
tooltipClass: 'ast-advanced-headers-ui-tooltip',
position: {
my: 'center top',
at: 'center bottom+10',
},
hide: {
duration: 200,
},
show: {
duration: 200,
},
});
$('.ast-advanced-headers-heading-img-help').tooltip({
content: function() {
return $(this).prop('title');
},
tooltipClass: 'ast-advanced-headers-ui-img-tooltip',
position: {
my: 'center top',
at: 'center bottom+10',
},
hide: {
duration: 0,
},
show: {
duration: 0,
},
});
// Call color picker
$('.ast-advanced-headers-color-picker').wpColorPicker();
// General events
$( '.ast-advanced-header-layout-radio-button-wrap label' ).on( 'click', this._astraPageTitleRadioImagesClicked );
$( '#ast-advanced-headers-tabs ul li a' ).on( 'click', this._astraPageTitleTabsClicked );
$( '#ast-advanced-header-layout-breadcrumb' ).on( 'change', this._astraBreadcrumbChecked );
$( '#ast-advanced-header-layout-merged' ).on( 'change', this._astrPageTitleMergeChecked );
$( '#ast-advanced-header-design-bg-size' ).on( 'change', this._astrPageTitleBgSizeChecked );
$( '#ast-advanced-header-layout-above-header' ).on( 'change', this._astrAboveHeaderChecked );
$( '#ast-advanced-header-layout-below-header' ).on( 'change', this._astrBelowHeaderChecked );
$( '#ast-advanced-headers-design-custom-menu-item' ).on( 'change', this._astrCustomMenuChanged );
$( '#ast-advanced-headers-design-custom-menu-item' ).trigger('change');
// Force disable transparent header on archive pages.
$('input[name="ast-advanced-headers-layout[force-transparent-disabled]"]').on('change', function() {
$('input[name="ast-advanced-headers-layout[force-transparent-disabled]"]').not(this).prop('checked', false);
});
$( '#ast-advanced-header-diff-header-logo' ).on( 'change', this._astrToggleLogo );
$( '#ast-advanced-header-diff-header-retina-logo' ).on( 'change', this._astrToggleRetinaLogo );
},
/**
* Callback for when click button on image upload
* builder is clicked.
*
* @since 1.0
* @access private
* @method _inputFileInit
*/
_inputFileInit: function() {
var file_frame;
window.inputWrapper = '';
$( document.body ).on('click', '.ast-advanced-headers-bg-image-select', function(e) {
e.preventDefault();
var button = $(this);
window.inputWrapper = $(this).closest('.ast-advanced-headers-row-content');
if ( file_frame ) {
file_frame.open();
return;
}
// Create the media frame.
file_frame = wp.media( {
multiple: false
} );
// When an image is selected, run a callback.
file_frame.on( 'select', function() {
var attachment = file_frame.state().get( 'selection' ).first().toJSON();
// place first attachment in field
window.inputWrapper.find( '#ast-advanced-headers-preview-img' ).children('.saved-image').remove();
window.inputWrapper.find( '#ast-advanced-headers-preview-img' ).append('<img src="' + attachment.url + '" width="150" class="saved-image" style="margin-bottom:12px;" />');
window.inputWrapper.find( '.ast-advanced-headers-bg-image-id' ).val( attachment.id );
window.inputWrapper.find( '.ast-advanced-headers-bg-image' ).val( attachment.url );
$('.ast-advanced-headers-bg-image-remove').show();
});
// Finally, open the modal
file_frame.open();
});
$( '.ast-advanced-headers-bg-image-remove' ).on( 'click', function( e ) {
e.preventDefault();
var button = $(this),
closeRow = $(this).closest('.ast-advanced-headers-row-content');
closeRow.find( '#ast-advanced-headers-preview-img img' ).hide();
closeRow.find( '.ast-advanced-headers-bg-image-id' ).val('');
closeRow.find( '.ast-advanced-headers-bg-image' ).val('');
button.hide();
});
// Logo Upload.
$( document.body ).on('click', '.ast-advanced-header-logo-select', function(e) {
e.preventDefault();
var button = $(this);
window.inputWrapper = $(this).closest('.ast-advanced-headers-row-content');
if ( file_frame ) {
file_frame.open();
return;
}
// Create the media frame.
file_frame = wp.media( {
multiple: false
} );
// When an image is selected, run a callback.
file_frame.on( 'select', function() {
var attachment = file_frame.state().get( 'selection' ).first().toJSON();
// place first attachment in field
window.inputWrapper.find( '#ast-advanced-headers-preview-logo' ).children('.saved-image').remove();
window.inputWrapper.find( '#ast-advanced-headers-preview-logo' ).append('<img src="' + attachment.url + '" class="saved-image" style="margin-bottom:12px;max-width:150px;" />');
window.inputWrapper.find( '.ast-advanced-headers-logo-id' ).val( attachment.id );
window.inputWrapper.find( '.ast-advanced-headers-logo' ).val( attachment.url );
window.inputWrapper.find('.ast-advanced-headers-logo-remove').show();
});
// Finally, open the modal
file_frame.open();
});
$( '.ast-advanced-headers-logo-remove' ).on( 'click', function( e ) {
e.preventDefault();
var button = $(this),
closeRow = $(this).closest('.ast-advanced-headers-row-content');
closeRow.find( '#ast-advanced-headers-preview-logo img' ).hide();
closeRow.find( '.ast-advanced-headers-logo-id' ).val('');
closeRow.find( '.ast-advanced-headers-logo' ).val('');
button.hide();
});
},
/**
* Callback for when the button to launch the
* builder is clicked.
*
* @since 1.0
* @access private
* @method _astraBreadcrumbChecked
*/
_astraBreadcrumbChecked: function( e )
{
if( $(this).is(':checked') ){
$('.ast-advanced-headers-row.breadcrumb-row').show();
}
else{
$('.ast-advanced-headers-row.breadcrumb-row').hide();
}
},
/**
* Callback for when the button to launch the
* builder is clicked.
*
* @since 1.0
* @access private
* @method _astrPageTitleBgSizeChecked
*/
_astrPageTitleBgSizeChecked: function( e )
{
if( 'custom-bg-size' == $(this).val() ){
$('.ast-advanced-haeders-design-bg-custom-size-wrap').show();
}
else{
$('.ast-advanced-haeders-design-bg-custom-size-wrap').hide();
}
},
/**
* Callback for when the above header is checked
*
* @since 1.0
* @access private
* @method _astrAboveHeaderChecked
*/
_astrAboveHeaderChecked: function( e )
{
if( $(this).is(':checked') ) {
$('.ast-advanced-headers-row.ast-above-header-required').show();
}
else{
$('.ast-advanced-headers-row.ast-above-header-required').hide();
}
},
/**
* Callback for when the Below header is checked
*
* @since 1.0
* @access private
* @method _astrBelowHeaderChecked
*/
_astrBelowHeaderChecked: function( e )
{
if( $(this).is(':checked') ) {
$('.ast-advanced-headers-row.ast-below-header-required').show();
}
else{
$('.ast-advanced-headers-row.ast-below-header-required').hide();
}
},
/**
* Callback for when the Below header is checked
*
* @since 1.0
* @access private
* @method _astrCustomMenuChanged
*/
_astrCustomMenuChanged: function( e )
{
var custom_menu = $(this).val();
if( 'default' != custom_menu && 'none' != custom_menu ) {
$('.ast-advanced-headers-row.ast-custom-menu-item-enabled').show();
}
else{
$('.ast-advanced-headers-row.ast-custom-menu-item-enabled').hide();
}
if( 'text-html' == custom_menu ) {
$('.ast-advanced-headers-row.ast-custom-menu-item-text-enabled').show();
}
else{
$('.ast-advanced-headers-row.ast-custom-menu-item-text-enabled').hide();
}
if( 'search' == custom_menu ) {
$('#ast-advanced-headers-design-search-style').parents('.ast-advanced-headers-row').show();
}
else{
$('#ast-advanced-headers-design-search-style').parents('.ast-advanced-headers-row').hide();
}
},
/**
* Callback for when the button to launch the
* builder is clicked.
*
* @since 1.0
* @access private
* @method _astrPageTitleMergeChecked
*/
_astrPageTitleMergeChecked: function( e )
{
if( $(this).is(':checked') ){
$('.require-merge-ast-advanced-header').show();
}
else{
$('.require-merge-ast-advanced-header').hide();
}
},
/**
* Callback for when the button to launch the
* builder is clicked.
*
* @since 1.0
* @access private
* @method _astraPageTitleTabsClicked
*/
_astraPageTitleTabsClicked: function( e )
{
e.preventDefault();
var current = $(this),
href = current.attr('href');
//custom ui tabs select
$('#ast-advanced-headers-tabs ul li a').removeClass('nav-tab-active');
$(current).addClass('nav-tab-active');
$('.ast-adv-headers-tabs-section').removeClass('tab-active');
$(href).addClass('tab-active');
tabId = current.attr( 'id' );
$('#advanced-headers-current-tab').val( tabId );
},
/**
* Init the layout settings based on type.
*
* @since 1.0
* @access private
* @method _initLayoutSettings
*/
_initLayoutSettings: function()
{
var type = $( 'input[name="ast-advanced-headers-layout[layout]"]:checked' ).val(),
// all element dependent ti title bar layout.
allStylingWrap = $( '.ast-advanced-header-layout-breadcrumb-wrap, .ast-advanced-headers-table.design-wrap' ),
allNotRequired = $('.ast-required-no-headers'),
breadcrumbCheck = $( '#ast-advanced-header-layout-breadcrumb' ),
mergeHeaderCheck = $ ( '#ast-advanced-header-layout-merged'),
backgroundSizeCheck = $( '#ast-advanced-header-design-bg-size' ).val(),
differentLogoCheck = $( '#ast-advanced-header-diff-header-logo' ),
differentRetinaLogoCheck = $( '#ast-advanced-header-diff-header-retina-logo' );
// If Advanced Headers is desabled.
if ( 'disable' == type ) {
// Hide all dependent element for advanced header layout.
allStylingWrap.hide();
allNotRequired.show();
$('.ast-transparent-notice-wrap').show();
}
else{
allNotRequired.hide();
$('.ast-transparent-notice-wrap').hide();
}
if( ! breadcrumbCheck.is(':checked') ) {
$('.ast-advanced-headers-row.breadcrumb-row').hide();
}
if( ! mergeHeaderCheck.is(':checked') ) {
$('.require-merge-ast-advanced-header').hide();
}
if ( 'custom-bg-size' != backgroundSizeCheck ) {
$('.ast-advanced-haeders-design-bg-custom-size-wrap').hide();
}
if ( ! $( '#ast-advanced-header-layout-above-header' ).is(':checked') ) {
$('.ast-advanced-headers-row.ast-above-header-required').hide();
}
if ( ! $( '#ast-advanced-header-layout-below-header' ).is(':checked') ) {
$('.ast-advanced-headers-row.ast-below-header-required').hide();
}
if( differentLogoCheck.is(':checked') ) {
$('.ast-logo-settings-wrap').show();
$('.ast-diff-header-retina-logo').show();
} else {
$('.ast-logo-settings-wrap').hide();
$('.ast-diff-header-retina-logo').hide();
}
if( differentRetinaLogoCheck.is(':checked') && differentLogoCheck.is(':checked') ) {
$('.ast-retina-logo-settings-wrap').show();
} else {
$('.ast-retina-logo-settings-wrap').hide();
}
},
/**
* Radio button Images clicked.
*
* @since 1.0
* @access private
* @method _astraPageTitleRadioImagesClicked
*/
_astraPageTitleRadioImagesClicked: function()
{
var allRadioLabels = $('.ast-advanced-header-layout-radio-button-wrap label'),
radioButtonWrap = $('.ast-advanced-header-layout-radio-button-wrap'),
allStylingWrap = $('.ast-advanced-header-layout-breadcrumb-wrap, .ast-advanced-headers-table.design-wrap'),
allNotRequired = $('.ast-required-no-headers');
allRadioLabels.attr("checked",false);
$(this).attr("checked", true);
radioButtonWrap.children( "input[type='radio']" ).attr("checked",false);
$(this).children( "input[type='radio']" ).attr("checked",true);
// Disable Breadcrumb for no advanced header layout.
if ( 'disable' == $(this).children( "input[type='radio']" ).val()) {
allStylingWrap.hide();
allNotRequired.show();
$('.ast-transparent-notice-wrap').show();
}
else{
allStylingWrap.show();
allNotRequired.hide();
$('.ast-transparent-notice-wrap').hide();
}
},
_astrToggleLogo: function()
{
if( $(this).is(':checked') ){
$( ".ast-logo-settings-wrap" ).show();
$( ".ast-diff-header-retina-logo" ).show();
if( $(this).is(':checked') && $( '#ast-advanced-header-diff-header-retina-logo' ).is(':checked') ){
$( ".ast-retina-logo-settings-wrap" ).show();
} else {
$( ".ast-retina-logo-settings-wrap" ).hide();
}
} else {
$( ".ast-logo-settings-wrap" ).hide();
$( ".ast-diff-header-retina-logo" ).hide();
if( $(this).is(':checked') && $( '#ast-advanced-header-diff-header-retina-logo' ).is(':checked') ){
$( ".ast-retina-logo-settings-wrap" ).show();
} else {
$( ".ast-retina-logo-settings-wrap" ).hide();
}
}
},
_astrToggleRetinaLogo: function()
{
if( $(this).is(':checked') && $( '#ast-advanced-header-diff-header-logo' ).is(':checked') ){
$( ".ast-retina-logo-settings-wrap" ).show();
} else {
$( ".ast-retina-logo-settings-wrap" ).hide();
}
}
};
$( function() { AstraPageTitleBarAdmin._init(); } );
} )( jQuery );