Auto refresh

This commit is contained in:
aceberg 2024-08-28 13:59:48 +07:00
parent 1ab69ba1ea
commit 4ddb03719f
3 changed files with 44 additions and 13 deletions

View file

@ -0,0 +1,21 @@
let ref = false;
let refInterval;
autoRefresh();
function toggleRefresh() {
ref = !ref;
autoRefresh()
}
function autoRefresh() {
if (ref) {
const timeout = document.getElementById("ref-timeout").value;
console.log("Refresh timeout", timeout);
refInterval = setInterval(loadAddrs, timeout * 1000);
} else {
clearInterval(refInterval);
}
}

View file

@ -17,11 +17,7 @@ function sortByAny(someArray, field) {
if (field != oldField) {
if (field == 'IP') {
someArray.sort((a, b) => {
const num1 = Number(a.IP.split(".").map((num) => (`000${num}`).slice(-3) ).join(""));
const num2 = Number(b.IP.split(".").map((num) => (`000${num}`).slice(-3) ).join(""));
return num1-num2;
});
someArray.sort((a, b) => sortIP(a, b, true));
} else {
someArray.sort(byFieldDown(field));
}
@ -30,11 +26,7 @@ function sortByAny(someArray, field) {
} else {
if (field == 'IP') {
someArray.sort((a, b) => {
const num1 = Number(a.IP.split(".").map((num) => (`000${num}`).slice(-3) ).join(""));
const num2 = Number(b.IP.split(".").map((num) => (`000${num}`).slice(-3) ).join(""));
return num2-num1;
});
someArray.sort((a, b) => sortIP(a, b, false));
} else {
someArray.sort(byFieldUp(field));
}
@ -51,4 +43,15 @@ function byFieldUp(fieldName){
function byFieldDown(fieldName){
return (a, b) => a[fieldName] > b[fieldName] ? 1 : -1;
}
function sortIP(a, b, down) {
const num1 = Number(a.IP.split(".").map((num) => (`000${num}`).slice(-3) ).join(""));
const num2 = Number(b.IP.split(".").map((num) => (`000${num}`).slice(-3) ).join(""));
if (down) {
return num1-num2;
} else {
return num2-num1;
}
}

View file

@ -3,14 +3,21 @@
<script src="/fs/public/js/index.js"></script>
<script src="/fs/public/js/sort.js"></script>
<script src="/fs/public/js/filter-search.js"></script>
<script src="/fs/public/js/refresh.js"></script>
<body>
<div class="container-lg">
<div class="row">
<div class="col-md mt-4 mb-4">
<div class="col-md mt-2">
<div class="form-check form-switch">
<input type="hidden" id="ref-timeout" value="{{ .Config.Timeout }}">
<input class="form-check-input" type="checkbox" id="ref" onclick="toggleRefresh()" title="Auto refresh">
</div>
</div>
</div>
<div class="row">
<div class="col-md mt-2 mb-4">
<div class="card border-primary">
<div class="card-header">
<!-- <div class="d-flex justify-content-between">
<div class="d-flex justify-content-left gap-3"> -->
<div class="row">
<div class="col-md mt-1 mb-1">
<button class="btn btn-outline-primary" disabled>Filter by</button>