first
This commit is contained in:
commit
f4be03ceba
1826 changed files with 830924 additions and 0 deletions
|
|
@ -0,0 +1,78 @@
|
|||
import { a as attr, e as escape_html, b as ensure_array_like, c as attr_class, s as stringify } from "../../../chunks/index2.js";
|
||||
function _page($$renderer, $$props) {
|
||||
$$renderer.component(($$renderer2) => {
|
||||
let logs = [];
|
||||
let loading = true;
|
||||
let error = "";
|
||||
let filter = "";
|
||||
let hours = 1;
|
||||
async function loadLogs() {
|
||||
loading = true;
|
||||
error = "";
|
||||
try {
|
||||
const res = await fetch(`/api/logs?hours=${hours}&filter=${encodeURIComponent(filter)}`);
|
||||
if (res.ok) {
|
||||
const data = await res.json();
|
||||
logs = data.data || [];
|
||||
} else {
|
||||
error = "Failed to load logs";
|
||||
}
|
||||
} catch (e) {
|
||||
error = "Connection error";
|
||||
console.error("Failed to load logs:", e);
|
||||
} finally {
|
||||
loading = false;
|
||||
}
|
||||
}
|
||||
function getPriorityClass(priority) {
|
||||
const p = priority.toLowerCase();
|
||||
if (p === "err" || p === "error") return "error";
|
||||
if (p === "warning" || p === "warn") return "warning";
|
||||
if (p === "info") return "info";
|
||||
return "";
|
||||
}
|
||||
$$renderer2.push(`<div class="header svelte-1lsf4ps"><h2>Mail Logs</h2> <div class="controls svelte-1lsf4ps"><label class="svelte-1lsf4ps">Hours: `);
|
||||
$$renderer2.select(
|
||||
{ value: hours, onchange: loadLogs, class: "" },
|
||||
($$renderer3) => {
|
||||
$$renderer3.option({ value: 1 }, ($$renderer4) => {
|
||||
$$renderer4.push(`Last hour`);
|
||||
});
|
||||
$$renderer3.option({ value: 6 }, ($$renderer4) => {
|
||||
$$renderer4.push(`Last 6 hours`);
|
||||
});
|
||||
$$renderer3.option({ value: 24 }, ($$renderer4) => {
|
||||
$$renderer4.push(`Last 24 hours`);
|
||||
});
|
||||
$$renderer3.option({ value: 48 }, ($$renderer4) => {
|
||||
$$renderer4.push(`Last 48 hours`);
|
||||
});
|
||||
},
|
||||
"svelte-1lsf4ps"
|
||||
);
|
||||
$$renderer2.push(`</label> <label class="svelte-1lsf4ps">Filter: <input type="text"${attr("value", filter)} placeholder="Filter logs..." class="svelte-1lsf4ps"/></label> <button class="svelte-1lsf4ps">Refresh</button></div></div> `);
|
||||
if (loading) {
|
||||
$$renderer2.push("<!--[0-->");
|
||||
$$renderer2.push(`<p>Loading...</p>`);
|
||||
} else if (error) {
|
||||
$$renderer2.push("<!--[1-->");
|
||||
$$renderer2.push(`<p class="error svelte-1lsf4ps">${escape_html(error)}</p>`);
|
||||
} else if (logs.length === 0) {
|
||||
$$renderer2.push("<!--[2-->");
|
||||
$$renderer2.push(`<p>No log entries found.</p>`);
|
||||
} else {
|
||||
$$renderer2.push("<!--[-1-->");
|
||||
$$renderer2.push(`<div class="log-container svelte-1lsf4ps"><!--[-->`);
|
||||
const each_array = ensure_array_like(logs);
|
||||
for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
|
||||
let entry = each_array[$$index];
|
||||
$$renderer2.push(`<div${attr_class(`log-entry ${stringify(getPriorityClass(entry.priority))}`, "svelte-1lsf4ps")}><span class="timestamp svelte-1lsf4ps">${escape_html(entry.timestamp)}</span> <span class="priority svelte-1lsf4ps">[${escape_html(entry.priority)}]</span> <span class="message">${escape_html(entry.message)}</span></div>`);
|
||||
}
|
||||
$$renderer2.push(`<!--]--></div>`);
|
||||
}
|
||||
$$renderer2.push(`<!--]-->`);
|
||||
});
|
||||
}
|
||||
export {
|
||||
_page as default
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue