Added device group name to search results as config option (#5544)

This commit is contained in:
jrf280 2023-11-13 00:18:00 +01:00 committed by GitHub
parent a3717095e7
commit bc0550a791
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 47 additions and 12 deletions

View File

@ -1204,6 +1204,11 @@ See description for information about each item.
"default": false,
"description": "When set to true, the devices search box will match on both the server name and client name of a device."
},
"deviceSearchBarGroupName": {
"type": "boolean",
"default": false,
"description": "When set to true, the devices search box will match on group name too."
},
"agentSelfGuestSharing": {
"type": [
"boolean",

View File

@ -1197,6 +1197,11 @@
"default": false,
"description": "When set to true, the devices search box will match on both the server name and client name of a device."
},
"deviceSearchBarGroupName": {
"type": "boolean",
"default": false,
"description": "When set to true, the devices search box will match on group name too."
},
"agentSelfGuestSharing": {
"type": [
"boolean",

View File

@ -2904,12 +2904,24 @@
var rs = x.split(/\s+/).join('|'), rx = new RegExp(rs); // In some cases (like +), this can throw an exception.
for (var d in nodes) {
if (features2 & 0x00008000) {
nodes[d].v = (rx.test(nodes[d].name.toLowerCase())) || ((nodes[d].rnamel != null) && rx.test(nodes[d].rnamel.toLowerCase()));
if(features2 & 0x10000000){
nodes[d].v = (rx.test(nodes[d].name.toLowerCase())) || (rx.test(meshes[nodes[d].meshid].name.toLowerCase())) || ((nodes[d].rnamel != null) && rx.test(nodes[d].rnamel.toLowerCase()));
}else {
nodes[d].v = (rx.test(nodes[d].name.toLowerCase())) || ((nodes[d].rnamel != null) && rx.test(nodes[d].rnamel.toLowerCase()));
}
} else {
if (showRealNames) {
nodes[d].v = (nodes[d].rnamel != null) && rx.test(nodes[d].rnamel.toLowerCase());
} else {
nodes[d].v = rx.test(nodes[d].name.toLowerCase());
if(features2 & 0x10000000){
if (showRealNames) {
nodes[d].v = (nodes[d].rnamel != null) && rx.test(nodes[d].rnamel.toLowerCase()) || (rx.test(meshes[nodes[d].meshid].name.toLowerCase()));
} else {
nodes[d].v = rx.test(nodes[d].name.toLowerCase()) || (rx.test(meshes[nodes[d].meshid].name.toLowerCase()));
}
}else{
if (showRealNames) {
nodes[d].v = (nodes[d].rnamel != null) && rx.test(nodes[d].rnamel.toLowerCase());
} else {
nodes[d].v = rx.test(nodes[d].name.toLowerCase());
}
}
}
}

View File

@ -6157,15 +6157,27 @@
// Device name search
try {
var rs = x.split(/\s+/).join('|'), rx = new RegExp(rs); // In some cases (like +), this can throw an exception.
for (var d in nodes) {
for (var d in nodes) {
if (features2 & 0x00008000) { // Both server and client names must match
if (rx.test(nodes[d].name.toLowerCase()) || ((nodes[d].rnamel != null) && rx.test(nodes[d].rnamel.toLowerCase()))) { r.push(d); }
} else {
if (showRealNames) {
if (nodes[d].rnamel != null && rx.test(nodes[d].rnamel.toLowerCase())) { r.push(d); }
} else {
if (rx.test(nodes[d].name.toLowerCase())) { r.push(d); }
if(features2 & 0x10000000){
if (rx.test(nodes[d].name.toLowerCase()) || rx.test(meshes[nodes[d].meshid].name.toLowerCase()) || ((nodes[d].rnamel != null) && rx.test(nodes[d].rnamel.toLowerCase()))) { r.push(d); }
}else {
if (rx.test(nodes[d].name.toLowerCase()) || ((nodes[d].rnamel != null) && rx.test(nodes[d].rnamel.toLowerCase()))) { r.push(d); }
}
} else {
if(features2 & 0x10000000){
if (showRealNames) {
if (nodes[d].rnamel != null && rx.test(nodes[d].rnamel.toLowerCase()) || rx.test(meshes[nodes[d].meshid].name.toLowerCase()) ) { r.push(d); }
} else {
if (rx.test(nodes[d].name.toLowerCase()) || rx.test(meshes[nodes[d].meshid].name.toLowerCase()) ) { r.push(d); }
}
}else {
if (showRealNames) {
if (nodes[d].rnamel != null && rx.test(nodes[d].rnamel.toLowerCase())) { r.push(d); }
} else {
if (rx.test(nodes[d].name.toLowerCase())) { r.push(d); }
}
}
}
}
} catch (ex) { for (var d in nodes) { r.push(d); } }

View File

@ -3226,6 +3226,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
if ((parent.msgserver != null) && (parent.msgserver.providers != 0)) { features2 += 0x02000000; } // User messaging server is enabled
if ((parent.msgserver != null) && (parent.msgserver.providers != 0) && ((typeof domain.passwordrequirements != 'object') || (domain.passwordrequirements.msg2factor != false))) { features2 += 0x04000000; } // User messaging 2FA is allowed
if (domain.scrolltotop == true) { features2 += 0x08000000; } // Show the "Scroll to top" button
if (domain.devicesearchbargroupname === true) { features2 += 0x10000000; } // Search bar will find by group name too
return { features: features, features2: features2 };
}