proxadmin/app/templates/vmanager/dashboard.html
2017-05-31 18:20:53 +03:00

206 lines
6.9 KiB
HTML

{% extends "base.html" %}
{% block scripts %}
{{ super() }}
<script type="text/javascript">
//$(function() {
// $('.confirm').click(function() {
// return window.confirm("Are you sure?");
// });
//});
</script>
{% endblock %}
{% block page_content %}
<script>
// Only run what comes next *after* the page has loaded
addEventListener("DOMContentLoaded", function() {
// Grab all of the elements with a class of command
// (which all of the buttons we just created have)
var commandButtons = document.querySelectorAll(".command");
for (var i=0, l=commandButtons.length; i<l; i++) {
var button = commandButtons[i];
// For each button, listen for the "click" event
button.addEventListener("click", function(e) {
// When a click happens, stop the button
// from submitting our form (if we have one)
e.preventDefault();
if (window.confirm("Are you sure?")) {
var clickedButton = e.target;
var command = clickedButton.value;
var vmid = clickedButton.getAttribute('vmid');
// Now we need to send the data to our server
// without reloading the page - this is the domain of
// AJAX (Asynchronous JavaScript And XML)
// We will create a new request object
// and set up a handler for the response
var request = new XMLHttpRequest();
request.onload = function() {
// We could do more interesting things with the response
// or, we could ignore it entirely
//alert(request.responseText);
};
// We point the request at the appropriate command
request.open("GET", "/vmanager/" + command + "/" + vmid, true);
// and then we send it off
request.send();
//alert("command " + command + " executed.");
}
});
}
}, true);
</script>
<style type="text/css">
.tg {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:1px 1px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg th{font-family:Arial, sans-serif;font-size:14px;padding:1px 1px;font-weight:normal;padding:border-style:solid;border-width:1px;overflow:hidden;word-break:normal;}
.tg .tg-yw4l{vertical-align:top}
</style>
<div class="container-fluid">
<br />
<div class="row">
{% block sidebar %}
<div class="col-md-4">
<div class="row">
<div class="col-md-12">
{% include "/settings/acc_avatar.html" %}
</div>
</div>
</div>
{% endblock %}
<div class="col-md-8">
<div class="panel panel-default" id="contracts">
<div class="panel-heading">Services</div>
<div class="panel-body"><p>
{% for contract in inv_contracts %}
{{ contract.description }}<br />
{{ contract.units }}<br />
{% if not contract.discount == 0 %}
Discount %{{ contract.discount }}<br />
Credit: {{ contract.credit }}<br /><br />
{% endif %}
{% endfor %}
<p>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default" id="contracts">
<div class="panel-heading">Domains</div>
<div class="panel-body"><p>
{% for domain in inv_domains %}
{{ fqdn }}<br />
{% endfor %}
<p>
</div>
</div>
</div>
<div class="col-md-8">
<div class="panel-group">
<div class="panel panel-default" id="deploys">
<div class="panel-heading">Deployments</div>
<div class="panel-body"><p>
{% for deploy in inv_deployments %}
<ul class="nav nav-pills">
<li class="active"><a data-toggle="pill" href="#home{{ deploy.machine_id }}">{{ deploy.machine_alias }}</a></li>
<li><a data-toggle="pill" href="#control{{ deploy.machine_id }}">Control</a></li>
<li><a data-toggle="pill" href="#stats{{ deploy.machine_id }}">Stats</a></li>
<li><a data-toggle="pill" href="#keys{{ deploy.machine_id }}">Keys</a></li>
</ul>
<div class="tab-content">
<div id="home{{ deploy.machine_id}}" class="tab-pane fade in active">
<br />
</div>
<div id="control{{ deploy.machine_id}}" class="tab-pane fade">
<br />
{% if status[deploy.machine_id] == 'running' %}
<button class="btn btn-default btn-info" onclick="window.open('/vmanager/vmvnc/{{ deploy.machine_id }}', '_blank');"><span class="glyphicon glyphicon-console" aria-hidden="true"></span> Console</button>
<button class="confirm command command-vmshutdown btn btn-default btn-warning" value="vmshutdown" vmid="{{ deploy.machine_id }}"><span class="glyphicon glyphicon-off" aria-hidden="true"></span> Shutdown</button>
<button class="confirm command command-vmstop btn btn-default btn-danger" value="vmstop" vmid="{{ deploy.machine_id }}"><span class="glyphicon glyphicon-alert" aria-hidden="true"></span> Force Stop</button>
{% else %}
<button class="command command-vmstart btn btn-default btn-success" value="vmstart" vmid="{{ deploy.machine_id }}"><span class="glyphicon glyphicon-play" aria-hidden="true"></span> Start</button>
{% endif %}
<br /><br />
Grid ID# {{ deploy.machine_id }}<br >
CPU: {{ deploy.machine_cpu }} cores</br >
Memory: {{ deploy.machine_mem }} MB</br >
Disk Space: {{ deploy.machine_hdd }} GB</br >
<br />
Expiry date: {{ deploy.date_expire }}</br >
Credit: {{ deploy.credit }}
</div>
<div id="stats{{ deploy.machine_id}}" class="tab-pane fade">
<table class="tg">
<tr>
<th class="tg-yw4l">Network Bandwidth</th>
</tr>
<tr>
<td class="tg-yw4l"><img src="data:image/png;base64,{{ rrd[deploy.machine_id]['net'] }}" class="img-responsive"><br></td>
</tr>
</table>
<table class="tg">
<tr>
<th class="tg-yw4l">CPU Load</th>
</tr>
<tr>
<td class="tg-yw4l"><img src="data:image/png;base64,{{ rrd[deploy.machine_id]['cpu'] }}" class="img-responsive"><br></td>
</tr>
</table>
<table class="tg">
<tr>
<th class="tg-yw4l">Memory Usage</th>
</tr>
<tr>
<td class="tg-yw4l"><img src="data:image/png;base64,{{ rrd[deploy.machine_id]['mem'] }}" class="img-responsive"><br></td>
</tr>
</table>
<table class="tg">
<tr>
<th class="tg-yw4l">Disk Input/Output</th>
</tr>
<tr>
<td class="tg-yw4l"><img src="data:image/png;base64,{{ rrd[deploy.machine_id]['hdd'] }}" class="img-responsive"><br></td>
</tr>
</table>
</div>
<div id="keys{{ deploy.machine_id}}" class="tab-pane fade">
Not yet implemented.
</div>
</div>
<br />
{% endfor %}
</div>
</div>
</div>
</div>
</div>
<div class="row">
</div>
</div>
{% endblock %}