/** * HVAC Announcements View Handler * Handles modal popup for viewing announcements * * @package HVAC_Community_Events */ jQuery(document).ready(function($) { 'use strict'; // Cache DOM elements var $modal = $('#announcement-modal'); var $modalContent = $modal.find('.modal-body'); var $modalClose = $modal.find('.modal-close'); var isLoading = false; // Handle announcement link clicks $(document).on('click', '.announcement-link', function(e) { e.preventDefault(); if (isLoading) { return; } var announcementId = $(this).data('id'); if (!announcementId) { console.error('No announcement ID found'); return; } openAnnouncementModal(announcementId); }); // Handle modal close button $modalClose.on('click', function() { closeModal(); }); // Close modal when clicking outside $modal.on('click', function(e) { if (e.target === this) { closeModal(); } }); // Close modal with ESC key $(document).on('keydown', function(e) { if (e.key === 'Escape' && $modal.is(':visible')) { closeModal(); } }); /** * Open announcement in modal */ function openAnnouncementModal(announcementId) { isLoading = true; // Show modal with loading state $modalContent.html('
Loading announcement...
' + errorMsg + '
Error loading announcement. Please try again.