@@ -11,6 +11,24 @@ function setVariables() {
1111 show_probing = "yes" ;
1212 show_false_positives = "no" ;
1313 activeSite = "clients" ;
14+
15+ if ( window . opener == null ) {
16+ connectedClientsList = "" ;
17+ probingClientsList = "" ;
18+ } else {
19+ connectedClientsList = window . opener . connectedClientsList ;
20+ probingClientsList = window . opener . probingClientsList ;
21+ }
22+
23+ connectedClientsArray = [ ] ;
24+ connectedClientsFormatedArray = [ ] ;
25+ connectedList = "" ;
26+ probingClientsArray = [ ] ;
27+ probingClientsFormatedArray = [ ] ;
28+ probingList = "" ;
29+
30+ selectedMACnumber = "" ;
31+ selectedMAC = "" ;
1432 loadMapThemes ( ) ;
1533}
1634
@@ -129,6 +147,65 @@ function loadMap() {
129147
130148 } ) ; //END downloadUrl
131149
150+ //This code is run when page is loaded
151+ probingClientsArray = window . opener . probingClientsList . split ( "<br>" ) ;
152+ connectedClientsArray = window . opener . connectedClientsList . split ( "<br>" ) ;
153+
154+ //Black magic to make a prompt for selecting client
155+ for ( var i = 0 ; i < probingClientsArray . length - 2 ; i ++ ) {
156+ var num = i + 1 ;
157+ probingClientsFormatedArray [ i ] = "P" + num + ": " + probingClientsArray [ i + 1 ] ;
158+ }
159+ //Make a long string (list) based on the array of probing clients
160+ probingList = probingClientsFormatedArray . join ( "\n" ) ;
161+
162+ for ( var i = 0 ; i < connectedClientsArray . length - 2 ; i ++ ) {
163+ var num = i + 1 ;
164+ connectedClientsFormatedArray [ i ] = "C" + num + ": " + connectedClientsArray [ i + 1 ] ;
165+ }
166+ //Make a long string (list) based on the array of connected clients
167+ connectedList = connectedClientsFormatedArray . join ( "\n" ) ;
168+
169+ //Only display prompt when the page is first loaded
170+ if ( document . getElementById ( "searchinput" ) . value == "" ) {
171+
172+ //Only display relevant headlines in prompt. length will be 1 if there is no data (3 if there is 1 item in array, 4 if there is 2 etc.)
173+ //First, check if there is a total of 1 client MAC sent from "network" page
174+ if ( ( probingClientsArray . length == 3 && connectedClientsArray . length == 1 ) || ( probingClientsArray . length == 1 && connectedClientsArray . length == 3 ) ) {
175+ //If there was only one MAC sent, check if it was a probing client, or a connected client
176+ if ( probingClientsArray . length == 3 && connectedClientsArray . length == 1 ) {
177+ selectedMAC = probingClientsArray [ 1 ] ;
178+ selectedMACnumber = "thisCannotBeEmpty" ;
179+ } else if ( probingClientsArray . length == 1 && connectedClientsArray . length == 3 ) {
180+ selectedMAC = connectedClientsArray [ 1 ] ;
181+ selectedMACnumber = "thisCannotBeEmpty" ;
182+ }
183+ //Check for other combinations of probing clients and connected clients
184+ } else if ( probingClientsArray . length > 1 && connectedClientsArray . length > 1 ) {
185+ selectedMACnumber = prompt ( "Select which client you want to see data for (write P1, C1 etc.)\n\nProbing clients of selected network:\n" + probingList + "\n\nConnected clients of selected network:\n" + connectedList ) ;
186+ } else if ( probingClientsArray . length > 3 && connectedClientsArray . length == 1 ) {
187+ selectedMACnumber = prompt ( "Select which client you want to see data for (write P1, C1 etc.)\n\nProbing clients of selected network:\n" + probingList ) ;
188+ } else if ( probingClientsArray . length == 1 && connectedClientsArray . length > 3 ) {
189+ selectedMACnumber = prompt ( "Select which client you want to see data for (write P1, C1 etc.)\n\nConnected clients of selected network:\n" + connectedList ) ;
190+ } else {
191+ selectedMACnumber = "" ;
192+ }
193+ }
194+ //Don't search for client data if selected network did not have any data
195+ if ( selectedMACnumber != "" ) {
196+
197+ //Store user-selected MAC address to variable
198+ if ( selectedMACnumber . charAt ( 0 ) == "P" || selectedMACnumber . charAt ( 0 ) == "p" ) {
199+ selectedMAC = probingClientsArray [ selectedMACnumber . charAt ( 1 ) ] ;
200+ } else if ( selectedMACnumber . charAt ( 0 ) == "C" || selectedMACnumber . charAt ( 0 ) == "c" ) {
201+ selectedMAC = connectedClientsArray [ selectedMACnumber . charAt ( 1 ) ] ;
202+ }
203+
204+ //Write selectedMAC to search box, then click the button
205+ document . getElementById ( "searchinput" ) . value = selectedMAC ;
206+ document . getElementById ( 'searchbutton' ) . click ( )
207+ }
208+
132209} //END loadMap
133210
134211//------------------------------------------------
0 commit comments