update api and dashboard

This commit is contained in:
Christopher 2020-11-14 08:07:40 +01:00
parent 449393faff
commit e5c792f90d
3 changed files with 76 additions and 61 deletions

10
api.php
View File

@ -30,7 +30,7 @@
}
}
if($currentContainer == NULL)
if(@$currentContainer == NULL)
die("access denied!");
if(isset($_REQUEST['METODE']))
@ -64,7 +64,7 @@
if(strtoupper($_REQUEST['METODE']) == "STATE")
{
echo $container['Status'];
echo $currentContainer['Status'];
}
if(strtoupper($_REQUEST['METODE']) == "LOG")
@ -73,6 +73,12 @@
echo clean($logOutput);
}
if(strtoupper($_REQUEST['METODE']) == "HTMLLOG")
{
$logOutput = $dockerClient->getContainerLogs($currentContainer['Id']);
echo html_entity_decode(clean($logOutput))."\n";
}
if(strtoupper($_REQUEST['METODE']) == "COMMAND")
{
if(isset($_REQUEST['COMMAND']))

View File

@ -27,6 +27,7 @@ if(isset($_SESSION['LOGIN']))
$HTML->ReplaceLayoutInhalt("%%ContainerName%%", trim(ltrim($currentContainer['Names']['0'], '/')));
$HTML->ReplaceLayoutInhalt("%%ContainerLogOutput%%", html_entity_decode(clean($logOutput)));
$HTML->ReplaceLayoutInhalt("%%STATUS%%", html_entity_decode($currentContainer['Status']));
$HTML->ReplaceLayoutInhalt("%%APIKey%%", trim($currentContainer['Labels']['remotepass']));
$HTML->build();
echo $HTML->ausgabe();

View File

@ -13,16 +13,13 @@
<link rel="stylesheet" href="./style/default/css/owl.carousel.css">
<link rel="stylesheet" href="./style/default/css/owl.theme.css">
<link rel="stylesheet" href="./style/default/css/owl.transitions.css">
<link rel="stylesheet" href="./style/default/css/meanmenu/meanmenu.min.css">
<link rel="stylesheet" href="./style/default/css/animate.css">
<link rel="stylesheet" href="./style/default/css/normalize.css">
<link rel="stylesheet" href="./style/default/css/scrollbar/jquery.mCustomScrollbar.min.css">
<link rel="stylesheet" href="./style/default/css/notika-custom-icon.css">
<link rel="stylesheet" href="./style/default/css/wave/waves.min.css">
<link rel="stylesheet" href="./style/default/css/wave/button.css">
<link rel="stylesheet" href="./style/default/css/main.css">
<link rel="stylesheet" href="./style/default/style.css">
<link rel="stylesheet" href="./style/default/css/responsive.css">
<link rel="stylesheet" href="./style/default/css/wave/button.css">
<script src="./style/default/js/vendor/modernizr-2.8.3.min.js"></script>
</head>
<body>
@ -47,7 +44,7 @@
<div class="breadcomb-ctn">
<h2>Container Manager</h2>
<p>%%ContainerName%%</p>
<p>Status: %%STATUS%%</p>
<p id="servicestatus">Status: %%STATUS%%</p>
</div>
</div>
</div>
@ -56,7 +53,8 @@
</div>
</div>
</div>
<div class="main-menu-area mg-tb-40">
<div class="breadcomb-area mg-tb-40">
<div class="container" style="text-align:center;">
<form method="post" action="index.php?page=do" enctype="multipart/form-data">
<button type="submit" name="do-start" value="start" class="btn-lg notika-btn-lightgreen waves-effect">START CONTAINER</button>
@ -66,6 +64,7 @@
</form>
</div>
</div>
<div class="breadcomb-area mg-tb-40">
<div class="container">
<div class="row">
@ -106,33 +105,42 @@
var messageBody = document.querySelector('#consoleview');
messageBody.scrollTop = messageBody.scrollHeight - messageBody.clientHeight;
// Update every 3 second
var timer = setInterval(function() {
let logrequest = new XMLHttpRequest();
logrequest.responseType = 'text';
logrequest.open('GET', "/api.php?METODE=HTMLLOG&CONTAINER=%%ContainerName%%&KEY=%%APIKey%%");
let statusrequest = new XMLHttpRequest();
statusrequest.responseType = 'text';
statusrequest.open('GET', "/api.php?METODE=STATE&CONTAINER=%%ContainerName%%&KEY=%%APIKey%%");
logrequest.onload = function() {
var messageBodyPreCheck = document.querySelector('#consoleview');
var reload = messageBodyPreCheck.scrollTop == (messageBodyPreCheck.scrollHeight - messageBodyPreCheck.clientHeight);
if (reload == true)
{
document.getElementById("consoleview").innerHTML = logrequest.response;
var messageBody = document.querySelector('#consoleview');
messageBody.scrollTop = messageBody.scrollHeight - messageBody.clientHeight;
}
};
statusrequest.onload = function() {
document.getElementById("servicestatus").innerHTML = "Status: " + statusrequest.response;
};
logrequest.send();
statusrequest.send();
}, 3000);
</script>
<script src="./style/default/js/vendor/jquery-1.12.4.min.js"></script>
<script src="./style/default/js/bootstrap.min.js"></script>
<script src="./style/default/js/wow.min.js"></script>
<script src="./style/default/js/jquery-price-slider.js"></script>
<script src="./style/default/js/owl.carousel.min.js"></script>
<script src="./style/default/js/jquery.scrollUp.min.js"></script>
<script src="./style/default/js/meanmenu/jquery.meanmenu.js"></script>
<script src="./style/default/js/counterup/jquery.counterup.min.js"></script>
<script src="./style/default/js/counterup/waypoints.min.js"></script>
<script src="./style/default/js/counterup/counterup-active.js"></script>
<script src="./style/default/js/scrollbar/jquery.mCustomScrollbar.concat.min.js"></script>
<script src="./style/default/js/sparkline/jquery.sparkline.min.js"></script>
<script src="./style/default/js/sparkline/sparkline-active.js"></script>
<script src="./style/default/js/flot/jquery.flot.js"></script>
<script src="./style/default/js/flot/jquery.flot.resize.js"></script>
<script src="./style/default/js/flot/flot-active.js"></script>
<script src="./style/default/js/knob/jquery.knob.js"></script>
<script src="./style/default/js/knob/jquery.appear.js"></script>
<script src="./style/default/js/knob/knob-active.js"></script>
<script src="./style/default/js/wave/waves.min.js"></script>
<script src="./style/default/js/wave/wave-active.js"></script>
<script src="./style/default/js/chat/jquery.chat.js"></script>
<script src="./style/default/js/login/login-action.js"></script>
<script src="./style/default/js/todo/jquery.todo.js"></script>
<script src="./style/default/js/plugins.js"></script>
<script src="./style/default/js/main.js"></script>
<script src="./style/default/js/tawk-chat.js"></script>
</body>
</html>