Skip to content

Commit

Permalink
Merge pull request #103 from freifunkMUC/filterclients
Browse files Browse the repository at this point in the history
add config Option to filterClients per Domain
  • Loading branch information
GoliathLabs authored Jun 9, 2024
2 parents ba2f6bd + 0bd7f61 commit 956d1d7
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 4 deletions.
2 changes: 1 addition & 1 deletion config.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
[49.9282, 9.3164]
],
"domainNames": [
{ "domain": "ffffm_60431", "name": "60431 Frankfurt am Main" },
{ "domain": "ffffm_60431", "name": "60431 Frankfurt am Main", "filterClients": "false" },
{ "domain": "ffffm_default", "name": "Default" }
],
"nodeInfos": [
Expand Down
6 changes: 4 additions & 2 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -359,11 +359,13 @@
},
{
"domain": "ffmuc_unifi_respondd_fallback",
"name": "UniFi"
"name": "UniFi",
"filterClients": true
},
{
"domain": "omada_respondd_fallback",
"name": "Omada"
"name": "Omada",
"filterClients": true
}
],
"linkList": [
Expand Down
1 change: 1 addition & 0 deletions lib/config_default.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ interface Icon {
export interface Domain {
name: string;
domain: string;
filterClients: boolean;
}

export interface LinkInfo {
Expand Down
33 changes: 32 additions & 1 deletion lib/legend.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,39 @@ export const Legend = function (language: ReturnType<typeof Language>) {
self.setData = function setData(data: ObjectsLinksAndNodes) {
let totalNodes = Object.keys(data.nodeDict).length;
let totalOnlineNodes = data.nodes.online.length;

let config = window.config;
var filtertNodes = [];
if (config.domainNames) {
let filtertdomains = config.domainNames.filter(function (domain) {
if(typeof domain.filterClients !== 'undefined'){
return domain.filterClients;
}else{
return false
}
});
filtertdomains.forEach((domain) => {
filtertNodes.push(domain.name)
filtertNodes.push(domain.domain)
})
}

let totalNodesFiltert = data.nodes.online.filter(function (node) {
var isFiltert = true
// filter nodes based on the domain
if(filtertNodes.includes(node.domain)){
isFiltert = false
}
// also filter nodes based on the firmware base (Domainname) for custom respondd
if(filtertNodes.includes(node.firmware.base))[
isFiltert = false
]
return isFiltert
})


let totalClients = helper.sum(
data.nodes.online.map(function (node) {
totalNodesFiltert.map(function (node) {
return node.clients;
}),
);
Expand Down

0 comments on commit 956d1d7

Please sign in to comment.