Peers ordering fully moved in gu

This commit is contained in:
Mihail Slobodyanuk 2022-12-22 09:52:45 +02:00
parent 08c8fc27d0
commit e253b64d43
3 changed files with 12 additions and 16 deletions

View file

@ -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 {

View file

@ -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"

View file

@ -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)
})