diff --git a/app/templates/main/serverlist.html b/app/templates/main/serverlist.html
new file mode 100644
index 0000000..9db1717
--- /dev/null
+++ b/app/templates/main/serverlist.html
@@ -0,0 +1,21 @@
+{% for server in servers %}
+
+
+
+
+
+
+ Alias: {{ server.name }}
+ Processor: {{ server.cpu }}
+ Memory: {{ server.mem }}
+ Storage: {{ server.hdd }}
+
+
+
+
+
+{% endfor %}
+
diff --git a/app/templates/panel/services.html b/app/templates/panel/services.html
new file mode 100644
index 0000000..9dc8cc5
--- /dev/null
+++ b/app/templates/panel/services.html
@@ -0,0 +1,51 @@
+{% block services %}
+ {% if inv_services != [] %}
+
+
+
Services
+
+
+
+
+
+ Category
+ Description
+ Last Charged
+ Time Left
+
+
+ {% for service in inv_services %}
+ {% if service.enabled == False %}
+
+ {% else %}
+ {% if service.warning == True %}
+
+ {% else %}
+
+ {% endif %}
+ {% endif %}
+ {{ service.category }}
+ {{ service.description }}
+ {{ moment(service.date_last_charge).format('lll') }} ({{ moment(service.date_last_charge).fromNow() }})
+ {% if service.enabled == False %}
+ Activate
+ {% else %}
+ {% if service.warning == True %}
+ Renew ({{ service.daysleft }} days left)
+ {% else %}
+ {{ service.daysleft }} day(s)
+ {% endif %}
+ {% endif %}
+
+ {% endfor %}
+
+
+
+
+ {% else %}
+
+
+
+
+
+{% endblock %}
diff --git a/app/vmanager/routes.py b/app/vmanager/routes.py
index b4ae8dc..0c2fe12 100644
--- a/app/vmanager/routes.py
+++ b/app/vmanager/routes.py
@@ -1,4 +1,4 @@
-from flask import render_template, abort, redirect, url_for, abort, flash, request, current_app, make_response, g
+from flask import jsonify, render_template, abort, redirect, url_for, abort, flash, request, current_app, make_response, g
from flask_login import login_required, login_user, logout_user, current_user
from flask_sqlalchemy import get_debug_queries
@@ -27,6 +27,20 @@ def after_request(response):
current_app.logger.warning('Slow query: %s\nParameters: %s\nDuration: %fs\nContext: %s\n' % (query.statement, query.parameters, query.duration, query.context))
return response
+@vmanager.route('/slavetables/
', methods=['GET'])
+def slavetables(regionid):
+ selected_region = Region.query.filter_by(pid=int(regionid)).first()
+ if selected_region == None:
+ return jsonify({})
+ addresses = selected_region.inv_addresses.filter_by(enabled=True).all()
+ regionlist = {}
+ for address in addresses:
+ regionlist[str(address.pid)] = { 'ipv4': str(address.ip), 'mac': str(address.mac) }
+
+ data = { 'region_id': str(selected_region.pid),
+ 'addresses': regionlist }
+ return jsonify(data)
+
@vmanager.route('/createvm', methods=['GET', 'POST'])
@login_required