Skip to content

Commit 53a6338

Browse files
committed
Auto refresh console when required
1 parent c6a39c9 commit 53a6338

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

assets/js/console.js

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,40 @@
1+
const LINE_BREAK = "
";
2+
3+
async function updateConsoleIfNeeded() {
4+
let serverGuid = localStorage.getItem("activeServerGuid");
5+
6+
if (serverGuid == null) {
7+
return;
8+
}
9+
10+
let lines = $('#serverConsole').val().split('\n');
11+
let length = lines.length - 1;
12+
13+
let secondLastLine = lines[length - 1];
14+
let lastLine = lines[length];
15+
16+
await axios.post(`/api/server/console/outdated`, { "Guid": serverGuid, "SecondLastLine": secondLastLine, "LastLine": lastLine }, {
17+
headers: { "Authorization": `Bearer ${token}` }
18+
19+
}).then((response) => {
20+
21+
if (response.data){
22+
loadConsole(serverGuid)
23+
}
24+
}
25+
).catch((err) => console.error(err))
26+
}
27+
128
async function loadConsole(serverGuid) {
2-
$("#serverConsole").text("");
29+
clearConsole();
330

431
await axios.post(`/api/server/console`, { "Guid": serverGuid, "AmountOfLines": 50, "Reversed": false }, {
532
headers: { "Authorization": `Bearer ${token}` }
633

734
}).then((response) => {
835

936
response.data.forEach(line => {
10-
$("#serverConsole").append(line + "
");
37+
$("#serverConsole").append(LINE_BREAK + line);
1138
});
1239
scrollToBottom();
1340
}
@@ -31,6 +58,10 @@ async function sendCommand(serverGuid) {
3158
loadConsole(serverGuid);
3259
}
3360

61+
function clearConsole() {
62+
$("#serverConsole").text("");
63+
}
64+
3465
function scrollToBottom() {
3566
$("#serverConsole").scrollTop($("#serverConsole")[0].scrollHeight);
3667
}

assets/js/panel.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ let token = localStorage.getItem("token");
66

77
function loadServers() {
88
setInterval(updateServers, 3000);
9+
setInterval(updateConsoleIfNeeded, 3000);
10+
911
axios.get(`/api/servers`, {
1012
headers: {
1113
"Authorization": `Bearer ${token}`
@@ -52,6 +54,8 @@ function loadDashboard(control) {
5254

5355
let data = $(control).data();
5456
let server = data.server;
57+
58+
localStorage.setItem("activeServerGuid", server.Guid);
5559

5660
$(".serverDashboard").html(`
5761
<div class="ui inverted segments">

0 commit comments

Comments
 (0)