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) {
|
||||
$("peers").innerText = "";
|
||||
var regexStrip = /%[^\]]*/gm;
|
||||
var sorted = peers.map(function (peer) {
|
||||
return { "url": peer["remote"], "isMulticast": peer["remote"].match(regexMulticast) };
|
||||
}).sort(function (a, b) {
|
||||
return a.isMulticast > b.isMulticast;
|
||||
});
|
||||
sorted.forEach(function (peer) {
|
||||
peers.forEach(function (peer) {
|
||||
var row = $("peers").appendChild(document.createElement('div'));
|
||||
row.className = "overflow-ellipsis";
|
||||
var flag = row.appendChild(document.createElement("span"));
|
||||
|
@ -320,7 +314,7 @@ ui.updateStatus = function (peers) {
|
|||
if (peers) {
|
||||
if (peers.length) {
|
||||
var isNonMulticastExists = peers.filter(function (peer) {
|
||||
return !peer["remote"].match(regexMulticast);
|
||||
return !peer.multicast;
|
||||
}).length;
|
||||
status = isNonMulticastExists ? "st-multicast" : "st-connected";
|
||||
} else {
|
||||
|
|
|
@ -284,13 +284,10 @@ ui.getConnectedPeers = () =>
|
|||
fetch('api/peers')
|
||||
.then((response) => response.json())
|
||||
|
||||
const regexMulticast = /:\/\/\[fe80::/;
|
||||
ui.updateConnectedPeersHandler = (peers) => {
|
||||
$("peers").innerText = "";
|
||||
const regexStrip = /%[^\]]*/gm;
|
||||
const sorted = peers.map(peer => ({"url": peer["remote"], "isMulticast": peer["remote"].match(regexMulticast)}))
|
||||
.sort((a, b) => a.isMulticast > b.isMulticast);
|
||||
sorted.forEach(peer => {
|
||||
peers.forEach(peer => {
|
||||
let row = $("peers").appendChild(document.createElement('div'));
|
||||
row.className = "overflow-ellipsis"
|
||||
let flag = row.appendChild(document.createElement("span"));
|
||||
|
@ -306,7 +303,7 @@ ui.updateStatus = peers => {
|
|||
let status = "st-error";
|
||||
if(peers) {
|
||||
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";
|
||||
} else {
|
||||
status = "st-connecting"
|
||||
|
|
|
@ -10,6 +10,7 @@ import (
|
|||
"net/url"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"archive/zip"
|
||||
"time"
|
||||
|
@ -197,11 +198,15 @@ func (a *RestServer) apiPeersHandler(w http.ResponseWriter, r *http.Request) {
|
|||
"bytes_recvd": p.RXBytes,
|
||||
"bytes_sent": p.TXBytes,
|
||||
"uptime": p.Uptime.Seconds(),
|
||||
"mulicast": strings.Contains(p.Remote, "[fe80::"),
|
||||
})
|
||||
}
|
||||
sort.SliceStable(response, func(i, j int) bool {
|
||||
if response[i]["port"].(uint64) == response[j]["port"].(uint64) {
|
||||
return response[i]["priority"].(uint64) < response[j]["priority"].(uint64)
|
||||
sort.Slice(response, func(i, j int) bool {
|
||||
if !response[i]["mulicast"].(bool) && response[j]["mulicast"].(bool) {
|
||||
return true
|
||||
}
|
||||
if response[i]["priority"].(uint64) < response[j]["priority"].(uint64) {
|
||||
return true
|
||||
}
|
||||
return response[i]["port"].(uint64) < response[j]["port"].(uint64)
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue