MCPcopy Create free account
hub / github.com/cppla/ServerStatus / visibleServers

Function visibleServers

web/js/app.js:168–200  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

166}
167
168function visibleServers(){
169 const q = S.filters.query.trim().toLowerCase();
170 let rows = S.servers.filter(server => {
171 const m = metrics(server);
172 if(S.filters.status === 'online' && !m.online) return false;
173 if(S.filters.status === 'offline' && m.online) return false;
174 if(S.filters.status === 'alert' && !m.alert) return false;
175 const os = osLabel(server.os);
176 if(S.filters.os !== 'all' && os !== S.filters.os) return false;
177 if(!q) return true;
178 return [server.name, server.type, server.host, server.location, os].some(v => String(v || '').toLowerCase().includes(q));
179 });
180 rows.sort((a, b) => {
181 const dir = S.filters.dir === 'asc' ? 1 : -1;
182 const ma = metrics(a), mb = metrics(b);
183 const value = (server, m) => ({
184 name: String(server.name || ''),
185 type: String(server.type || ''),
186 location: String(server.location || ''),
187 status: m.online ? 1 : 0,
188 load: num(server.load_1),
189 cpu: num(server.cpu),
190 memory: m.memPct,
191 hdd: m.hddPct,
192 traffic: m.traffic,
193 loss: m.loss
194 })[S.filters.sort];
195 const va = value(a, ma), vb = value(b, mb);
196 if(typeof va === 'string') return va.localeCompare(vb, 'zh-CN') * dir;
197 return (va - vb) * dir;
198 });
199 return rows;
200}
201
202function render(){
203 $('notice').style.display = 'none';

Callers 2

renderServersFunction · 0.85
renderServersCardsFunction · 0.85

Calls 3

metricsFunction · 0.85
osLabelFunction · 0.85
valueFunction · 0.85

Tested by

no test coverage detected