/** * 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 $modalTitle = $modal.find('.modal-title'); var $modalMeta = $modal.find('.modal-meta'); var $modalContentText = $modal.find('.modal-content-text'); var $modalClose = $modal.find('.modal-close'); var isLoading = false; // Handle announcement link clicks (both old and new styles) $(document).on('click', '.announcement-link, .read-more-btn', 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 $modalTitle.text('Loading...'); $modalMeta.empty(); $modalContentText.html('
No content available.
'); // Focus on modal for accessibility $modal.attr('aria-hidden', 'false'); $modalContentText.focus(); } else { var errorMsg = response.data || 'Failed to load announcement'; $modalTitle.text('Error'); $modalMeta.empty(); $modalContentText.html('' + errorMsg + '
Error loading announcement. Please try again.