Files
SethDiscordBot/WebUI_Old/Views/Home/Index.cshtml
2025-04-22 23:40:00 +03:00

60 lines
2.1 KiB
Plaintext

@{
var isRunning = ViewBag.IsRunning ?? false;
ViewBag.Title = "Console Log Viewer";
}
<div class="container mt-5">
<div class="row">
<div class="col-md-8">
<h4>Console Log</h4>
<div id="consoleLog" class="border p-3 bg-dark text-white" style="height: 400px; overflow-y: scroll; font-family: monospace;"></div>
</div>
<div class="col-md-4">
<h4>Controls</h4>
<form method="post" asp-action="StartApplication">
<button type="submit" class="btn btn-success mb-2">Start Application</button>
</form>
@if (isRunning)
{
<form method="post" asp-action="StopApplication">
<button type="submit" class="btn btn-danger mb-2">Stop Application</button>
</form>
<form method="post" asp-action="LoadPlugins">
<button type="submit" class="btn btn-info mb-2">Load Plugins</button>
</form>
}
</div>
</div>
</div>
@section Scripts {
<script>
let lastLogCount = 0;
function fetchLogs() {
fetch("/Home/GetLogs")
.then(res => res.json())
.then(logs => {
const logDiv = document.getElementById("consoleLog");
if (logs.length !== lastLogCount) {
logDiv.innerHTML = logs.map(line => formatLog(line)).join('');
logDiv.scrollTop = logDiv.scrollHeight;
lastLogCount = logs.length;
}
});
}
function formatLog(line) {
if (line.includes("[Error]")) return `<div style="color: #ff4d4d;">${line}</div>`;
if (line.includes("[Warning]")) return `<div style="color: #ffa500;">${line}</div>`;
if (line.includes("[Debug]")) return `<div style="color: #88f;">${line}</div>`;
return `<div>${line}</div>`;
}
setInterval(fetchLogs, 2000);
fetchLogs();
</script>
}