@@ -69,11 +69,11 @@ func (h *handler) getPeers(ctx context.Context, body io.Reader) (*getPeersRespon
6969 return nil , err
7070 }
7171
72- s := getPeersResponse {
73- PeerGroups : [ ]* peerGroup {
74- {Name : "My nodes" },
75- {Name : "All nodes" },
76- },
72+ s := getPeersResponse {PeerGroups : [] * peerGroup {}}
73+ peerGroups := [ ... ]* peerGroup {
74+ {Name : "My nodes" },
75+ {Name : "All nodes" },
76+ { Name : "Offline nodes" },
7777 }
7878
7979 if st .BackendState == "NeedsLogin" || (st .Self != nil && ! st .Self .Online ) {
@@ -130,33 +130,26 @@ func (h *handler) getPeers(ctx context.Context, body io.Reader) (*getPeersRespon
130130 SSHEnabled : len (p .SSH_HostKeys ) > 0 ,
131131 Address : addr ,
132132 }
133- if p .UserID == st .Self .UserID {
134- s .PeerGroups [0 ].Peers = append (s .PeerGroups [0 ].Peers , peer )
133+
134+ if ! p .Online {
135+ peerGroups [2 ].Peers = append (peerGroups [2 ].Peers , peer )
136+ } else if p .UserID == st .Self .UserID {
137+ peerGroups [0 ].Peers = append (peerGroups [0 ].Peers , peer )
135138 } else {
136- s . PeerGroups [1 ].Peers = append (s . PeerGroups [1 ].Peers , peer )
139+ peerGroups [1 ].Peers = append (peerGroups [1 ].Peers , peer )
137140 }
138141 }
139142
140- myNodes := len (s .PeerGroups [0 ].Peers )
141- allNodes := len (s .PeerGroups [1 ].Peers )
142- if myNodes == 0 && allNodes > 0 {
143- s .PeerGroups = s .PeerGroups [1 :]
144- } else if allNodes == 0 && myNodes > 0 {
145- s .PeerGroups = s .PeerGroups [0 :1 ]
146- } else if myNodes == 0 && allNodes == 0 {
147- s .PeerGroups = nil
143+ for _ , pg := range peerGroups {
144+ if len (pg .Peers ) > 0 {
145+ s .PeerGroups = append (s .PeerGroups , pg )
146+ }
148147 }
149148
150149 for _ , pg := range s .PeerGroups {
151150 peers := pg .Peers
152151 sort .Slice (peers , func (i , j int ) bool {
153- if peers [i ].Online && ! peers [j ].Online {
154- return true
155- }
156- if peers [j ].Online && ! peers [i ].Online {
157- return false
158- }
159- return peers [i ].HostName < peers [j ].HostName
152+ return peers [i ].ServerName < peers [j ].ServerName
160153 })
161154 }
162155
0 commit comments