- 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>
96 lines
No EOL
3.5 KiB
JavaScript
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); |