Error Monitor Admin

← Dashboard
function getCookie(n){for(var c=document.cookie.split(";"),i=0;ia.startsWith("frontend/")).reduce((a,[,o])=>a+o,0),r=Object.entries(s).filter(([a])=>a.startsWith("backend/")).reduce((a,[,o])=>a+o,0);e.innerHTML=`
In Memory
${t.total_in_memory}
Frontend
${n}
Backend
${r}
Newest
${t.newest?new Date(t.newest).toLocaleTimeString():"\u2014"}
`}function renderFreq(t){const e=document.getElementById("freq-body");if(!t||t.length===0){e.innerHTML='No data';return}e.innerHTML=t.map(s=>` ${esc(s.error_type||"\u2014")} ${esc(s.source)} ${s.count} `).join("")}function renderErrors(t){const e=document.getElementById("errors-body"),s=document.getElementById("no-errors");if(!t||t.length===0){e.innerHTML="",s.style.display="";return}s.style.display="none",e.innerHTML=t.map(n=>` ${new Date(n.created_at).toLocaleString()} ${esc(n.source)} ${esc(n.error_type||"\u2014")}${n.is_transient?' transient':""}
${esc(n.message)}
${esc(n.route||n.page_url||"\u2014")} ${n.user_id?"#"+n.user_id:"\u2014"} ${n.resolved?'resolved':'open'} ${n.resolved?"":``} `).join("")}async function resolve(t){try{await fetch("/api/admin/errors/"+t+"/resolve",{method:"PATCH",headers:{Authorization:"Bearer "+_token}});const e=document.getElementById("row-"+t);e&&(e.cells[6].innerHTML='resolved',e.cells[7].innerHTML="")}catch(e){alert("Failed: "+e.message)}}function esc(t){return String(t||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}