Fixed multi-desktop with filter, added tag:xxx filter.

Ylian Saint-Hilaire committed Dec 23, 2019 at 16:11 UTC 097eb6cd9daea4b03ff62db1051c6f5b10a088fb
2 files changed +11 -6
package.json
+1 -1
@@ -1,6 +1,6 @@
1 {
2 "name": "meshcentral",
3 - "version": "0.4.6-l",
3 + "version": "0.4.6-m",
4 "keywords": [
5 "Remote Management",
6 "Intel AMT",
views/default.handlebars
+10 -5
@@ -3068,7 +3068,7 @@
3068 if ((meshrights & 8) || (meshrights & 256)) { // Requires remote control rights or desktop view only rights
3069 //var conn = 0;
3070 //if ((node.conn & 1) != 0) { conn = 1; } else if ((node.conn & 6) != 0) { conn = 2; } // Check what type of connect we can do (Agent vs AMT)
3071 - if (node.conn & 1) { count++; }
3071 + if ((node.conn & 1) && (node.v == true)) { count++; }
3072 }
3073 }
3074 }
@@ -3077,7 +3077,7 @@
3077
3078 // Perform connect all
3079 for (var i in nodes) {
3080 - if ((multiDesktop[nodes[i]._id] == null) && ((multiDesktopFilter.length == 0) || (multiDesktopFilter.indexOf('devid_' + nodes[i]._id) >= 0))) {
3080 + if ((nodes[i].v == true) && (multiDesktop[nodes[i]._id] == null) && ((multiDesktopFilter.length == 0) || (multiDesktopFilter.indexOf('devid_' + nodes[i]._id) >= 0))) {
3081 toggleKvmDevice(nodes[i]._id);
3082 }
3083 }
@@ -3638,13 +3638,15 @@
3638 function onConsoleFocus(x) { consoleFocus = x; }
3639
3640 function onSearchInputChanged() {
3641 - var x = Q('SearchInput').value.toLowerCase().trim(); putstore('_search', x);
3642 - var userSearch = null, ipSearch = null, groupSearch = null;
3641 + var x = Q('SearchInput').value.toLowerCase().trim(); putstore('_search', Q('SearchInput').value);
3642 + var userSearch = null, ipSearch = null, groupSearch = null, tagSearch = null;
3643 if (x.startsWith("user:")) { userSearch = x.substring(5); }
3644 else if (x.startsWith("u:")) { userSearch = x.substring(2); }
3645 else if (x.startsWith("ip:")) { ipSearch = x.substring(3); }
3646 else if (x.startsWith("group:")) { groupSearch = x.substring(6); }
3647 else if (x.startsWith("g:")) { groupSearch = x.substring(2); }
3648 + else if (x.startsWith("tag:")) { tagSearch = Q('SearchInput').value.trim().substring(4); }
3649 + else if (x.startsWith("t:")) { tagSearch = Q('SearchInput').value.trim().substring(2); }
3650
3651 if (x == '') {
3652 // No search
@@ -3655,7 +3657,10 @@
3657 } else if (groupSearch != null) {
3658 // Group filter
3659 for (var d in nodes) { nodes[d].v = (meshes[nodes[d].meshid].name.toLowerCase().indexOf(groupSearch) >= 0); }
3658 - } else if (userSearch != null) {
3660 + } else if (tagSearch != null) {
3661 + // Tag filter
3662 + for (var d in nodes) { nodes[d].v = ((nodes[d].tags != null) && (nodes[d].tags.indexOf(tagSearch) >= 0)); }
3663 + } else if (userSearch != null) {
3664 // User search
3665 for (var d in nodes) {
3666 nodes[d].v = false;