diff options
Diffstat (limited to 'web/js/nms-search.js')
| -rw-r--r-- | web/js/nms-search.js | 45 | 
1 files changed, 35 insertions, 10 deletions
diff --git a/web/js/nms-search.js b/web/js/nms-search.js index f435c81..0726bb4 100644 --- a/web/js/nms-search.js +++ b/web/js/nms-search.js @@ -15,6 +15,8 @@ nmsSearch.helpText =  [  	'IP search: Start typing an IP and any switch with that IP registered either as management IP or part of its subnet will be identified',  	'SNMP search: Type anything found in the "sysDescr" SNMP OID to hilight a switch matching that. Practical examples include version numbers for firmware (e.g.: "JUNOS 12." vs "JUNOS 14.").']; +nmsSearch.matches = []; +  /*   * Test if the search expression "id" matches the switch "sw"   * @@ -81,6 +83,13 @@ nmsSearch.searchTest = function(id, sw) {  			}  		} catch (e) {}  		try { +			for (var x in nmsData.switches.switches[sw]['tags']) { +				if(re.test(nmsData.switches.switches[sw]['tags'][x])){ +					return true; +				} +			} +		} catch (e) {} +		try {  			for (var x in nmsData.snmp.snmp[sw].misc.entPhysicalSerialNum) {  				if (nmsData.snmp.snmp[sw].misc.entPhysicalSerialNum[x] == null) {  					continue; @@ -142,7 +151,7 @@ nmsSearch._disableTimer = function() {  nmsSearch.search = function() {  	var el = document.getElementById("searchbox");  	var id = false; -	var matches = []; +	nmsSearch.matches = [];  	if (el) {  		id = el.value.toLowerCase();  	} @@ -150,7 +159,7 @@ nmsSearch.search = function() {  		nmsMap.enableHighlights();  		for(var sw in nmsData.switches.switches) {  			if (nmsSearch.searchTest(id,sw)) { -				matches.push(sw); +				nmsSearch.matches.push(sw);  				nmsMap.setSwitchHighlight(sw,true);  			} else {  				nmsMap.setSwitchHighlight(sw,false); @@ -161,10 +170,29 @@ nmsSearch.search = function() {  		nmsSearch._disableTimer();  		nmsMap.disableHighlights();  	} -	if(matches.length == 1) { -		document.getElementById("searchbox-submit").classList.add("btn-primary"); -		document.getElementById("searchbox").dataset.match = matches[0]; -	} else { +	if(nmsSearch.matches.length == 0) { +		document.getElementById("searchbox-submit").classList.remove("btn-success"); +		document.getElementById("searchbox-submit").classList.remove("btn-primary"); +	} +	else if(nmsSearch.matches.length == 1) { +		document.getElementById("searchbox-submit").classList.add("btn-success"); +		document.getElementById("searchbox-submit").classList.remove("btn-primary"); +	} +	else  { +                document.getElementById("searchbox-submit").classList.add("btn-primary"); +		document.getElementById("searchbox-submit").classList.remove("btn-success"); +        } + +}; + +nmsSearch.runSearch = function() { +	if(nmsSearch.matches.length == 1) { +		nmsInfoBox.showWindow("switchInfo",nmsSearch.matches[0]); +	} +	else if(nmsSearch.matches.length > 1) { +        	nmsInfoBox.showWindow('searchResults',nmsSearch.matches.length); +	} +	else {  		document.getElementById("searchbox-submit").classList.remove("btn-primary");  		document.getElementById("searchbox").dataset.match = '';  	} @@ -173,10 +201,7 @@ nmsSearch.search = function() {  nmsSearch._searchKeyListener = function(e) {  	switch (e.keyCode) {  		case 13: -			var sw = document.getElementById("searchbox").dataset.match; -			if(sw != '') { -				nmsInfoBox.showWindow("switchInfo",sw); -			} +			nmsSearch.runSearch();  			break;  		case 27:  			nmsSearch.reset();  | 
