mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2025-08-25 00:15:06 +03:00
Peers ordering fully moved in gu
This commit is contained in:
parent
08c8fc27d0
commit
e253b64d43
3 changed files with 12 additions and 16 deletions
|
@ -297,16 +297,10 @@ ui.getConnectedPeers = function () {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
var regexMulticast = /:\/\/\[fe80::/;
|
|
||||||
ui.updateConnectedPeersHandler = function (peers) {
|
ui.updateConnectedPeersHandler = function (peers) {
|
||||||
$("peers").innerText = "";
|
$("peers").innerText = "";
|
||||||
var regexStrip = /%[^\]]*/gm;
|
var regexStrip = /%[^\]]*/gm;
|
||||||
var sorted = peers.map(function (peer) {
|
peers.forEach(function (peer) {
|
||||||
return { "url": peer["remote"], "isMulticast": peer["remote"].match(regexMulticast) };
|
|
||||||
}).sort(function (a, b) {
|
|
||||||
return a.isMulticast > b.isMulticast;
|
|
||||||
});
|
|
||||||
sorted.forEach(function (peer) {
|
|
||||||
var row = $("peers").appendChild(document.createElement('div'));
|
var row = $("peers").appendChild(document.createElement('div'));
|
||||||
row.className = "overflow-ellipsis";
|
row.className = "overflow-ellipsis";
|
||||||
var flag = row.appendChild(document.createElement("span"));
|
var flag = row.appendChild(document.createElement("span"));
|
||||||
|
@ -320,7 +314,7 @@ ui.updateStatus = function (peers) {
|
||||||
if (peers) {
|
if (peers) {
|
||||||
if (peers.length) {
|
if (peers.length) {
|
||||||
var isNonMulticastExists = peers.filter(function (peer) {
|
var isNonMulticastExists = peers.filter(function (peer) {
|
||||||
return !peer["remote"].match(regexMulticast);
|
return !peer.multicast;
|
||||||
}).length;
|
}).length;
|
||||||
status = isNonMulticastExists ? "st-multicast" : "st-connected";
|
status = isNonMulticastExists ? "st-multicast" : "st-connected";
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -284,13 +284,10 @@ ui.getConnectedPeers = () =>
|
||||||
fetch('api/peers')
|
fetch('api/peers')
|
||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
|
|
||||||
const regexMulticast = /:\/\/\[fe80::/;
|
|
||||||
ui.updateConnectedPeersHandler = (peers) => {
|
ui.updateConnectedPeersHandler = (peers) => {
|
||||||
$("peers").innerText = "";
|
$("peers").innerText = "";
|
||||||
const regexStrip = /%[^\]]*/gm;
|
const regexStrip = /%[^\]]*/gm;
|
||||||
const sorted = peers.map(peer => ({"url": peer["remote"], "isMulticast": peer["remote"].match(regexMulticast)}))
|
peers.forEach(peer => {
|
||||||
.sort((a, b) => a.isMulticast > b.isMulticast);
|
|
||||||
sorted.forEach(peer => {
|
|
||||||
let row = $("peers").appendChild(document.createElement('div'));
|
let row = $("peers").appendChild(document.createElement('div'));
|
||||||
row.className = "overflow-ellipsis"
|
row.className = "overflow-ellipsis"
|
||||||
let flag = row.appendChild(document.createElement("span"));
|
let flag = row.appendChild(document.createElement("span"));
|
||||||
|
@ -306,7 +303,7 @@ ui.updateStatus = peers => {
|
||||||
let status = "st-error";
|
let status = "st-error";
|
||||||
if(peers) {
|
if(peers) {
|
||||||
if(peers.length) {
|
if(peers.length) {
|
||||||
const isNonMulticastExists = peers.filter(peer => !peer["remote"].match(regexMulticast)).length;
|
const isNonMulticastExists = peers.filter(peer => !peer.multicast).length;
|
||||||
status = isNonMulticastExists ? "st-multicast" : "st-connected";
|
status = isNonMulticastExists ? "st-multicast" : "st-connected";
|
||||||
} else {
|
} else {
|
||||||
status = "st-connecting"
|
status = "st-connecting"
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
"net/url"
|
"net/url"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"archive/zip"
|
"archive/zip"
|
||||||
"time"
|
"time"
|
||||||
|
@ -197,11 +198,15 @@ func (a *RestServer) apiPeersHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
"bytes_recvd": p.RXBytes,
|
"bytes_recvd": p.RXBytes,
|
||||||
"bytes_sent": p.TXBytes,
|
"bytes_sent": p.TXBytes,
|
||||||
"uptime": p.Uptime.Seconds(),
|
"uptime": p.Uptime.Seconds(),
|
||||||
|
"mulicast": strings.Contains(p.Remote, "[fe80::"),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
sort.SliceStable(response, func(i, j int) bool {
|
sort.Slice(response, func(i, j int) bool {
|
||||||
if response[i]["port"].(uint64) == response[j]["port"].(uint64) {
|
if !response[i]["mulicast"].(bool) && response[j]["mulicast"].(bool) {
|
||||||
return response[i]["priority"].(uint64) < response[j]["priority"].(uint64)
|
return true
|
||||||
|
}
|
||||||
|
if response[i]["priority"].(uint64) < response[j]["priority"].(uint64) {
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
return response[i]["port"].(uint64) < response[j]["port"].(uint64)
|
return response[i]["port"].(uint64) < response[j]["port"].(uint64)
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue