cleanup
This commit is contained in:
		
							parent
							
								
									9e45adfff5
								
							
						
					
					
						commit
						789097fd79
					
				| 
						 | 
				
			
			@ -1,288 +1,3 @@
 | 
			
		|||
<!-- <!DOCTYPE html> -->
 | 
			
		||||
<!-- <html lang="en"> -->
 | 
			
		||||
<!-- <head> -->
 | 
			
		||||
<!--     <meta charset="UTF-8"> -->
 | 
			
		||||
<!--     <meta http-equiv="X-UA-Compatible" content="IE=edge"> -->
 | 
			
		||||
<!--     <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
 | 
			
		||||
<!--     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> -->
 | 
			
		||||
<!--     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script> -->
 | 
			
		||||
<!--     <script src="https://unpkg.com/htmx.org@1.9.12"></script> -->
 | 
			
		||||
<!--     <title>g2: gommand & gontrol</title> -->
 | 
			
		||||
<!--     <script> -->
 | 
			
		||||
<!--         document.addEventListener('DOMContentLoaded', () => { -->
 | 
			
		||||
<!--             // Fetch agent names to populate the dropdown -->
 | 
			
		||||
<!--             fetch('/agentNames') -->
 | 
			
		||||
<!--                 .then(response => response.json()) -->
 | 
			
		||||
<!--                 .then(agentNames => { -->
 | 
			
		||||
<!--                     const dropdown = document.getElementById('agentName'); -->
 | 
			
		||||
<!--                     agentNames.forEach(name => { -->
 | 
			
		||||
<!--                         const option = document.createElement('option'); -->
 | 
			
		||||
<!--                         option.value = name; -->
 | 
			
		||||
<!--                         option.textContent = name; -->
 | 
			
		||||
<!--                         dropdown.appendChild(option); -->
 | 
			
		||||
<!--                     }); -->
 | 
			
		||||
<!--                 }) -->
 | 
			
		||||
<!--                 .catch(error => console.error('Error fetching agent names:', error)); -->
 | 
			
		||||
 | 
			
		||||
<!--             // WebSocket setup -->
 | 
			
		||||
<!--             const socket = new WebSocket("ws://localhost:5555/data"); -->
 | 
			
		||||
 | 
			
		||||
<!--             // Handle WebSocket messages -->
 | 
			
		||||
<!--             socket.onmessage = (event) => { -->
 | 
			
		||||
<!--                 const message = JSON.parse(event.data); -->
 | 
			
		||||
<!--                 if (message.type === 'response') { -->
 | 
			
		||||
<!--                     const output = document.getElementById('commandOutput'); -->
 | 
			
		||||
<!--                     output.textContent = message.payload; // Display the agent's response -->
 | 
			
		||||
<!--                 } -->
 | 
			
		||||
<!--             }; -->
 | 
			
		||||
 | 
			
		||||
<!--             // Handle WebSocket errors -->
 | 
			
		||||
<!--             socket.onerror = (error) => { -->
 | 
			
		||||
<!--                 console.error("WebSocket error:", error); -->
 | 
			
		||||
<!--             }; -->
 | 
			
		||||
 | 
			
		||||
<!--             // Handle WebSocket closure -->
 | 
			
		||||
<!--             socket.onclose = () => { -->
 | 
			
		||||
<!--                 console.warn('WebSocket connection closed.'); -->
 | 
			
		||||
<!--             }; -->
 | 
			
		||||
 | 
			
		||||
<!--             // Intercept HTMX requests for /executeCommand -->
 | 
			
		||||
<!--             document.body.addEventListener('htmx:beforeRequest', (evt) => { -->
 | 
			
		||||
<!--                 const url = evt.detail.pathInfo.requestPath; -->
 | 
			
		||||
<!--                 if (url === '/executeCommand') { -->
 | 
			
		||||
<!--                     evt.preventDefault(); // Stop HTMX from processing the request -->
 | 
			
		||||
 | 
			
		||||
<!--                     // Collect form data -->
 | 
			
		||||
<!--                     const formData = new FormData(evt.detail.elt); -->
 | 
			
		||||
<!--                     const payload = new URLSearchParams(formData); // Convert form data to query string -->
 | 
			
		||||
 | 
			
		||||
<!--                     // Send form data using fetch -->
 | 
			
		||||
<!--                     fetch('http://localhost:5555/executeCommand', { -->
 | 
			
		||||
<!--                         method: 'POST', -->
 | 
			
		||||
<!--                         headers: { -->
 | 
			
		||||
<!--                             'Content-Type': 'application/x-www-form-urlencoded', -->
 | 
			
		||||
<!--                         }, -->
 | 
			
		||||
<!--                         body: payload, -->
 | 
			
		||||
<!--                     }).then((response) => { -->
 | 
			
		||||
<!--                         if (!response.ok) { -->
 | 
			
		||||
<!--                             console.error('Failed to execute command:', response.statusText); -->
 | 
			
		||||
<!--                         } -->
 | 
			
		||||
<!--                         console.log(response) -->
 | 
			
		||||
<!--                     }); -->
 | 
			
		||||
<!--                 } -->
 | 
			
		||||
<!--             }); -->
 | 
			
		||||
<!--         }); -->
 | 
			
		||||
<!--     </script> -->
 | 
			
		||||
<!-- </head> -->
 | 
			
		||||
<!-- <body> -->
 | 
			
		||||
<!--     <div class="container"> -->
 | 
			
		||||
<!--         <div class="row"> -->
 | 
			
		||||
<!--             <div class="col"> -->
 | 
			
		||||
<!--                 <h2>Agents</h2> -->
 | 
			
		||||
 | 
			
		||||
<!--                 <!-1- Agent List -1-> -->
 | 
			
		||||
<!--                 <div id="agentList" hx-get="/agents" hx-trigger="load" hx-swap="innerHTML"></div> -->
 | 
			
		||||
 | 
			
		||||
<!--                 <!-1- Command Execution -1-> -->
 | 
			
		||||
<!--                 <div id="agentCommands"> -->
 | 
			
		||||
<!--                     <h3>Command Execution</h3> -->
 | 
			
		||||
<!--                     <form hx-post="/executeCommand" hx-target="#commandOutput" hx-encoding="application/x-www-form-urlencoded" hx-swap="innerHTML"> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="agentName" class="form-label">Agent Name</label> -->
 | 
			
		||||
<!--                             <select class="form-select" id="agentName" name="agentName" required> -->
 | 
			
		||||
<!--                                 <!-1- Dynamically populated with agent names -1-> -->
 | 
			
		||||
<!--                             </select> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="command" class="form-label">Command</label> -->
 | 
			
		||||
<!--                             <input type="text" class="form-control" id="command" name="command" placeholder="Enter command" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <button type="submit" class="btn btn-primary">Execute</button> -->
 | 
			
		||||
<!--                     </form> -->
 | 
			
		||||
<!--                     <div id="commandOutput" class="mt-3 p-2 border">Here goes the output...</div> -->
 | 
			
		||||
<!--                 </div> -->
 | 
			
		||||
 | 
			
		||||
<!--                 <!-1- Add Agent Form -1-> -->
 | 
			
		||||
<!--                 <button class="btn btn-primary mt-3" data-bs-toggle="collapse" data-bs-target="#addAgentForm">Add Agent</button> -->
 | 
			
		||||
<!--                 <div id="addAgentForm" class="collapse mt-2"> -->
 | 
			
		||||
<!--                     <form hx-post="/agents" hx-target="#agentList" hx-swap="innerHTML"> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="agentId" class="form-label">Agent Id</label> -->
 | 
			
		||||
<!--                             <input type="text" class="form-control" id="agentId" name="agentId" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="agentName" class="form-label">Agent Name</label> -->
 | 
			
		||||
<!--                             <input type="text" class="form-control" id="agentNameInput" name="agentName" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="IPv4Address" class="form-label">IPv4 Address</label> -->
 | 
			
		||||
<!--                             <input type="text" class="form-control" id="IPv4Address" name="IPv4Address" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="initialContact" class="form-label">Initial Contact</label> -->
 | 
			
		||||
<!--                             <input type="datetime-local" class="form-control" id="initialContact" name="initialContact" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="lastContact" class="form-label">Last Contact</label> -->
 | 
			
		||||
<!--                             <input type="datetime-local" class="form-control" id="lastContact" name="lastContact" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <button type="submit" class="btn btn-success">Add Agent</button> -->
 | 
			
		||||
<!--                     </form> -->
 | 
			
		||||
<!--                 </div> -->
 | 
			
		||||
<!--             </div> -->
 | 
			
		||||
 | 
			
		||||
<!--             <!-1- Agent Details -1-> -->
 | 
			
		||||
<!--             <div class="col" id="agentDetails"> -->
 | 
			
		||||
<!--                 <h3>Details</h3> -->
 | 
			
		||||
<!--                 <p>Select an agent to view details.</p> -->
 | 
			
		||||
<!--             </div> -->
 | 
			
		||||
<!--         </div> -->
 | 
			
		||||
<!--     </div> -->
 | 
			
		||||
<!-- </body> -->
 | 
			
		||||
<!-- </html> -->
 | 
			
		||||
 | 
			
		||||
<!-- <!DOCTYPE html> -->
 | 
			
		||||
<!-- <html lang="en"> -->
 | 
			
		||||
<!-- <head> -->
 | 
			
		||||
<!--     <meta charset="UTF-8"> -->
 | 
			
		||||
<!--     <meta http-equiv="X-UA-Compatible" content="IE=edge"> -->
 | 
			
		||||
<!--     <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
 | 
			
		||||
<!--     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> -->
 | 
			
		||||
<!--     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script> -->
 | 
			
		||||
<!--     <script src="https://unpkg.com/htmx.org@1.9.12"></script> -->
 | 
			
		||||
<!--     <title>g2: gommand & gontrol</title> -->
 | 
			
		||||
<!--     <script> -->
 | 
			
		||||
<!--         document.addEventListener('DOMContentLoaded', () => { -->
 | 
			
		||||
<!--             // Fetch agent names to populate the dropdown -->
 | 
			
		||||
<!--             fetch('/agentNames') -->
 | 
			
		||||
<!--                 .then(response => response.json()) -->
 | 
			
		||||
<!--                 .then(agentNames => { -->
 | 
			
		||||
<!--                     const dropdown = document.getElementById('agentName'); -->
 | 
			
		||||
<!--                     agentNames.forEach(name => { -->
 | 
			
		||||
<!--                         const option = document.createElement('option'); -->
 | 
			
		||||
<!--                         option.value = name; -->
 | 
			
		||||
<!--                         option.textContent = name; -->
 | 
			
		||||
<!--                         dropdown.appendChild(option); -->
 | 
			
		||||
<!--                     }); -->
 | 
			
		||||
<!--                 }) -->
 | 
			
		||||
<!--                 .catch(error => console.error('Error fetching agent names:', error)); -->
 | 
			
		||||
 | 
			
		||||
<!--             // WebSocket setup for listening to agent responses -->
 | 
			
		||||
<!--             const socket = new WebSocket("ws://localhost:5555/executeCommand"); -->
 | 
			
		||||
 | 
			
		||||
<!--             // Handle WebSocket messages -->
 | 
			
		||||
<!--             socket.onmessage = (event) => { -->
 | 
			
		||||
<!--                 const message = JSON.parse(event.data); -->
 | 
			
		||||
<!--                 if (message.type === 'response') { -->
 | 
			
		||||
<!--                     const output = document.getElementById('commandOutput'); -->
 | 
			
		||||
<!--                     output.textContent = message.payload; // Display the agent's response -->
 | 
			
		||||
<!--                 } -->
 | 
			
		||||
<!--             }; -->
 | 
			
		||||
 | 
			
		||||
<!--             // Handle WebSocket errors -->
 | 
			
		||||
<!--             socket.onerror = (error) => { -->
 | 
			
		||||
<!--                 console.error("WebSocket error:", error); -->
 | 
			
		||||
<!--             }; -->
 | 
			
		||||
 | 
			
		||||
<!--             // Handle WebSocket closure -->
 | 
			
		||||
<!--             socket.onclose = () => { -->
 | 
			
		||||
<!--                 console.warn('WebSocket connection closed.'); -->
 | 
			
		||||
<!--             }; -->
 | 
			
		||||
 | 
			
		||||
<!--             // Intercept HTMX requests for /executeCommand to send via WebSocket -->
 | 
			
		||||
<!--             document.body.addEventListener('htmx:beforeRequest', (evt) => { -->
 | 
			
		||||
<!--                 const url = evt.detail.pathInfo.requestPath; -->
 | 
			
		||||
<!--                 if (url === '/executeCommand') { -->
 | 
			
		||||
<!--                     evt.preventDefault(); // Stop HTMX from processing the request -->
 | 
			
		||||
 | 
			
		||||
<!--                     // Collect form data -->
 | 
			
		||||
<!--                     const formData = new FormData(evt.detail.elt); -->
 | 
			
		||||
<!--                     const payload = new URLSearchParams(formData); // Convert form data to query string -->
 | 
			
		||||
 | 
			
		||||
<!--                     // Send form data using fetch -->
 | 
			
		||||
<!--                     fetch('http://localhost:5555/executeCommand', { -->
 | 
			
		||||
<!--                         method: 'POST', -->
 | 
			
		||||
<!--                         headers: { -->
 | 
			
		||||
<!--                             'Content-Type': 'application/x-www-form-urlencoded', -->
 | 
			
		||||
<!--                         }, -->
 | 
			
		||||
<!--                         body: payload, -->
 | 
			
		||||
<!--                     }).then((response) => { -->
 | 
			
		||||
<!--                         if (!response.ok) { -->
 | 
			
		||||
<!--                             console.error('Failed to execute command:', response.statusText); -->
 | 
			
		||||
<!--                         } -->
 | 
			
		||||
<!--                     }); -->
 | 
			
		||||
<!--                 } -->
 | 
			
		||||
<!--             }); -->
 | 
			
		||||
<!--         }); -->
 | 
			
		||||
<!--     </script> -->
 | 
			
		||||
<!-- </head> -->
 | 
			
		||||
<!-- <body> -->
 | 
			
		||||
<!--     <div class="container"> -->
 | 
			
		||||
<!--         <div class="row"> -->
 | 
			
		||||
<!--             <div class="col"> -->
 | 
			
		||||
<!--                 <h2>Agents</h2> -->
 | 
			
		||||
 | 
			
		||||
<!--                 <!-1- Agent List -1-> -->
 | 
			
		||||
<!--                 <div id="agentList" hx-get="/agents" hx-trigger="load" hx-swap="innerHTML"></div> -->
 | 
			
		||||
 | 
			
		||||
<!--                 <!-1- Command Execution -1-> -->
 | 
			
		||||
<!--                 <div id="agentCommands"> -->
 | 
			
		||||
<!--                     <h3>Command Execution</h3> -->
 | 
			
		||||
<!--                     <form hx-post="/executeCommand" hx-target="#commandOutput" hx-encoding="application/x-www-form-urlencoded" hx-swap="innerHTML"> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="agentName" class="form-label">Agent Name</label> -->
 | 
			
		||||
<!--                             <select class="form-select" id="agentName" name="agentName" required> -->
 | 
			
		||||
<!--                                 <!-1- Dynamically populated with agent names -1-> -->
 | 
			
		||||
<!--                             </select> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="command" class="form-label">Command</label> -->
 | 
			
		||||
<!--                             <input type="text" class="form-control" id="command" name="command" placeholder="Enter command" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <button type="submit" class="btn btn-primary">Execute</button> -->
 | 
			
		||||
<!--                     </form> -->
 | 
			
		||||
<!--                     <div id="commandOutput" class="mt-3 p-2 border">Here goes the output...</div> -->
 | 
			
		||||
<!--                 </div> -->
 | 
			
		||||
 | 
			
		||||
<!--                 <!-1- Add Agent Form -1-> -->
 | 
			
		||||
<!--                 <button class="btn btn-primary mt-3" data-bs-toggle="collapse" data-bs-target="#addAgentForm">Add Agent</button> -->
 | 
			
		||||
<!--                 <div id="addAgentForm" class="collapse mt-2"> -->
 | 
			
		||||
<!--                     <form hx-post="/agents" hx-target="#agentList" hx-swap="innerHTML"> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="agentId" class="form-label">Agent Id</label> -->
 | 
			
		||||
<!--                             <input type="text" class="form-control" id="agentId" name="agentId" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="agentName" class="form-label">Agent Name</label> -->
 | 
			
		||||
<!--                             <input type="text" class="form-control" id="agentNameInput" name="agentName" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="IPv4Address" class="form-label">IPv4 Address</label> -->
 | 
			
		||||
<!--                             <input type="text" class="form-control" id="IPv4Address" name="IPv4Address" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="initialContact" class="form-label">Initial Contact</label> -->
 | 
			
		||||
<!--                             <input type="datetime-local" class="form-control" id="initialContact" name="initialContact" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <div class="mb-3"> -->
 | 
			
		||||
<!--                             <label for="lastContact" class="form-label">Last Contact</label> -->
 | 
			
		||||
<!--                             <input type="datetime-local" class="form-control" id="lastContact" name="lastContact" required> -->
 | 
			
		||||
<!--                         </div> -->
 | 
			
		||||
<!--                         <button type="submit" class="btn btn-success">Add Agent</button> -->
 | 
			
		||||
<!--                     </form> -->
 | 
			
		||||
<!--                 </div> -->
 | 
			
		||||
<!--             </div> -->
 | 
			
		||||
 | 
			
		||||
<!--             <!-1- Agent Details -1-> -->
 | 
			
		||||
<!--             <div class="col" id="agentDetails"> -->
 | 
			
		||||
<!--                 <h3>Details</h3> -->
 | 
			
		||||
<!--                 <p>Select an agent to view details.</p> -->
 | 
			
		||||
<!--             </div> -->
 | 
			
		||||
<!--         </div> -->
 | 
			
		||||
<!--     </div> -->
 | 
			
		||||
<!-- </body> -->
 | 
			
		||||
<!-- </html> -->
 | 
			
		||||
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<html lang="en">
 | 
			
		||||
<head>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue