78
function ToggleSend() {
let style = document.getElementById("sendframe").style;
if (style.top !== "100%") {
style.top = "100%";
} else {
style.top = "200%";
}
}
function UtcToLocal(utcTime) {
let date = new Date();
date.setTime(Date.parse(utcTime));
let minutes = date.getMinutes().toString().padStart(2, '0');
let hours = date.getHours().toString().padStart(2, '0');
let day = date.getDate().toString().padStart(2, '0');
let month = (date.getMonth() + 1).toString().padStart(2, '0');
let year = date.getFullYear();
return `${hours}:${minutes} ${day}-${month}-${year}`;
}
function HtmlEscape(str) {
return str.replaceAll("&", "&")
.replaceAll("<", "<")
.replaceAll(">", ">")
.replaceAll("\"", """)
.replaceAll("'", "'")
.replaceAll("{", "{")
.replaceAll("}", "}");
}
function GetAddrUser(addr) {
let name = addr.match(/"([^"]+)"/);
if (name) {
return name[1];
}
name = addr.match(/<([^>]+)>/);
if (name) {
return name[1];
}
return addr;
}
function OpenMail(id) {
let frame = document.getElementById("contentframe");
frame.style.visibility = "visible";
frame.style.width = "100%";
frame.src = "/open?id=" + id ;
}
async function SearchInbox() {
document.getElementById("inboxframe").innerHTML = "";
let q = document.getElementById("q").value;
try {
let response = await fetch("/search?q=" + q);
if (!response.ok) throw new Error(JSON.stringify({code: response.status}));
let result = await response.json();
result["HtmlMetas"].forEach(element => {
let date = UtcToLocal(element["Date"]);
let subject = HtmlEscape(element["Subject"]);
let to = HtmlEscape(GetAddrUser(element["To"]));
let from = HtmlEscape(GetAddrUser(element["From"]));
let id = element["Id"];
let inbox = document.getElementById("inboxframe");
inbox.innerHTML += `<div class="inbox-entry" onclick="OpenMail('${id}')">
<div class="sidebyside"><p class="inbox-from">${from}</p><p class="inbox-to">${to}</p><p class="inbox-date">${date}</p></div>
<p class="inbox-subject">${subject}</p>
<hr></div>`;
});
} catch (errjson) {
let err = JSON.parse(errjson.message);
console.log(err);
if (err.code === 404) document.getElementById("inboxframe").innerHTML = "<p>No results found.</p>";
else document.getElementById("inboxframe").innerHTML = "<p>An error occurred.</p>";
}
}