183 lines
11 KiB
HTML
183 lines
11 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block styles %}
|
|
{{ super() }}
|
|
{% endblock %}
|
|
|
|
{% block scripts %}
|
|
{{ super() }}
|
|
<script type="text/javascript">
|
|
$('a[data-toggle="tooltip"]').tooltip({
|
|
animated: 'fade',
|
|
placement: 'bottom',
|
|
html: true
|
|
});
|
|
</script>
|
|
|
|
<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/" + command + "/" + vmid, true);
|
|
// and then we send it off
|
|
request.send();
|
|
alert("command " + command + " executed.");
|
|
window.location.reload();
|
|
}
|
|
});
|
|
}
|
|
}, true);
|
|
</script>
|
|
{% endblock %}
|
|
|
|
{% block page_content %}
|
|
{% if current_user.fresh_user == True %}
|
|
<div class="row">
|
|
<center>
|
|
<img class="img-responsive img-rounded" src="{{ url_for('static', filename='images/createvm.gif') }}" alt="ping">
|
|
</center><br/>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="row">
|
|
|
|
{% if inv_deployments != [] %}
|
|
<div class="col-md-12">
|
|
<div class="panel panel-info" id="deployments">
|
|
<div class="panel-heading">Datacenter Manager</div>
|
|
<div class="panel-body"><p>
|
|
<div class="panel-group" id="deploycubes" role="tablist" aria-multiselectable="true">
|
|
{% for deploy in inv_deployments %}
|
|
{% include "panel/vdc_pool.html" %}
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if inv_services != [] %}
|
|
<div class="col-md-12">
|
|
<div class="panel panel-info" id="services">
|
|
<div class="panel-heading">Services</div>
|
|
<div class="panel-body">
|
|
<div class="no-more-tables">
|
|
{% include "panel/services.html" %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
{% if inv_domains != [] %}
|
|
<div class="col-md-12">
|
|
<div class="panel panel-info" id="domains">
|
|
<div class="panel-heading">Domains</div>
|
|
<div class="panel-body">
|
|
<div class="no-more-tables">
|
|
<table class="table table-hover table-striped table-condensed cf">
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Expiry Date</th>
|
|
<th>Time Left</th>
|
|
</tr>
|
|
<tbody>
|
|
{% for domain in inv_domains %}
|
|
<tr>
|
|
<td data-title="Domain"><b><a href="http://{{ domain.fqdn }}">{{ domain.fqdn }}</a></b></td>
|
|
<td data-title="Expiry Date">{{ domain.date_expire }}</td>
|
|
{% if domain.enabled == False %}
|
|
<td data-title="Time Left">EXPIRED</td>
|
|
{% else %}
|
|
{% if domain.warning == True %}
|
|
<td data-title="Time Left"><button class="btn btn-default btn-warning" onclick="window.open('/dmanager/activate/{{ domain.pid }}','_self');"><span class="glyphicon glyphicon-bell" aria-hidden="true"></span> Renew </button></td>
|
|
{% else %}
|
|
<td data-title="Time Left">{{ domain.daysleft }} day(s)</td>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- Address Book icon by Icons8 -->
|
|
<button class="btn btn-default" onclick="window.open('{{ url_for('dmanager.createdomain') }}','_self')"><img class="icon icons8-Address-Book" width="32" height="32" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACOElEQVRYhe2Y3W7aQBCF83ZIVdTn4iK973tUCo1KoVVbCC0hSqUoKrKxoQYDCf5BGBtjz+nFeMFO41RtyIIqjzTCs1jMt7OzZ7GPjgrboR2ffK2Wyk3sw49PWm/+CFgqN/G6HW+8VG7iVCEpXio3UQD+94DCX+T1474B03kLwAKwAJQJWNUI17eEvgs4AbBcA1MP0BzgwtwzYMckrCIgigHLZyjFAswFsAgBAJgtgc8/9wA4nDPA1ANq+sP3XI4J/hogAr48ApkW6pevWuMnA15NCADQs5EZ/9jnJT9VCHWdr2s6IYwBLwTOevmAwp5cwarGCRchUFF5rGEQlutNDvRs/tQdZCakWHh+wJs7TnY+5PhDnxATEERAe0T4NqJN/3UToLcqgQiYeBIAzQX/kFiugctxx/x9Et+n2zE3APy1BMD5iqVExKJa71L9JZb0crwds30gjCUARjHrnYhjAtwgm7hrcbKGwXFF5fucQAKgE7DupeP7lbF9ZPq0YXBFNUcCYD/puXqifUpSretb3gw3d4Spx2Oqzb069XhS7zUJMiP6y5hzNT4N+DQR5gYsP35KdoIIaBoShXq25MStZAlrOp8a50PaaONZj3BhEtojymygPEDNIWjOI88nfwNY13mzxAT8mG2h7ntFzf/uWQEF5CTpNS/kPwhdC7ia8C4euMAq2vaqdEDhHZPF2vax6UV/zZKiWPnnrzTAXXgBWAAeAmBKqA/z1ceDUAXgLgEP/hVwYf9gvwBORombjyORBAAAAABJRU5ErkJggg=="> Order</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<!--<button class="btn btn-default btn-lg btn-block" onclick="window.open('{{ url_for('dmanager.createdomain') }}','_self')"><img class="icon icons8-Address-Book" width="32" height="32" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAACOElEQVRYhe2Y3W7aQBCF83ZIVdTn4iK973tUCo1KoVVbCC0hSqUoKrKxoQYDCf5BGBtjz+nFeMFO41RtyIIqjzTCs1jMt7OzZ7GPjgrboR2ffK2Wyk3sw49PWm/+CFgqN/G6HW+8VG7iVCEpXio3UQD+94DCX+T1474B03kLwAKwAJQJWNUI17eEvgs4AbBcA1MP0BzgwtwzYMckrCIgigHLZyjFAswFsAgBAJgtgc8/9wA4nDPA1ANq+sP3XI4J/hogAr48ApkW6pevWuMnA15NCADQs5EZ/9jnJT9VCHWdr2s6IYwBLwTOevmAwp5cwarGCRchUFF5rGEQlutNDvRs/tQdZCakWHh+wJs7TnY+5PhDnxATEERAe0T4NqJN/3UToLcqgQiYeBIAzQX/kFiugctxx/x9Et+n2zE3APy1BMD5iqVExKJa71L9JZb0crwds30gjCUARjHrnYhjAtwgm7hrcbKGwXFF5fucQAKgE7DupeP7lbF9ZPq0YXBFNUcCYD/puXqifUpSretb3gw3d4Spx2Oqzb069XhS7zUJMiP6y5hzNT4N+DQR5gYsP35KdoIIaBoShXq25MStZAlrOp8a50PaaONZj3BhEtojymygPEDNIWjOI88nfwNY13mzxAT8mG2h7ntFzf/uWQEF5CTpNS/kPwhdC7ia8C4euMAq2vaqdEDhHZPF2vax6UV/zZKiWPnnrzTAXXgBWAAeAmBKqA/z1ceDUAXgLgEP/hVwYf9gvwBORombjyORBAAAAABJRU5ErkJggg=="> Order</button>-->
|
|
{% endif %}
|
|
|
|
|
|
{% if inv_addresses != [] %}
|
|
<div class="col-md-12">
|
|
<div class="panel panel-info" id="addresses">
|
|
<div class="panel-heading">Communications</div>
|
|
<div class="panel-body"><p>
|
|
<img width="32" height="32" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAEW0lEQVRYhe3YT0zbVhwH8HfgwKGHHnrYYYcddkBVT7t0kybNh8kvgTiBJlTdhCba0R03qVo3NBUtUkv88sdOgtapYu0mFQ1tY4BGK9qKaZmYkud/BFzKyBYYGmgRNCGBjf+ovB0SVyklJHEM7aR9pafIVmJ//Ht5z34G4P8AAJHQDxHegm48bkJCj4nFzZQzdPRZux4nByT5jUYRGbK4xZATmFhM1XmFXsoZqtJ7DMoZOkK7IjWQxS0Q4aE87FcVVdPE4pdsnJQ816muWznxViXIXcdthm4hk0PO6EJSzlB1PS/9cX04kYwlt8m7nWr6dFD5qVwkREI/jfBa9jPSSjlDRwAAwOwWXoQI/6JVsmyg2YM/uvD15N8zSztkZmmHxJLb5L0b6lq5ldzjPxiiUfgMAACYXOHXIItViPAWdIXPloyjnKGjFq+4oiY2iQbUkHoqyfiUY7QrYoEIh3LIbbNbeBWAXHdn981p1S0ae0DmP/5mcj4fVykyd+FVJiRczoEmKWeoGgAANLgJhZtKvGIxNTy18hSu0u7WooFoFPkQAABoFL6U3cZdRX9Mt4dPnO4YyRTClVPJWq9ykuHlGMPLMRMSXn8MZAU7RJhAt9ANAAC0O+zQ5seiQCsntbX1xVPFgKUgrbwS//ROirQNJomVV6a1/WbX8PFcNy9lt4Xj2S7Ga0WBjR3K3R4lWRSXjzx/4z6xeEWya7QShpPJXkAAsqPbhISeQtsF4wgq6lBsuWTgfpU0e6Q3LD6JMJwchyx+s+jJS4mNl+aVufWygPshIcLEEJgWq09MR//aKBtYaHQbDmzwywk9FSxUScOBjqCi3vt1STdwN9JwoN0vD3SLCxUB87vb4hWJUU9BAAAAGjtGLl76/veiE3WpyLOdY0TPbbFgIBt52cqJ60YAS5nMdaWeFxfKnQsPFfn2ZyPtH9ycWDQKaDiScoaqGU5c3u+J5pkjzR7h3PtdE8tGAvNHd8VrHMoZqmoMKqP+e7MPDwJpSCUZn3KsnpcWeqPJjecWCT34FYYTdwbUtKFADXn+C3XNwol9uoH24AjfdO1++q2ro6TjxzlDgX3R5GqDX868cy3q0IWjXZGaWo+4/t34Bumd2CItX06QC92TpNLRrSY2ibM/vmnjpFnaFanRXT0bL09eGUxkBqd2yODUDrkdf0TYuwli5UTS+u1vD8uFqolNcuWH6bTFK643XY1er+i1RwMvXzzz+dji7fgjogG1BhEmFo9wmfGJaUdQXnXdmt4aUNPk5/g/RHtUG5/fItKfa+TOgwwJDs1uN3eOZWo94gbjE27WeqQXdMMAyL6WqPOKK13R1adwGlD7Lt0ePmH24E/sAQWf8stxGyclIcKE8YnL9bw0eyogR+s8gtfEYsqwe3GDXxlu7Z1J7YXbDTyU2ALKSXtAju1ele3X7IEn17oHmsYOJd4/uljWH743miKO4JNLyQMLRFjXdHFoXf2fAOpthwJ8XvMve9hz7NcDU4IAAAAASUVORK5CYII="> Public<br />
|
|
<div id="routers" class="no-more-tables">
|
|
<table class="table table-hover table-striped table-condensed cf">
|
|
<thead>
|
|
<tr>
|
|
<th>IP</th>
|
|
<th>Region</th>
|
|
<th>Reverse DNS</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for address in inv_addresses %}
|
|
<tr>
|
|
<td data-title="IP">{{ address.ip }}</td>
|
|
<td data-title="Region">{{ regions[address.region_id] }}</td>
|
|
<td data-title="RDNS">{{ address.rdns }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<!--<img width="32" height="32" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAWRSURBVGhD7VlpTBxVHCfGeMTE44OaGK/4QROPD37QDx5po+zdLTZSrdFoNNpaLabVWI+mklZhZnZAFBqljYFuU+tRaYWU1ioKAjvHdleXq1zlLOEoVNBW6B7s8/+2b+3u8hZmmZnFmP6SXwbevJn3+83/vf87NuMidIKBd91gYoQyEys6M9mGW0lxHIwfum8xMsIeXA/XJ8X/LRATCNPICn0mRryd3IrAyrtui5RfqFNObqWGZUW115I/dQGORFQkEfqvGXyNNUHojDyYCsysdLOFE4fhZRtJkebAbSSKJWaWzylnxH5cnzyqDAbed5WVlzpe2OkLwkvCeppJ8uXjiE0kdjtFsDjEPc+UeP0towG03zOOzJw4u1RmIuWLMWFipCwsvK77DOqbCkeYJjPLaUZwOamiHMtya69Y4ZCG+CP94aiJdJjRPCLw4JtZhXKg/VQwzoSeZhJTLI0pmVmd23qZzSGP7qwbopqIUkszKWUt+F9R1jIzwiqLQwq1jQWoBmKplRkQGD+PxGSnJN1t4XnEyokH3tvfFaQJpzFVMyZOetTACJvwlRSB2JiZnZJi55iB+uQWHTDIL4VozFR4x6mik1GpGRDxhgnqPVXim8ZXWDvl4PLH8sQbF1pr4fLoWgvXJ8V0gJAHseNWBd0qkUrMwLw0sfngCCr1zKLN3w8jCydNkFvaAsK6/ukS7wxNqBKeNyPF9uU4QrQjBtJgRCjctPe4nyZSKSNmYDkDXeAzYGYsIVo7IGoou9gXhDo4ehtI09oCvljFR1W9VIGpcL5uBmVNJlb4GYw8Qoq0h7VA+qno6ABVXKpMZgai3gDRYci/+sDOSy6tjGDSzKTFiI2Xjjiq+6miFstEM2kxAo2Vb/2uc85CUS1jzaTFCKTIra980bzo9DsfY8z06G4E1lmr7QVSoHeSLkYtiRlYhgg1pEl9kMk13oQnrvqeC5sprUnM6LptjsDGy32ltfMv4dUyMQHoAojItudLfz9HE6AldTdj4hrvgsEYru36iypAS+puBs8nb3/doXhPooa6mjGyrodgMxP+pVP/qGDqagaW2N+8tMvn75mcpTauNXUzg1OxzSH++cnRAc1n+mTUzQzsre34xZVNp6kN60HdzMCObzsM/mC6xgumfmZYsd5eIKMfjk9RG9aDX8pj+JgUtsjCOiJDHfBYga/z98tlbcjmkNFeaZTasJb0Ds2gFyHRQE8YeJxx33FeiUpA9qp6rrTJX909i9gfR5AVzGyp6Eato6mftCjhV+4xtLJADlh5ud6cV389kaEO+NQRHxI4PWfR4RPhCJ2eM+jZz30o62M3KmsYRl0TIaqgVFkHK4n15c1+iL7fwgnv5+aiS4gMdchkPddANMa3HOwPR01EeQiis87Zjo9zQquK3P6SmkHkHpymCpyPXadDqOK3CbTB2eLHyyKbQ6rSrCtFYeHE0ieLvf6qzlCciSi3HRpCFofsgb1FDvTlbrz8h8XmDFfdi749dgrh31WaR/yoEyLWC6LxWbJ7YBpVt/yB8Or6rX3tAZwN4WNMWx3SbhMr30Oa1g6GPOFhyBbhXeIU1QQmNgIC3OSRDAsj3GdkxXdBXA2UT2JjNELXCdh5uQOuJUbO9UR2oXAleYW2MH96+HIbJ53YuK87RDMQZaKRRJhzpavNedLd5nzXA/gMy8y47sc/B2jW9xOBxwLO1cZ88R3CA9BlQh9UDqLtIDYZ15a3IxMnnjSwUrZu4pTCxjRcZ+PFk9nFx869trt1GvN1Z2sAiHL2tM1LXOfV8uZZOy8FVvBSJXnl0gBHAptQk0JdvWcjfd+SL99JXpt+4MG5tqxZ9bY2Moj1PMtdCP8rI2t2eIM4r6vhkhuBxtdATm9YWSg3qqGtQPrVkOe6l7z2IlJDRsY/RH3PAGTygMgAAAAASUVORK5CYII="> No Public<br />-->
|
|
|
|
|
|
<!--<button class="btn btn-default" onclick="window.open('{{ url_for('panel.dashboard') }}','_self')"><span class="glyphicon glyphicon-plus" aria-hiddent="true"></span> Assign</button> -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
|
|
|
|
<div class="row">
|
|
</div>
|
|
|
|
{% endblock %}
|
|
|