proxadmin/app/templates/main/dashboard.html

315 lines
20 KiB
HTML
Raw Normal View History

2017-03-08 13:53:09 -05:00
{% extends "base.html" %}
2017-06-01 18:27:17 -04:00
{% block styles %}
{{ super() }}
2017-10-07 11:39:50 -04:00
<style type="text/css">
.panel-transparent {
background: none;
}
.panel-transparent .panel-heading {
background: rgb(255, 255, 255); /* fallback */
background: rgba(255, 255, 255, 0.7)!important;
}
.panel-transparent .panel-body{
background: rgb(255, 255, 255); /* fallback */
background: rgba(255, 255, 255, 0.7)!important;
}
</style>
2017-06-01 18:27:17 -04:00
<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}
2017-06-08 10:42:09 -04:00
@media only screen and (max-width: 768px) {
/* Force table to not be like tables anymore */
2017-12-14 18:00:02 -05:00
.no-more-tables table,
.no-more-tables thead,
.no-more-tables tbody,
.no-more-tables th,
.no-more-tables td,
.no-more-tables tr {
2017-06-08 10:42:09 -04:00
display: block;
}
/* Hide table headers (but not display: none;, for accessibility) */
2017-12-14 18:00:02 -05:00
.no-more-tables thead tr {
2017-06-08 10:42:09 -04:00
position: absolute;
top: -9999px;
left: -9999px;
}
2017-12-14 18:00:02 -05:00
.no-more-tables tr { border: 1px solid #ccc; }
2017-06-08 10:42:09 -04:00
2017-12-14 18:00:02 -05:00
.no-more-tables td {
2017-06-08 10:42:09 -04:00
/* Behave like a "row" */
border: none;
border-bottom: 1px solid #eee;
position: relative;
padding-left: 50%;
white-space: normal;
text-align:left;
}
2017-12-14 18:00:02 -05:00
.no-more-tables td:before {
2017-06-08 10:42:09 -04:00
/* Now like a table header */
2017-12-14 18:00:02 -05:00
/* position: absolute; */
2017-06-08 10:42:09 -04:00
/* Top/left values mimic padding */
top: 6px;
left: 6px;
width: 45%;
padding-right: 10px;
white-space: nowrap;
2017-12-14 18:00:02 -05:00
text-align: left;
2017-06-08 10:42:09 -04:00
font-weight: bold;
}
/*
Label the data
*/
2017-12-14 18:00:02 -05:00
.no-more-tables td:before { content: attr(data-title); }
2017-06-08 10:42:09 -04:00
}
2017-06-01 18:27:17 -04:00
</style>
{% endblock %}
2017-05-25 01:54:33 -04:00
{% block scripts %}
{{ super() }}
<script type="text/javascript">
2017-06-01 18:27:17 -04:00
$('a[data-toggle="tooltip"]').tooltip({
animated: 'fade',
placement: 'bottom',
html: true
});
2017-05-25 01:54:33 -04:00
</script>
2017-06-07 11:04:27 -04:00
2017-03-08 13:53:09 -05:00
<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)
2017-05-25 01:54:33 -04:00
e.preventDefault();
2017-03-08 13:53:09 -05:00
2017-05-25 01:54:33 -04:00
if (window.confirm("Are you sure?")) {
2017-03-08 13:53:09 -05:00
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
2017-10-15 07:38:38 -04:00
request.open("GET", "/vmanager/command/" + command + "/" + vmid, true);
2017-03-08 13:53:09 -05:00
// and then we send it off
request.send();
2017-06-06 09:49:32 -04:00
alert("command " + command + " executed.");
2017-06-04 10:10:38 -04:00
window.location.reload();
2017-05-25 01:54:33 -04:00
}
});
}
2017-03-08 13:53:09 -05:00
}, true);
</script>
2017-06-01 18:27:17 -04:00
{% endblock %}
2017-03-08 13:53:09 -05:00
2017-06-01 18:27:17 -04:00
{% block page_content %}
2017-06-13 19:24:39 -04:00
{% 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 %}
2017-03-08 13:53:09 -05:00
<div class="row">
2017-06-01 18:27:17 -04:00
<div class="col-md-12">
2017-06-04 10:10:38 -04:00
<div class="panel panel-info" id="deployments">
2017-10-07 11:39:50 -04:00
<div class="panel-heading">Device Manager</div>
2017-03-08 13:53:09 -05:00
<div class="panel-body"><p>
2017-09-20 20:08:58 -04:00
{% if inv_deployments != [] %}
2017-12-14 19:36:32 -05:00
{% include "main/dashboard_pool.html" %}
2017-07-28 21:31:44 -04:00
<!-- Cloud Storage icon by Icons8 -->
2017-09-20 20:08:58 -04:00
{% else %}
<button class="btn btn-default btn-lg btn-block" onclick="window.open('{{ url_for('vmanager.createvm') }}','_self')"><img class="icon icons8-Cloud-Storage" width="48" height="48" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAEEklEQVRYhe3Xy0/bBhwHcA6btEMP0077A3boYYdK23EHLiQ0hQBtVC1S9zjs0L069TCkSUWNpgZCshDYItZOI+tKH7Cibgw6Wu2RAXWMYyc8mpAoUAIEp6VuTR5OwAnJd5dBEbYJKDSA1J/0PfjgXz6y5W/ssrKDNm9dYl4+aqYeq00kSpnK5pGUusX1WkGgxux+/ePLvmQ4lkcp88nPfkHV6DpcEFhpGnnH2D8XKzXwQv98UtXoqioIVDeRH/1IcKlSAzsIbqXSTJ0tCKy2uNt/uy+slhrYez8JrY25XhCotdKDgzNiSXHhWB5DYRFaK+0tfAWt9Pzow9WSA8cereKYheILAo/bGDHE72z5n8E46rsC0LXR0LXRqO8K4O5kbEc7pvg8TrQxuXKD8xVFnLrJ9canVyYTO1k84FvCe+1eXCcWwPLLYPlldJMsPrg4ipsMtyPkmasBQWUk3twKWGm8PRff7kImsoxT7V5MLwrYPPNP0tDbPfh3KrltoGkgIqgaXbVbAT9zuLi00oIHfA6O4ShOOyZQZaFQZ3Pjbx8nwa3NcPAp1CYSersH529NwcuubAn8iXya0VjcXykCtVa6o9cn5JVwZzr9OHcziNBDAWI2hzCXwmourwgEAF7IgEuI6CJZ6FppMJFlRWCfX0BNq6dLEVjdQlODYfmK6RiK4twvwS0xheYasYCGnpAi8N6sCK2V8SsCq76hFsce5WRPPu2YQIBNFgXkEiL0do8icGIxB42Fisviyg3Ol463MtkpmYoZj4qoslAQs7migACgNpFo7Hsge6unl/I4+Z0nW25wHpIAVY2uw593BiQVMx4V8eGlMVwZjhSNA4B4OgtL/zROfsvIIs/eCAoVRuKIHLC26Y+IBGjqn0GHc25XcBvnh39mcaF3WgK03F1IqZoJnQR41EzVO1xPVjaf8P73o2D55V0HTi8K0LXREmAnxWe1VtogrZgW+sbvPkFygt7uAZcQdx2o9MDcnkyh1sb8KgNkvEMyFXP+1hS6SXbXgd0kK1s5rrkMalqYSQlQY6HichXjZVdwqt2LHioKXsgUDeMSIrpJFnU2N9xzacnv+R7noDFTwuaKOXSizSPKVcwasqEnhDqbu+iPI73dg4aekCwuHMtjZikPvd2TLTc4X10HVhiJI19cDe7oLeZ55suukFDRfO/tZxXTTOhMdxZK/iWnFNtf0bTKRLy7DjxmcX99meLFvYat5RodW61uYZo2PsH9fX5pxexV7gTTqGn1DGzswODwbGbPYWsZiWSgtTGhZxVjpoTxRfm3mL2In8tBY6ZS60C1icRFJrevojaReAF8bkAykkcqAxDz+W0dFxOlXVsCU///5aYy2NZxMVHadbCv4H7IC+CuA/djyg7C/AeJ36h1J+7ehgAAAABJRU5ErkJggg=="> Create</button>
{% endif %}
2017-03-08 13:53:09 -05:00
</div>
</div>
</div>
2017-12-14 19:36:32 -05:00
2017-06-28 10:42:21 -04:00
{% if inv_domains != [] %}
<div class="col-md-12">
2017-06-04 10:10:38 -04:00
<div class="panel panel-info" id="domains">
2017-03-08 13:53:09 -05:00
<div class="panel-heading">Domains</div>
2017-09-20 20:08:58 -04:00
<div class="panel-body">
2017-12-14 18:00:02 -05:00
<div class="no-more-tables">
2017-06-04 10:10:38 -04:00
<table class="table table-hover table-striped table-condensed cf">
<thead>
<tr>
<th>Name</th>
<th>Expiry Date</th>
<th>Time Left</th>
2017-06-04 10:10:38 -04:00
</tr>
<tbody>
2017-03-08 13:53:09 -05:00
{% for domain in inv_domains %}
2017-06-04 10:10:38 -04:00
<tr>
2017-06-08 10:42:09 -04:00
<td data-title="Domain"><b><a href="http://{{ domain.fqdn }}">{{ domain.fqdn }}</a></b></td>
<td data-title="Expiry Date">{{ domain.date_expire }}</td>
2017-07-13 10:32:24 -04:00
{% if domain.enabled == False %}
<td data-title="Time Left">EXPIRED</td>
{% else %}
2017-07-11 12:28:32 -04:00
{% if domain.warning == True %}
2017-07-28 21:31:44 -04:00
<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>
2017-07-11 12:28:32 -04:00
{% else %}
<td data-title="Time Left">{{ domain.daysleft }} day(s)</td>
{% endif %}
{% endif %}
2017-06-04 10:10:38 -04:00
</tr>
2017-03-08 13:53:09 -05:00
{% endfor %}
2017-06-04 10:10:38 -04:00
</tbody>
</table>
2017-06-08 10:42:09 -04:00
</div>
2017-07-28 21:31:44 -04:00
<!-- Address Book icon by Icons8 -->
2017-09-20 20:08:58 -04:00
<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>
2017-03-08 13:53:09 -05:00
</div>
</div>
</div>
2017-09-20 20:08:58 -04:00
{% 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>-->
2017-06-28 10:42:21 -04:00
{% endif %}
2017-03-08 13:53:09 -05:00
2017-09-20 20:08:58 -04:00
2017-06-28 10:42:21 -04:00
{% if inv_addresses != [] %}
<div class="col-md-12">
2017-06-04 10:10:38 -04:00
<div class="panel panel-info" id="addresses">
2017-10-07 11:39:50 -04:00
<div class="panel-heading">Communications</div>
2017-06-04 10:10:38 -04:00
<div class="panel-body"><p>
2017-12-14 18:00:02 -05:00
<img width="32" height="32" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAALnSURBVGhD7ZrPaxNBFMcXRK/q3+JVEKS7G6kWUVP/A+v/IFgQmpm00R7Ve/2RoiB4EEHag3ZnlR4LRtMqgndb8aTF9X0nbw/qxpnRTTIu+4FHmdk3895350eSmQY1Qzi1qNZmrr988SeDD7v7SyxVdvVhP7vx9EOh4Rl82N1fkOSz3l72fvd7oeFZLaQMmvNbh2KZzEYiuRcJ1YtF8gUJFZmNkEKjPtF3JNVdxEJMDl8OoUwvUIDtSCZ7CBKJ9FLU3jhNgad+M0rISkhBW92nTOb0y6JY5NenuOc5jb+nubp6gAIskX0lAQsnlteP8KOh2Aph96EgFsUV5PsNOSAXfuQOvZ0O2W4o0pNcZaQsITkYKeRAL3KRq9zAdMJIuIgAZQsBEENTbJ+m3lmusoMX9g6GlqusQZI2xu7WYESwTo/d3jzIVWailrqIxTYlNw9zlTV6KlgYu1uDNYOcGiJpcpUZvTORcdEbaJbcj4Va4aIZUv6GGs1x0RuQE3Ljohmai59DkZzhojcgJ+TGRTNYjA2pjnPRG5CT00ZRCxkxtRAueoNRSKOtEjiYbJzi8qRNhty5SRBMd9JXVx68zZ5sfRpqutEEhBTlktu1RzsZcucmAyHL9Hu66EtebpMSUpRLbjfXP9ZCaiGu1EIqI6QS229lPhB/RTuMMWlbcnFcNFMLGTG1EC56g7OQyhw+eHsc1Eouk5AeF83EQt3B0T4XvYFEdJ0O6Gg0Zn07Mp0Wz48iJxyuc5UZHGKT+m0SJLnKGixGG2N3a0j8ErXrOx1iA2p0jsTs+3CtELbSCLnEbTXDVW4M3oK+ZAm5ykjZQiBC5yBUm6vcwXUX7iUosL7+GvvVm0w6GAmI+KertxzcFFHwPhYbddrFNog9PV+4P5mlkKK2us/BFttFLMQs/fMMGwAuWbD9UYDXFHgk19P0l/pWK4hV+vW0C0jIRgi7+0ulhCw8fpfdot/TRYZn/4WQyvyb02QIgh+ETy3CcS71GAAAAABJRU5ErkJggg=="> Private<br />
<div id="bridges" class="no-more-tables">
<table class="table table-hover table-striped table-condensed cf">
<thead>
<tr>
<th>Unit</th>
<th>Network</th>
</tr>
</thead>
<tbody>
{% for bridge in inv_bridges %}
<tr>
<td data-title="Unit">{{ bridge.bridge_id }}</td>
<td data-title="Network">192.168.9.0</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<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">
2017-06-04 10:10:38 -04:00
<table class="table table-hover table-striped table-condensed cf">
<thead>
<tr>
<th>IP</th>
2017-06-28 10:42:21 -04:00
<th>Region</th>
2017-06-07 11:04:27 -04:00
<th>Reverse DNS</th>
2017-06-04 10:10:38 -04:00
</tr>
2017-12-14 18:00:02 -05:00
</thead>
<tbody>
2017-06-04 10:10:38 -04:00
{% for address in inv_addresses %}
<tr>
2017-06-08 10:42:09 -04:00
<td data-title="IP">{{ address.ip }}</td>
2017-06-28 10:42:21 -04:00
<td data-title="Region">{{ region[address.region_id] }}</td>
2017-06-08 10:42:09 -04:00
<td data-title="RDNS">{{ address.rdns }}</td>
2017-06-04 10:10:38 -04:00
</tr>
2017-12-14 18:00:02 -05:00
{% endfor %}
</tbody>
2017-06-04 10:10:38 -04:00
</table>
2017-06-08 10:42:09 -04:00
</div>
2017-12-14 18:00:02 -05:00
<!--<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 />-->
2017-07-28 21:31:44 -04:00
<!--<button class="btn btn-default" onclick="window.open('{{ url_for('main.dashboard') }}','_self')"><span class="glyphicon glyphicon-plus" aria-hiddent="true"></span> Assign</button> -->
2017-06-04 10:10:38 -04:00
</div>
</div>
</div>
2017-06-28 10:42:21 -04:00
{% endif %}
2017-03-08 13:53:09 -05:00
2017-10-15 07:38:38 -04:00
{% if inv_services != [] %}
2017-07-30 17:10:08 -04:00
<div class="col-md-12">
<div class="panel panel-info" id="services">
<div class="panel-heading">Services</div>
2017-09-20 20:08:58 -04:00
<div class="panel-body">
2017-07-30 17:10:08 -04:00
<div id="no-more-tables">
<table class="table table-hover table-striped table-condensed cf">
<thead>
<tr>
<th>Category</th>
<th>Description</th>
<th>Last Charged</th>
<th>Time Left</th>
</tr>
<tbody>
{% for service in inv_services %}
{% if service.enabled == False %}
<tr class="danger">
{% else %}
{% if service.warning == True %}
<tr class="warning">
{% else %}
<tr>
{% endif %}
{% endif %}
<td data-title="Category">{{ service.category }}</td>
<td data-title="Description" >{{ service.description }}</td>
<td data-title="Last Charged">{{ moment(service.date_last_charge).format('lll') }} ({{ moment(service.date_last_charge).fromNow() }})</td>
{% if service.enabled == False %}
<td data-title="Time Left"><button class="btn btn-default btn-success" onclick="window.open('/smanager/activate/{{ service.pid }}','_self');"><span class="glyphicon glyphicon-bell" aria-hidden="true"></span> Activate</button></td>
{% else %}
{% if service.warning == True %}
<td data-title="Time Left"><button class="btn btn-default btn-success" onclick="window.open('/smanager/activate/{{ service.pid }}','_self');"><span class="glyphicon glyphicon-bell" aria-hidden="true"></span> Renew ({{ service.daysleft }} days left)</button></td>
{% else %}
<td data-title="Time Left">{{ service.daysleft }} day(s)</td>
{% endif %}
{% endif %}
</tr >
{% endfor %}
</tbody>
</table>
</div>
2017-10-29 17:06:54 -04:00
<!-- <button class="btn btn-default" onclick="window.open('{{ url_for('smanager.requestservice') }}','_self')"><img class="icon icons8-Key-2" width="32" height="32" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADwUlEQVRYhdXYz0/bVhwA8Bz4I/Yn9A/gwKGHHApxiENwo8IG2rSqh/XUw267cRmJY8dOQpIGOq2cdtguFZNoUQQeiOBnm7h4iB+TRkJwkiJtdZ0GQzPLeTtU0bIQ0qQ8wP1K30sU6X3y/X7fs18cjk89Bsn1fjwEAgQj7nhpQXMFeeilBY1gpV2cFkgsCG7fCAwL8E5fWBQmk7IeX1bNTM6ASrkG83odKuUazOQMGF9WzYmEXPWFxd+xAO+8FphziuvzMRKDkcBKLKt/H2gWzOv1C/NAs2ByRdXdJDD9kc2oc4rru1LcSFj4dTIpn6z9edIR1pqZnAG/mt06GWXExStD+hiJ+SKR1ff/MnvCNVfz69mt1yOMOI8chwV4J0YCq9fKtSZ/aEA3Ccyh6Q0cKdAXFoUUVzJbK8IsFc4IVqoSrFSln+fffWgm83odpriSiVNgDxlukFzvn0zKeuvizFLhzEuL224SDLhJMOClBIlZKpx10+qJhFxBtrPHY9mZaLqgty5EsFLVTYKB5h9CsFK1m1ZH0wX9XlSaRQIkGHEnkzPOLXIZYCZnQIIRd5AAvbSgNQ7h5qSf59/hlCAOkuv9g+R6P06BNWoxf9oNUCnXoJcWNCRAV5C/cJaYFwWjsUmoxfxpN5ukka4gD5EAR8LtK3iZVMo1OBJGVMG7EWmv3QxeJjM5AxKstIsE+Hk8G4+mC29RAqPpo+pYbPMJEiAWBLe/fPyy0st8dXEO1rGQcA8J0OFwOPwRaT+5op47Cz8m51ZLcHwma92NSK+GQ+JnSIBYgHe6SWBedhb5QwN6KAEuKBqcXS1VkCL9kc1ou0deL6395sdt+OinAygfv/8MKdI5xfWNMuLigzmlyh/2Vkn+0IAPn27D737+A26+suDTl9aVIufdJDATK6rWzRv13GoJ4pQAv184gI3vy8f1/yF/WCtbPkYsImv30PTGKE6Bvc53kqI5kZTrY7GstaBo5/CtSOQz6XC83zweCrBtb3UUiLpIcN9LC5UUV2x7AlwL8kMxNL1xy0uLeoorvrE5UtBTvxU12yMfc6q9kZ4Q0FxBHjayExL57u412r1r2qKSnYC2Qg6HwOtPvt2/7P73tIqljyw/Kz2zDbA1t4//gTglnF7pn1AXRad2N+eDJ8obV4C/c+3A5ugEjKXVk7EZed62wPR+BfrCYvlGgZ4Q0GLpI6v1uquUa3A8nn07TPHf3ihwaHrjlp+VnuEUOL0/t6UnllVraVe3B645nFNcnyvA3/FQIOELi2Vb4bqJfwEpWpu91pyNygAAAABJRU5ErkJggg==">Request</button>-->
2017-09-20 20:08:58 -04:00
{% else %}
2017-10-15 07:38:38 -04:00
<!--<button class="btn btn-default btn-lg btn-block" onclick="window.open('{{ url_for('smanager.requestservice') }}','_self')"><img class="icon icons8-Key-2" width="48" height="48" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAADwUlEQVRYhdXYz0/bVhwA8Bz4I/Yn9A/gwKGHHApxiENwo8IG2rSqh/XUw267cRmJY8dOQpIGOq2cdtguFZNoUQQeiOBnm7h4iB+TRkJwkiJtdZ0GQzPLeTtU0bIQ0qQ8wP1K30sU6X3y/X7fs18cjk89Bsn1fjwEAgQj7nhpQXMFeeilBY1gpV2cFkgsCG7fCAwL8E5fWBQmk7IeX1bNTM6ASrkG83odKuUazOQMGF9WzYmEXPWFxd+xAO+8FphziuvzMRKDkcBKLKt/H2gWzOv1C/NAs2ByRdXdJDD9kc2oc4rru1LcSFj4dTIpn6z9edIR1pqZnAG/mt06GWXExStD+hiJ+SKR1ff/MnvCNVfz69mt1yOMOI8chwV4J0YCq9fKtSZ/aEA3Ccyh6Q0cKdAXFoUUVzJbK8IsFc4IVqoSrFSln+fffWgm83odpriSiVNgDxlukFzvn0zKeuvizFLhzEuL224SDLhJMOClBIlZKpx10+qJhFxBtrPHY9mZaLqgty5EsFLVTYKB5h9CsFK1m1ZH0wX9XlSaRQIkGHEnkzPOLXIZYCZnQIIRd5AAvbSgNQ7h5qSf59/hlCAOkuv9g+R6P06BNWoxf9oNUCnXoJcWNCRAV5C/cJaYFwWjsUmoxfxpN5ukka4gD5EAR8LtK3iZVMo1OBJGVMG7EWmv3QxeJjM5AxKstIsE+Hk8G4+mC29RAqPpo+pYbPMJEiAWBLe/fPyy0st8dXEO1rGQcA8J0OFwOPwRaT+5op47Cz8m51ZLcHwma92NSK+GQ+JnSIBYgHe6SWBedhb5QwN6KAEuKBqcXS1VkCL9kc1ou0deL6395sdt+OinAygfv/8MKdI5xfWNMuLigzmlyh/2Vkn+0IAPn27D737+A26+suDTl9aVIufdJDATK6rWzRv13GoJ4pQAv184gI3vy8f1/yF/WCtbPkYsImv30PTGKE6Bvc53kqI5kZTrY7GstaBo5/CtSOQz6XC83zweCrBtb3UUiLpIcN9LC5UUV2x7AlwL8kMxNL1xy0uLeoorvrE5UtBTvxU12yMfc6q9kZ4Q0FxBHjayExL57u412r1r2qKSnYC2Qg6HwOtPvt2/7P73tIqljyw/Kz2zDbA1t4//gTglnF7pn1AXRad2N+eDJ8obV4C/c+3A5ugEjKXVk7EZed62wPR+BfrCYvlGgZ4Q0GLpI6v1uquUa3A8nn07TPHf3ihwaHrjlp+VnuEUOL0/t6UnllVraVe3B645nFNcnyvA3/FQIOELi2Vb4bqJfwEpWpu91pyNygAAAABJRU5ErkJggg==">Request</button>-->
2017-09-20 20:08:58 -04:00
{% endif %}
2017-07-30 17:10:08 -04:00
</div>
</div>
</div>
2017-09-20 20:08:58 -04:00
2017-07-30 17:10:08 -04:00
2017-03-08 13:53:09 -05:00
</div>
2017-06-10 23:26:10 -04:00
<div class="row">
</div>
2017-03-08 13:53:09 -05:00
{% endblock %}