aboutsummaryrefslogtreecommitdiff
path: root/rpkid
diff options
context:
space:
mode:
authorMichael Elkins <melkins@tislabs.com>2012-01-20 17:46:15 +0000
committerMichael Elkins <melkins@tislabs.com>2012-01-20 17:46:15 +0000
commiteaece2892bd7cf5faa0be8e4915653b3c3f0ed89 (patch)
treea13f4fb4a5d872a042c4ae8684fd242f168e3a49 /rpkid
parente31a361d8ab721bbd185f9c99bdaa172ad23f89d (diff)
add generic template for viewing a list of objects as a table
format roa request deletion confirmation page into two columns, with an alert box around the action remove trailing slash from roa_detail url svn path=/branches/tk161/; revision=4250
Diffstat (limited to 'rpkid')
-rw-r--r--rpkid/rpki/gui/app/templates/app/object_table.html40
-rw-r--r--rpkid/rpki/gui/app/templates/app/roa_request_confirm_delete.html49
-rw-r--r--rpkid/rpki/gui/app/templates/app/roa_request_list.html35
-rw-r--r--rpkid/rpki/gui/app/urls.py2
-rw-r--r--rpkid/rpki/gui/app/views.py15
5 files changed, 90 insertions, 51 deletions
diff --git a/rpkid/rpki/gui/app/templates/app/object_table.html b/rpkid/rpki/gui/app/templates/app/object_table.html
new file mode 100644
index 00000000..0ad145d3
--- /dev/null
+++ b/rpkid/rpki/gui/app/templates/app/object_table.html
@@ -0,0 +1,40 @@
+{% extends "app/app_base.html" %}
+
+{# Generic object list displayed as a table. #}
+
+{% block content %}
+
+<div class='page-header'>
+ <h1>{{ page_title }}</h1>
+</div>
+
+{% if object_list %}
+<table style='zebra-striped condensed-table'>
+ <tr>
+ {% block table_header %}{% endblock %}
+ </tr>
+ {% for object in object_list %}
+ <tr>
+ {% block object_detail %}
+ <td><a href="{{ object.get_absolute_url }}">{{ object }}</a></td>
+ {% endblock %}
+ </tr>
+ {% endfor %}
+</table>
+{% else %}
+<div class='alert-message warning'>
+ <p>There are <strong>no items</strong> in this list.
+</div>
+{% endif %}
+
+{% block actions %}
+{% if create_url %}
+<div class='actions'>
+ <a class='btn' href='{{ create_url }}'>{{ create_label|default:"Create" }}</a>
+</div>
+{% endif %}
+{% endblock %}
+
+{% endblock %}
+
+<!-- vim: set sw=2: -->
diff --git a/rpkid/rpki/gui/app/templates/app/roa_request_confirm_delete.html b/rpkid/rpki/gui/app/templates/app/roa_request_confirm_delete.html
index a6b8172a..e4bc432b 100644
--- a/rpkid/rpki/gui/app/templates/app/roa_request_confirm_delete.html
+++ b/rpkid/rpki/gui/app/templates/app/roa_request_confirm_delete.html
@@ -6,16 +6,37 @@
<h1>Delete ROA Prefix</h1>
</div>
-<p>Please confirm that you would like to delete the following ROA prefix:
-
-<table style='condensed-table'>
- <tr><th>AS</th> <td>{{ object.roa_request.asn }}</td></tr>
- <tr><th>Prefix</th> <td>{{ object.as_roa_prefix }}</td></tr>
- <tr><th>Max Length</th><td>{{ object.max_length }}</td></tr>
-</table>
+<div class='row'>
+ <div class='span8'>
+ <div class='alert-message box-message warning'>
+ <p><strong>Please confirm</strong> that you would like to delete the following ROA Request:
+
+ <table style='condensed-table'>
+ <tr>
+ <th>Prefix</th>
+ <th>Max Len</th>
+ <th>AS</th>
+ <tr>
+ <td>{{ object.prefix }}/{{ object.prefixlen }}</td>
+ <td>{{ object.max_prefixlen }}</td>
+ <td>{{ object.roa_request.asn }}</td>
+ </tr>
+ </table>
+
+ <form method='POST' action='{{ request.get_full_path }}'>
+ {% csrf_token %}
+ <div class='alert-actions'>
+ <input class='btn danger' type='submit' value='Delete'/>
+ <a class='btn' href="{% url rpki.gui.app.views.roa_list %}">Cancel</a>
+ </div>
+ </form>
+
+ </div>
+ </div>
-<p>The following table shows what the validation status for the routing entries
-that are covered by this ROA will be if this ROA request is deleted:
+<div class='span8 offset8'>
+<p>This table indicates what the validation status for the routing entries
+that are covered by this ROA request will be if this ROA request is deleted:
<table style='zebra-striped condensed-table'>
<tr>
@@ -31,14 +52,8 @@ that are covered by this ROA will be if this ROA request is deleted:
</tr>
{% endfor %}
</table>
-
-<form method='POST' action='{{ request.get_full_path }}'>
- {% csrf_token %}
- <div class='actions'>
- <input class='btn danger' type='submit' value='Delete'/>
- <a class='btn' href="{% url rpki.gui.app.views.roa_list %}">Cancel</a>
- </div>
-</form>
+</div><!-- /span8 -->
+</div><!-- /row -->
{% endblock %}
diff --git a/rpkid/rpki/gui/app/templates/app/roa_request_list.html b/rpkid/rpki/gui/app/templates/app/roa_request_list.html
index 3bc42d91..9ffe4f57 100644
--- a/rpkid/rpki/gui/app/templates/app/roa_request_list.html
+++ b/rpkid/rpki/gui/app/templates/app/roa_request_list.html
@@ -1,31 +1,14 @@
-{% extends "app/app_base.html" %}
+{% extends "app/object_table.html" %}
-{% block content %}
-<div class='page-header'>
- <h1>{{ page_title }}</h1>
-</div>
-
-{% if object_list %}
-<table class='zebra-striped condensed-table'>
- <tr><th>Prefix</th><th>Max Length</th><th>ASN</th><th>Action</th></tr>
- {% for object in object_list %}
- <tr>
- <td>{{ object.prefix }}/{{ object.prefixlen }}</a></td>
- <td>{{ object.max_prefixlen }}</td>
- <td>{{ object.roa_request.asn }}</td>
- <td><a class='btn danger' href="{{ object.get_absolute_url }}/delete">Delete</a></td>
- </tr>
- {% endfor %}
-</table>
-{% else %}
-<div class='alert-message warning'>
-<p>You have not created any ROAs.
-</div>
-{% endif %}
+{% block table_header %}
+<th>Prefix</th><th>Max Length</th><th>ASN</th><th>Action</th>
+{% endblock %}
-<div class='actions'>
- <a class='btn' href='{% url rpki.gui.app.views.roa_create %}'>Create</a>
-</div>
+{% block object_detail %}
+<td>{{ object.prefix }}/{{ object.prefixlen }}</a></td>
+<td>{{ object.max_prefixlen }}</td>
+<td>{{ object.roa_request.asn }}</td>
+<td><a class='btn danger' href="{{ object.get_absolute_url }}/delete">Delete</a></td>
{% endblock %}
<!-- vim: set sw=2: -->
diff --git a/rpkid/rpki/gui/app/urls.py b/rpkid/rpki/gui/app/urls.py
index abc3fadc..6f9f7140 100644
--- a/rpkid/rpki/gui/app/urls.py
+++ b/rpkid/rpki/gui/app/urls.py
@@ -54,7 +54,7 @@ urlpatterns = patterns('',
(r'^repo/(?P<pk>\d+)/delete$', views.repository_delete),
(r'^roa/$', views.roa_list),
(r'^roa/create$', views.roa_create),
- (r'^roa/(?P<pk>\d+)/$', views.roa_detail),
+ (r'^roa/(?P<pk>\d+)$', views.roa_detail),
(r'^roa/(?P<pk>\d+)/delete$', views.roa_delete),
(r'^routes/$', views.route_view),
(r'^child_wizard$', views.child_wizard),
diff --git a/rpkid/rpki/gui/app/views.py b/rpkid/rpki/gui/app/views.py
index a688cdfc..758b383d 100644
--- a/rpkid/rpki/gui/app/views.py
+++ b/rpkid/rpki/gui/app/views.py
@@ -416,13 +416,19 @@ def login(request):
@handle_required
+def roa_create(request):
+ conf = request.session['handle']
+
+
+@handle_required
def roa_list(request):
"Displays a list of ROARequestPrefix objects for the current resource handle."
conf = request.session['handle']
qs = models.ROARequestPrefix.objects.filter(roa_request__issuer=conf)
return object_list(request, queryset=qs,
template_name='app/roa_request_list.html',
- extra_context={'page_title': 'ROA Requests'})
+ extra_context={'page_title': 'ROA Requests',
+ 'create_url': reverse(roa_create)})
@handle_required
@@ -464,7 +470,7 @@ def roa_delete(request, pk):
# exclude ROAs which seem to match this request and display the result
routes = []
for route, roas in match:
- qs = roas.exclude(asid=obj.roa.asn, **args)
+ qs = roas.exclude(asid=obj.roa_request.asn, **args)
validate_route(route, qs)
routes.append(route)
@@ -473,11 +479,6 @@ def roa_delete(request, pk):
@handle_required
-def roa_create(request):
- conf = request.session['handle']
-
-
-@handle_required
def ghostbusters_list(request):
"""
Display a list of all ghostbuster requests for the current Conf.