/** * HVAC Community Events Admin JavaScript */ (function($) { 'use strict'; $(document).ready(function() { // Handle settings form submission $('.hvac-settings-form').on('submit', function(e) { var $form = $(this); var $submitBtn = $form.find('input[type="submit"]'); // Update button text to show saving $submitBtn.val('Saving...'); }); // Tab navigation - only for hash-based tabs // The settings page uses URL parameters for tabs, so we don't need to handle those $('.nav-tab').each(function() { var $tab = $(this); var href = $tab.attr('href'); // Only attach click handler for hash links if (href && href.charAt(0) === '#') { $tab.on('click', function(e) { e.preventDefault(); // Update active tab $('.nav-tab').removeClass('nav-tab-active'); $tab.addClass('nav-tab-active'); // Show/hide tab content $('.hvac-tab-content').hide(); // Only try to show content if href is a valid selector (starts with #) if (href && href.charAt(0) === '#') { $(href).show(); } // Update URL hash without reload if (history.pushState) { history.pushState(null, null, href); } }); } }); // Show active tab on load (only for hash-based tabs) var hash = window.location.hash; if (hash && hash.charAt(0) === '#') { var $activeTab = $('.nav-tab').filter(function() { return $(this).attr('href') === hash; }); if ($activeTab.length) { $activeTab.trigger('click'); } } // Prevent duplicate content rendering var $adminContent = $('.hvac-admin-content-wrapper'); if ($adminContent.length > 1) { console.warn('Duplicate admin content detected, removing duplicates'); $adminContent.not(':first').remove(); } // Zoho connection test $('#test-zoho-connection').on('click', function(e) { e.preventDefault(); var $button = $(this); var originalText = $button.text(); $button.text('Testing...').prop('disabled', true); $.ajax({ url: ajaxurl, type: 'POST', data: { action: 'hvac_zoho_test_connection', nonce: hvac_admin.nonce }, success: function(response) { if (response.success) { alert('Connection successful!'); } else { alert('Connection failed: ' + response.data); } }, error: function() { alert('An error occurred while testing the connection.'); }, complete: function() { $button.text(originalText).prop('disabled', false); } }); }); }); })(jQuery);