upskill-event-manager/assets/js/hvac-community-events.js
ben 6039be6fb9 fix: resolve event form field rendering issues and JavaScript compatibility
- Fix missing CSS file causing 404 error (hvac-tec-tickets.css)
- Add custom field type handling in HVAC_Event_Form_Builder for venue/organizer/categories
- Restore missing form fields (venue, organizer, category dropdowns now populated)
- Fix cross-browser JavaScript loading restrictions (was Safari-only)
- Add jQuery noConflict mode compatibility for WordPress
- Add missing hvacToggleAdvancedOptions function for advanced options toggle
- Increment plugin version to 2.0.1 for cache busting

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-26 09:12:56 -03:00

96 lines
No EOL
3.5 KiB
JavaScript

/**
* HVAC Community Events Main JavaScript
*
* Global JavaScript functionality for the HVAC Community Events plugin
*/
(function($) {
'use strict';
// WORDPRESS COMPATIBILITY: Ensure jQuery is available in noConflict mode
if (typeof $ === 'undefined' && typeof jQuery !== 'undefined') {
$ = jQuery;
}
// Wait for DOM ready
$(document).ready(function() {
// Initialize any global functionality here
console.log('HVAC Community Events plugin loaded');
// Add active class to current menu item
var currentPath = window.location.pathname;
$('.hvac-dashboard-nav a, .hvac-toolbar a').each(function() {
var linkPath = $(this).attr('href');
if (linkPath && currentPath.indexOf(linkPath.replace(window.location.origin, '')) !== -1) {
$(this).addClass('active');
}
});
// Handle any AJAX forms globally
$(document).on('submit', '.hvac-ajax-form', function(e) {
e.preventDefault();
var $form = $(this);
var $submitBtn = $form.find('button[type="submit"], input[type="submit"]');
var originalText = $submitBtn.text();
// Disable submit button
$submitBtn.prop('disabled', true).text('Processing...');
// Submit via AJAX
$.ajax({
url: hvac_ajax.ajax_url,
type: 'POST',
data: $form.serialize() + '&nonce=' + hvac_ajax.nonce,
success: function(response) {
if (response.success) {
// Handle success
if (response.data.redirect) {
window.location.href = response.data.redirect;
} else if (response.data.message) {
alert(response.data.message);
}
} else {
// Handle error
alert(response.data || 'An error occurred. Please try again.');
}
},
error: function() {
alert('An error occurred. Please try again.');
},
complete: function() {
// Re-enable submit button
$submitBtn.prop('disabled', false).text(originalText);
}
});
});
// Initialize advanced fields as hidden
$('.advanced-field').hide();
});
// Global functions for form functionality
window.hvacToggleAdvancedOptions = function() {
// WORDPRESS COMPATIBILITY: Use jQuery instead of $ due to noConflict mode
const button = jQuery('.toggle-advanced-options');
const icon = button.find('.toggle-icon');
const text = button.find('.toggle-text');
const advancedFields = jQuery('.advanced-field');
// Toggle visibility of advanced fields
advancedFields.slideToggle(300);
// Toggle button state
if (advancedFields.is(':visible')) {
icon.removeClass('dashicons-arrow-down-alt2').addClass('dashicons-arrow-up-alt2');
text.text('Hide Advanced Options');
button.addClass('expanded');
} else {
icon.removeClass('dashicons-arrow-up-alt2').addClass('dashicons-arrow-down-alt2');
text.text('Show Advanced Options');
button.removeClass('expanded');
}
};
})(jQuery);