diff options
author | Michael Elkins <melkins@tislabs.com> | 2012-01-20 17:46:15 +0000 |
---|---|---|
committer | Michael Elkins <melkins@tislabs.com> | 2012-01-20 17:46:15 +0000 |
commit | eaece2892bd7cf5faa0be8e4915653b3c3f0ed89 (patch) | |
tree | a13f4fb4a5d872a042c4ae8684fd242f168e3a49 /rpkid | |
parent | e31a361d8ab721bbd185f9c99bdaa172ad23f89d (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.html | 40 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/templates/app/roa_request_confirm_delete.html | 49 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/templates/app/roa_request_list.html | 35 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/urls.py | 2 | ||||
-rw-r--r-- | rpkid/rpki/gui/app/views.py | 15 |
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. |