diff --git a/pyweb/mumble/templates/mumble/list.html b/pyweb/mumble/templates/mumble/list.html
index b82bd74..634a227 100644
--- a/pyweb/mumble/templates/mumble/list.html
+++ b/pyweb/mumble/templates/mumble/list.html
@@ -1,24 +1,105 @@
{% extends "index.html" %}
{% comment %}
-
+
{% endcomment %}
-{% load i18n %}
{% load mumble_extras %}
-{% block Headline %}
-Configured Mumble Servers
+{% load i18n %}
+{% block body %}
{% endblock %}
-{% block Content %}
-
-
- {% for mumble in MumbleObjects %}
- {% if mumble.booted %}
- - {{ mumble.name }}
- {% else %}
- - {{ mumble.name }} (offline)
- {% endif %}
- {% empty %}
- {% trans "No server instances have been configured yet." %}
- {% endfor %}
-
-
+{% block HeadTag %}
+
+
+
+
+
+
{% endblock %}
diff --git a/pyweb/mumble/templates/mumble/mumble.html b/pyweb/mumble/templates/mumble/mumble.html
index d348f78..41ae685 100644
--- a/pyweb/mumble/templates/mumble/mumble.html
+++ b/pyweb/mumble/templates/mumble/mumble.html
@@ -4,7 +4,8 @@
{% endcomment %}
{% load mumble_extras %}
{% load i18n %}
-{% block body %}{% endblock %}
+{% block body %}
+{% endblock %}
{% block HeadTag %}
@@ -17,24 +18,32 @@
+
{% endblock %}
diff --git a/pyweb/mumble/views.py b/pyweb/mumble/views.py
index f5f153d..2f0f657 100644
--- a/pyweb/mumble/views.py
+++ b/pyweb/mumble/views.py
@@ -107,6 +107,26 @@ def mumbles( request, mobile=False ):
context_instance = RequestContext(request)
)
+@EXT_DIRECT_PROVIDER.register_method( "MumbleList" )
+def servers( request ):
+ mms = Mumble.objects.all().order_by( "name" ).values( "id", "name" )
+
+ return [{ 'id': mm['id'], 'name': mm['name'] } for mm in mms]
+
+@EXT_DIRECT_PROVIDER.register_method( "MumbleList" )
+def serverinfo( request, server ):
+ srv = Mumble.objects.get( id=int(server) )
+ return {
+ 'id': srv.id,
+ 'name': srv.name,
+ 'motd': srv.motd,
+ 'connurl': srv.connecturl,
+ 'version': srv.prettyversion
+ }
+
+@EXT_DIRECT_PROVIDER.register_method( "MumbleList" )
+def serverurl( request, server ):
+ return reverse( show, args=(int(server),) );
def show( request, server ):
""" Display the channel list for the given Server ID.