(()=>{ const NOW = Date.now(); let tmp = new Date(); tmp.setHours(0); tmp.setMinutes(0); tmp.setSeconds(0); let today = tmp.getTime(); if (tmp.getDay() === 0) tmp.setDate(tmp.getDate() -7); if (tmp.getDay() !== 1) tmp.setDate(tmp.getDate()-tmp.getDay() +1); const ONE_WEEK = tmp.getTime(); console.log(tmp); tmp.setTime(today); tmp.setDate(1); const ONE_MONTH = tmp.getTime(); console.log(tmp); for (let i of ["All"].concat(Object.keys(ACCESS.reduce((acc, i) => { acc[i.publicId] = true; return acc; }, {})).sort())) { let node = document.createElement("option"); node.textContent = i; document.getElementById("relSource").appendChild(node); } function selectSource(source) { let _access = source === "All" ? ACCESS : ACCESS.filter(i => i.publicId === source); let lastAccess = _access.reduce((prev, i) => (prev && prev.accessTime > i.accessTime) ? prev : i, null) document.getElementById("size").textContent = FILE_SIZE +'o'; document.getElementById('totalAccessCount').textContent = _access.length; document.getElementById('weekAccess').textContent = _access.reduce((acc, i) => acc + (i.accessTime >= NOW -ONE_WEEK ? 1 : 0), 0); document.getElementById('monthAccess').textContent = _access.reduce((acc, i) => acc + (i.accessTime >= NOW -ONE_MONTH ? 1 : 0), 0); document.getElementById('lastAccess').textContent = new Date(lastAccess?.accessTime); } selectSource(document.getElementById("relSource").selectedOptions?.[0]?.textContent || "All"); document.getElementById("relSource").addEventListener("change", () => selectSource(document.getElementById("relSource").selectedOptions?.[0]?.textContent || "All")); })();