80 lines
1.9 KiB
HTML
80 lines
1.9 KiB
HTML
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
|
|
</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> |