document.addEventListener("DOMContentLoaded", () => { const eventsList = document.getElementById("eventsList"); if (!eventsList) return; fetch("/assets/json/announcements.json") .then(response => { if (!response.ok) { throw new Error( "announcements.json not found" ); } return response.json(); }) .then(announcements => { if (!Array.isArray(announcements)) { throw new Error( "Invalid announcements data" ); } /* ================================= SORT BY NEWEST DATE ================================= */ announcements.sort((a, b) => { return new Date(b.date) - new Date(a.date); }); /* ================================= LATEST 3 ================================= */ const latestAnnouncements = announcements.slice(0, 3); /* ================================= NO DATA ================================= */ if (!latestAnnouncements.length) { eventsList.innerHTML = `

No announcements available.

`; return; } /* ================================= CREATE CARDS ================================= */ eventsList.innerHTML = latestAnnouncements.map(item => { const date = new Date(item.date); const day = date.getDate(); const month = date .toLocaleDateString( "en-IN", { month: "short" } ) .toUpperCase(); return `
${day} ${month}
${item.type}

${item.title}

${item.description}

`; }).join(""); }) .catch(error => { console.error( "Announcements Error:", error ); eventsList.innerHTML = `

Announcements could not be loaded.

`; }); }); document.addEventListener("DOMContentLoaded", () => { const teamList = document.getElementById("teamList"); if (!teamList) return; fetch("/assets/json/teams.json") .then(response => { if (!response.ok) { throw new Error("teams.json not found"); } return response.json(); }) .then(teams => { if (!Array.isArray(teams)) { throw new Error("Invalid teams data"); } /* ================================= SHOW ONLY TOP 5 MEMBERS ================================= */ const topTeams = teams.slice(0, 5); /* ================================= NO DATA ================================= */ if (topTeams.length === 0) { teamList.innerHTML = `

No team members available.

`; return; } /* ================================= CREATE TOP 5 TEAM CARDS ================================= */ teamList.innerHTML = topTeams .map(member => { return `
${member.name ||

${member.name || "Team Member"}

${member.role || "Member"}
`; }) .join(""); }) .catch(error => { console.error( "Teams Error:", error ); teamList.innerHTML = `

Team members could not be loaded.

`; }); }); // ================================================================ // galleryList home page 6 image only // ================================================================ document.addEventListener("DOMContentLoaded", () => { const galleryList = document.getElementById("galleryList"); if (!galleryList) return; fetch("/assets/json/gallery.json") .then(response => { if (!response.ok) { throw new Error("gallery.json not found"); } return response.json(); }) .then(gallery => { if (!Array.isArray(gallery)) { throw new Error("Invalid gallery data"); } /* ================================ RANDOM 6 GALLERY IMAGES ================================= */ const randomGallery = [...gallery] .sort(() => Math.random() - 0.5) .slice(0, 6); /* ================================ SHOW 6 RANDOM ITEMS ================================= */ galleryList.innerHTML = randomGallery.map(item => { return ` `; }).join(""); }) .catch(error => { console.error( "Gallery Error:", error ); galleryList.innerHTML = ` `; }); }); // /////////////////////////////////////////////////////////////////