Merge pull request #875 from skrashevich/logs-reverse-order
feat(webui): reverse log order to display newest first
This commit is contained in:
+24
-6
@@ -37,6 +37,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<button id="clean">Clean</button>
|
<button id="clean">Clean</button>
|
||||||
<button id="update">Auto Update: ON</button>
|
<button id="update">Auto Update: ON</button>
|
||||||
|
<button id="reverse">Reverse Log Order: OFF</button>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<table>
|
<table>
|
||||||
@@ -68,9 +69,21 @@
|
|||||||
.replace(/\n/g, '<br>');
|
.replace(/\n/g, '<br>');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let reverseBtn = document.getElementById('reverse');
|
||||||
|
let update = document.getElementById('update');
|
||||||
|
|
||||||
|
let reverseOrder = false;
|
||||||
|
let autoUpdateEnabled = true;
|
||||||
|
|
||||||
|
reverseBtn.textContent = `Reverse Log Order: ${reverseOrder ? 'ON' : 'OFF'}`;
|
||||||
|
update.textContent = `Auto Update: ${autoUpdateEnabled ? 'ON' : 'OFF'}`;
|
||||||
|
|
||||||
function applyLogStyling(jsonlines) {
|
function applyLogStyling(jsonlines) {
|
||||||
const KEYS = ['time', 'level', 'message'];
|
const KEYS = ['time', 'level', 'message'];
|
||||||
const lines = JSON.parse('[' + jsonlines.trimEnd().replaceAll('\n', ',') + ']');
|
let lines = JSON.parse('[' + jsonlines.trimEnd().replaceAll('\n', ',') + ']');
|
||||||
|
if (reverseOrder) {
|
||||||
|
lines = lines.reverse();
|
||||||
|
}
|
||||||
return lines.map(line => {
|
return lines.map(line => {
|
||||||
const ts = new Date(line['time']);
|
const ts = new Date(line['time']);
|
||||||
const msg = Object.keys(line).reduce((msg, key) => {
|
const msg = Object.keys(line).reduce((msg, key) => {
|
||||||
@@ -95,19 +108,24 @@
|
|||||||
|
|
||||||
reload();
|
reload();
|
||||||
|
|
||||||
// Handle auto-update switch
|
update.textContent = `Auto Update: ${autoUpdateEnabled ? 'ON' : 'OFF'}`;
|
||||||
let autoUpdateEnabled = true;
|
|
||||||
|
|
||||||
const update = document.getElementById('update');
|
|
||||||
update.addEventListener('click', () => {
|
update.addEventListener('click', () => {
|
||||||
autoUpdateEnabled = !autoUpdateEnabled;
|
autoUpdateEnabled = !autoUpdateEnabled;
|
||||||
update.textContent = `Auto Update: ${autoUpdateEnabled ? 'ON' : 'OFF'}`;
|
update.textContent = `Auto Update: ${autoUpdateEnabled ? 'ON' : 'OFF'}`;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Toggle log order
|
||||||
|
reverseBtn.textContent = `Reverse Log Order: ${reverseOrder ? 'ON' : 'OFF'}`;
|
||||||
|
reverseBtn.addEventListener('click', () => {
|
||||||
|
reverseOrder = !reverseOrder;
|
||||||
|
reverseBtn.textContent = `Reverse Log Order: ${reverseOrder ? 'ON' : 'OFF'}`;
|
||||||
|
reload(); // Reload logs to apply the new order
|
||||||
|
});
|
||||||
|
|
||||||
// Reload the logs every 5 seconds
|
// Reload the logs every 5 seconds
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
if (autoUpdateEnabled) reload();
|
if (autoUpdateEnabled) reload();
|
||||||
}, 5000);
|
}, 5000);
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user