109 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<html>
 | 
						|
    <head>
 | 
						|
        <meta charset="utf-8"> 
 | 
						|
        <title>Pixelserver Interface</title>
 | 
						|
    </head>
 | 
						|
    
 | 
						|
    <body>
 | 
						|
        <h1>Pixelserver</h1>
 | 
						|
 | 
						|
        <h2>Kommando:</h2>
 | 
						|
        <div id='container' style="display: none;">
 | 
						|
            <form id='in' onSubmit="return request()">
 | 
						|
                <select id="list"></select>
 | 
						|
                <input id="args" />
 | 
						|
                <button id="execute">Ausführen</button>
 | 
						|
            </form>
 | 
						|
        </div>
 | 
						|
 | 
						|
        <h2>Log:</h2>
 | 
						|
        <div id='log'>
 | 
						|
            <textarea readonly id='logs' style="width: 500px; height: 500px;"></textarea>
 | 
						|
        </div>
 | 
						|
        <script>
 | 
						|
            function getRaw(from, callback){
 | 
						|
                var xhttp = new XMLHttpRequest();
 | 
						|
                xhttp.onreadystatechange = function() {
 | 
						|
                    if (this.readyState == 4 && this.status == 200) {
 | 
						|
                        callback(xhttp.responseText);
 | 
						|
                    }
 | 
						|
                };
 | 
						|
                xhttp.open("GET", from, true);
 | 
						|
                xhttp.send();
 | 
						|
            }
 | 
						|
 | 
						|
            function getJSON(from, callback){
 | 
						|
                getRaw(from, function(text){
 | 
						|
                    callback(JSON.parse(text));
 | 
						|
                });
 | 
						|
            }
 | 
						|
 | 
						|
            function post(from, data){
 | 
						|
                var formdata = new FormData();
 | 
						|
                for (var key in data) {
 | 
						|
                    formdata.append(key, data[key]);
 | 
						|
                }
 | 
						|
                let xhttp = new XMLHttpRequest();
 | 
						|
                xhttp.onreadystatechange = function() {
 | 
						|
                    if (this.readyState == 4 && this.status == 200) {
 | 
						|
                    }
 | 
						|
                };
 | 
						|
                xhttp.open("POST", from, true);
 | 
						|
                xhttp.send(formdata);
 | 
						|
            }
 | 
						|
 | 
						|
            function populateForm(parameters){
 | 
						|
                let list = document.getElementById("list");
 | 
						|
                  
 | 
						|
                parameters.map ( e => {
 | 
						|
                })
 | 
						|
                for (var i in parameters) {
 | 
						|
                    let app = parameters[i];
 | 
						|
                    let name = app["name"];
 | 
						|
                    let guiname = app["guiname"];
 | 
						|
                    let persistent = app["persistent"];
 | 
						|
                    let element = document.createElement("option");
 | 
						|
                    element.value = name;
 | 
						|
                    element.innerHTML = guiname;
 | 
						|
                    element.dataset.persistent = persistent;
 | 
						|
                    list.appendChild(element);
 | 
						|
                }
 | 
						|
                
 | 
						|
                list.onchange = function(){
 | 
						|
                    let app = document.getElementById('list');
 | 
						|
                    let persistent = app.options[app.selectedIndex].dataset.persistent;
 | 
						|
                    if (persistent == "true"){
 | 
						|
                        document.getElementById("args").style.display = "none";
 | 
						|
                    }else{
 | 
						|
                        document.getElementById("args").style.display = "inline";
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                list.onchange();
 | 
						|
                document.getElementById("container").style.display = "block";
 | 
						|
            }
 | 
						|
 | 
						|
            function request(){
 | 
						|
                let app = document.getElementById('list');
 | 
						|
                let val = app.options[app.selectedIndex].value;
 | 
						|
                let parameter = document.getElementById('args').value;
 | 
						|
                let url = "/apps/start/" + val;
 | 
						|
                post(url, {"param": parameter});
 | 
						|
                return false;
 | 
						|
            }
 | 
						|
 | 
						|
            function updateLog(){
 | 
						|
                getRaw("/apps/log", function(text){
 | 
						|
                    document.getElementById('logs').innerText = text;
 | 
						|
                });
 | 
						|
            }
 | 
						|
            updateLog();
 | 
						|
            setInterval(updateLog, 1000);
 | 
						|
 | 
						|
            getJSON("/apps/list", populateForm);
 | 
						|
 | 
						|
        </script>
 | 
						|
    </body>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
</html> |