88 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html>
 | |
| 	<head>
 | |
| 		<meta charset="utf-8"> 
 | |
| 		<style type="text/css">
 | |
| 			textarea {
 | |
| 				width: 500px;
 | |
| 				height: 500px;
 | |
| 			}
 | |
| 
 | |
| 
 | |
| 
 | |
| 		</style>
 | |
| 	</head>
 | |
| 	
 | |
| 
 | |
| 
 | |
| 
 | |
| 	<body>
 | |
| 		<div id='container'>
 | |
| 			<form id='in'>
 | |
| 			</form>
 | |
| 		</div>
 | |
| 		<div id='log'>
 | |
| 			<textarea id='logs'>
 | |
| 				
 | |
| 			</textarea>
 | |
| 		</div>
 | |
| 		<script>
 | |
| 
 | |
| 			function generateInput(parameters){
 | |
|  			 	let container = document.getElementById('in');
 | |
| 
 | |
|  			 	let list = document.createElement("select");
 | |
|  			 	list.id = "list_";
 | |
|  			 	container.appendChild(list);
 | |
|  			 	
 | |
| 
 | |
| 	 			//let json = JSON.parse(parameters);
 | |
| 				parameters.map ( e => {
 | |
| 					let element = document.createElement("option");
 | |
| 					element.value = e;
 | |
| 					element.innerHTML = e;
 | |
| 					list.appendChild(element);
 | |
| 				})
 | |
| 
 | |
| 				let arguments = document.createElement("input");
 | |
| 				arguments.id = "args";
 | |
| 				container.appendChild(arguments);
 | |
| 
 | |
| 				let button = document.createElement("Button");
 | |
| 				button.innerHTML = "Execute";
 | |
| 				container.appendChild(button);
 | |
| 				button.onclick = request;
 | |
| 
 | |
|  			 	//container.appendChild(foo);
 | |
| 			}
 | |
| 
 | |
| 
 | |
| 			function request(){
 | |
| 			 	let app = document.querySelector('#list_');
 | |
| 				let val = app.options[app.selectedIndex].value;
 | |
| 			 	let parameter = document.getElementById('args').value;
 | |
| 			 	console.log(parameter);
 | |
| 				fetch("/apps/start/" + val + "/" + parameter).then(console.log);
 | |
| 
 | |
| 			}
 | |
| 
 | |
| 
 | |
| 			//async function initLog(){
 | |
| 			//	socket = new WebSocket ( "/logs" );
 | |
| 	    	//	socket.onmessage = function ( evt ) { document.getElementById('logs').innerHTML += evt.data; };
 | |
| 			//}
 | |
| 
 | |
| 			var sleep = time => new Promise(resolve => setTimeout(resolve, time))
 | |
| 			var poll = (promiseFn, time) => promiseFn().then(
 | |
|             	sleep(time).then(() => poll(promiseFn, time)))
 | |
| 			poll(() => new Promise(() => fetch("/apps/log").then(res => res.text().then(e => { document.getElementById('logs').innerHTML = e;}))      ), 1000)
 | |
| 
 | |
| 			let apps = fetch("/apps/list").then(res => res.json().then(generateInput));
 | |
| 
 | |
| 			//generateInput("[ \"bla\", \"foo\", \"baz\" ]");
 | |
| 
 | |
| 		</script>
 | |
| 	</body>
 | |
| 
 | |
| 
 | |
| 
 | |
| </html> | 
