diff --git a/src/dyns/controllers.py b/src/dyns/controllers.py
index 84a6c8e..051a5e5 100644
--- a/src/dyns/controllers.py
+++ b/src/dyns/controllers.py
@@ -119,11 +119,14 @@ class ZoneController(BaseController):
def GET(self, request, name):
response = request.ResponseClass()
- response.content_type = 'application/json'
zone = self.get_zone(name)
- zone_d = zone.as_dict()
- zone_d['records'] = list(map(model.Record.as_dict, zone.records))
- json.dump(zone_d, response.body_file)
+ if request.want == 'json':
+ response.content_type = 'application/json'
+ zone_d = zone.as_dict()
+ zone_d['records'] = list(map(model.Record.as_dict, zone.records))
+ json.dump(zone_d, response.body_file)
+ else:
+ response.text = self.render('zone.html.j2', zone=zone)
return response
HEAD = GET
diff --git a/src/dyns/templates/zone.html.j2 b/src/dyns/templates/zone.html.j2
new file mode 100644
index 0000000..7a11902
--- /dev/null
+++ b/src/dyns/templates/zone.html.j2
@@ -0,0 +1,82 @@
+{#- vim: set sw=2 ts=2 sts=2 et : -#}
+{% set page_title = zone.name %}
+{% extends 'base.html.j2' %}
+{%- block breadcrumbs %}
+
Zones
+ {{ zone.name }}
+{%- endblock %}
+{% block body %}
+
+
+
+
+
+ Contact: |
+ {{ zone.contact }} |
+
+
+ Source: |
+ {{ zone.source }} |
+
+
+ Serial: |
+ {{ zone.serial }} |
+
+
+
+
+
+
+
+
+ TTL: |
+ {{ zone.ttl }} |
+
+
+ Refresh Interval: |
+ {{ zone.refresh }} |
+
+
+ Retry Interval: |
+ {{ zone.retry }} |
+
+
+ Expiry Time: |
+ {{ zone.expire }} |
+
+
+ Minimum (default)
+ TTL: |
+ {{ zone.minimum }} |
+
+
+
+
+
+
+
+
Records
+
New Record
+
+
+
+ Host |
+ TTL |
+ Type |
+ Data |
+
+
+
+{% for record in zone.records -%}
+
+ {{ record.host }} |
+ {{ record.ttl }} |
+ {{ record.rdtype }} |
+ {% if record.mx_prio %}{{ record.mx_prio }} {% endif %}{{ record.data }} |
+
+{% endfor -%}
+
+
+
+
+{% endblock %}