1import { jsonToFormdata, fetchData, showLoading } from "./helper-modules.js"; 2 3document.addEventListener("DOMContentLoaded", () => { 4 const eventsContent = document.querySelector(".events-content"); 5 const prevMonth = document.getElementById("datepicker-prev"); 6 const nextMonth = document.getElementById("datepicker-next"); 7 const eventsMonthAndYear = document.querySelector(".events-month-year"); 8 9 const generateAjaxData = (travelTo = " 0 months", limit = 4) => { 10 return { 11 lang: script.lang, 12 action: "fetch_events", 13 nonce: events.nonce, 14 current_date: eventsMonthAndYear.dataset.date, 15 travel_to: travelTo, 16 limit: limit, 17 }; 18 }; 19 20 const fetchRequestedEvents = async (url, data) => { 21 showLoading(eventsContent, events.loadingImage); 22 23 const res = await fetchData(url, data); 24 25 if (!res.success) { 26 eventsContent.innerHTML = `<h3> ${events.ajaxFailed} </h3>`; 27 return; 28 } 29 30 eventsContent.innerHTML = res.events_html; 31 eventsMonthAndYear.dataset.date = res.new_date; 32 eventsMonthAndYear.innerHTML = `${res.new_month} ${res.new_year}`; 33 }; 34 35 if (window.__eventsInitial && !window.location.pathname.includes("cw-events")) { 36 eventsContent.innerHTML = window.__eventsInitial.events_html; 37 eventsMonthAndYear.dataset.date = window.__eventsInitial.new_date; 38 eventsMonthAndYear.innerHTML = `${window.__eventsInitial.new_month} ${window.__eventsInitial.new_year}`; 39 } else { 40 const data = window.location.pathname.includes("cw-events") ? generateAjaxData(" 0 months", -1) : generateAjaxData(); 41 const formData = jsonToFormdata(data); 42 fetchRequestedEvents(events.ajaxUrl, formData); 43 } 44 45 prevMonth.addEventListener("click", (e) => { 46 const limit = prevMonth.classList.contains("from-archive") ? -1 : 4; 47 const data = generateAjaxData(" -1 months", limit); 48 const formData = jsonToFormdata(data); 49 50 fetchRequestedEvents(events.ajaxUrl, formData); 51 }); 52 53 nextMonth.addEventListener("click", (e) => { 54 const limit = nextMonth.classList.contains("from-archive") ? -1 : 4; 55 const data = generateAjaxData(" +1 months", limit); 56 const formData = jsonToFormdata(data); 57 58 fetchRequestedEvents(events.ajaxUrl, formData); 59 }); 60});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.