pixelserver2/html/index.html
2018-08-22 21:47:16 +02:00

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>