diff options
Diffstat (limited to 'rpki/gui/app/templates/app/dashboard.html')
-rw-r--r-- | rpki/gui/app/templates/app/dashboard.html | 230 |
1 files changed, 230 insertions, 0 deletions
diff --git a/rpki/gui/app/templates/app/dashboard.html b/rpki/gui/app/templates/app/dashboard.html new file mode 100644 index 00000000..65dbb90f --- /dev/null +++ b/rpki/gui/app/templates/app/dashboard.html @@ -0,0 +1,230 @@ +{% extends "app/app_base.html" %} + +{# this can be removed when django 1.4 is EOL, because it is the default behavior in 1.5 #} +{% load url from future %} + +{% block sidebar_extra %} + <li class="divider"></li> + <li><a href="{% url "rpki.gui.app.views.conf_export" %}" title="download XML identity to send to parent"> + {#<i class="icon-download"></i> #}export identity</a></li> +{% endblock sidebar_extra %} + +{% block content %} +<div class='row-fluid'> + <div class='span6'> + <div class="page-header"> + <h1>Resources</h1> + </div> + + <table class='table table-condensed-table table-striped'> + <tr> + <th>Resource</th> + <th>Valid Until</th> + <th>Parent</th> + </tr> + + {% for object in asns %} + <tr> + <td>{{ object }}</td> + <td>{{ object.cert.not_after }}</td> + <td> + {% if object.cert.parent %} + <a href="{{ object.cert.parent.get_absolute_url }}">{{ object.cert.parent.handle }}</a> + {% endif %} + </td> + </tr> + {% endfor %} + + {% for object in prefixes %} + <tr> + <td>{{ object.as_resource_range }}</td> + <td>{{ object.cert.not_after }}</td> + <td> + {% if object.cert.parent %} + <a href="{{ object.cert.parent.get_absolute_url }}">{{ object.cert.parent.handle }}</a> + {% endif %} + </td> + </tr> + {% endfor %} + + {% if prefixes_v6 %} + {% for object in prefixes_v6 %} + <tr> + <td>{{ object.as_resource_range }}</td> + <td>{{ object.cert.not_after }}</td> + <td> + {% if object.cert.parent %} + <a href="{{ object.cert.parent.get_absolute_url }}">{{ object.cert.parent.handle }}</a> + {% endif %} + </td> + </tr> + {% endfor %} + {% endif %} + </table> + <a class='btn' href="{% url "rpki.gui.app.views.refresh" %}" title="refresh resource list from rpkid"><i class="icon-refresh"></i> refresh</a></li> + </div> + <div class='span6'> + <h2>Unallocated Resources</h2> + <p>The following resources have not been allocated to a child, nor appear in a ROA. + + {% if unused_asns %} + <h3>ASNs</h3> + <ul> + {% for asn in unused_asns %} + <li>AS{{ asn }} + {% endfor %} <!-- ASNs --> + </ul> + {% endif %} + + {% if unused_prefixes %} + <h3>IPv4</h3> + <table class="table table-condensed table-striped"> + <tr><th>Prefix</th><th>Action</th></tr> + {% for addr in unused_prefixes %} + <tr> + <td>{{ addr }}</td> + <td> + <a class="btn btn-mini" title="Create ROA using this prefix" href="{% url "rpki.gui.app.views.roa_create_multi" %}?roa={{ addr }}"><i class="icon-plus-sign"></i> ROA</a> + </td> + </tr> + {% endfor %} <!-- addrs --> + </table> + {% endif %} + + {% if unused_prefixes_v6 %} + <h3>IPv6</h3> + <table class="table table-condensed table-striped"> + <tr><th>Prefix</th><th></th></tr> + {% for addr in unused_prefixes_v6 %} + <tr> + <td>{{ addr }}</td> + <td> + <a class="btn btn-mini" title='create roa using this prefix' href="{% url "rpki.gui.app.views.roa_create_multi" %}?roa={{ addr }}"><i class="icon-plus-sign"></i> ROA</a> + </td> + </tr> + {% endfor %} <!-- addrs --> + </table> + {% endif %} + + </div><!-- /span --> +</div><!-- /row --> + +<div class="row-fluid"> + <div class="span6"> +<div class="page-header"> + <h1>ROAs</h1> +</div> +<table class="table table-condensed table-striped"> + <tr><th>Prefix</th><th>Max Length</th><th>AS</th><th></th></tr> + {% for roa in conf.roas %} + <tr> + <!-- each roa request has a single roa request prefix object associated --> + <td>{{ roa.prefixes.all.0.as_roa_prefix }}</td> + <td>{{ roa.prefixes.all.0.max_prefixlen }}</td> + <td>{{ roa.asn }}</td> + <td> + <a class="btn btn-mini" href="{% url "rpki.gui.app.views.roa_detail" roa.pk %}" title="Detail"><i class="icon-info-sign"></i></a> + <a class="btn btn-mini" href="{% url "rpki.gui.app.views.roa_delete" roa.pk %}" title="Delete"><i class="icon-trash"></i></a> + <a class="btn btn-mini" href="{% url "roa-clone" roa.pk %}" title="create another ROA for this prefix"><i class="icon-repeat"></i></a> + </td> + </tr> + {% endfor %} +</table> +<a class="btn" href="{% url "rpki.gui.app.views.roa_create_multi" %}"><i class="icon-plus-sign"></i> Create</a> +<a class="btn" href="{% url "roa-import" %}" title="import a CSV file containing ROAs"><i class="icon-upload"></i> Import</a> +<a class="btn" href="{% url "roa-export" %}" title="download a CSV file containing ROAs"><i class="icon-download"></i> Export</a> +</div> + + <div class="span6"> +<div class="page-header"> + <h1>Ghostbusters</h1> +</div> +<table class="table table-condensed table-striped"> + <tr><th>Full Name</th><th>Organization</th><th>Email</th><th>Telephone</th><th></th></tr> + {% for gbr in conf.ghostbusters %} + <tr> + <td>{{ gbr.full_name }}</td> + <td>{{ gbr.organization }}</td> + <td>{{ gbr.email_address }}</td> + <td>{{ gbr.telephone }}</td> + <td> + <a class="btn btn-mini" href="{% url "gbr-detail" gbr.pk %}" title="View"><i class="icon-info-sign"></i></a> + <a class="btn btn-mini" href="{% url "gbr-edit" gbr.pk %}" title="Edit"><i class="icon-edit"></i></a> + <a class="btn btn-mini" href="{% url "gbr-delete" gbr.pk %}" title="Delete"><i class="icon-trash"></i></a> + </td> + </tr> + {% endfor %} +</table> +<a class="btn" href="{% url "gbr-create" %}"><i class="icon-plus-sign"></i> Create</a> +</div><!-- /span --> +</div><!-- /row --> + +<div class="row-fluid"> + <div class="span6"> + <div class="page-header"> + <h1>Children</h1> + </div> +<table class="table table-condensed table-striped"> + <tr><th>Handle</th><th></th> + {% for child in conf.children %} + <tr> + <td><a href="{{ child.get_absolute_url }}">{{ child.handle }}</a></td> + <td> + <a class="btn btn-mini" href="{% url "rpki.gui.app.views.child_delete" child.pk %}" title="Delete"><i class="icon-trash"></i></a> + </td> + </tr> + {% endfor %} + </table> + <div class="row-fluid"> + <div class='span6'> + <a class="btn" href="{% url "rpki.gui.app.views.child_import" %}" title="Import XML request from Child"><i class="icon-upload"></i> Child</a> + <a class="btn" href="{% url "import-asns" %}" title="Import CSV file containing ASN delgations to children"><i class="icon-upload"></i> ASNs</a> + <a class="btn" href="{% url "import-prefixes" %}" title="import CSV file containing prefix delgations to children"><i class="icon-upload"></i> Prefixes</a> + </div> + </div> + <div class="row-fluid"> + <div class='span6'> + <a class="btn" href="{% url "export-asns" %}" title="Export CSV file containing ASN delgations to children"><i class="icon-download"></i> ASNs</a> + <a class="btn" href="{% url "export-prefixes" %}" title="Export CSV file containing prefix delgations to children"><i class="icon-download"></i> Prefixes</a> + </div> + </div> + </div><!-- /span --> + <div class="span6"> + <div class="page-header"> + <h1>Parents</h1> + </div> + <table class="table table-condensed table-striped"> + <tr><th>Handle</th><th></th></tr> + {% for parent in conf.parents %} + <tr> + <td><a href="{{ parent.get_absolute_url }}">{{ parent.handle }}</a></td> + <td> + <a class="btn btn-mini" href="{% url "rpki.gui.app.views.parent_delete" parent.pk %}" title="Delete"><i class="icon-trash"></i></a> + </td> + </tr> + {% endfor %} + </table> + <a class="btn" href="{% url "rpki.gui.app.views.parent_import" %}"><i class="icon-upload"></i> Import</a> + </div><!-- /span --> +</div><!-- /row --> + +<div class="row-fluid"> + <div class="span6"> + <div class="page-header"> + <h1>Repositories</h1> + </div> +<table class="table table-condensed table-striped"> + <tr><th>Handle</th><th></th></tr> + {% for repo in conf.repositories %} + <tr> + <td><a href="{{ repo.get_absolute_url }}">{{ repo.handle }}</a></td> + <td> + <a class="btn btn-mini" href="{% url "rpki.gui.app.views.repository_delete" repo.pk %}" title="Delete"><i class="icon-trash"></i></a> + </td> + </tr> + {% endfor %} + </table> + <a class="btn" href="{% url "rpki.gui.app.views.repository_import" %}"><i class="icon-upload"></i> Import</a> + </div><!-- /span --> +</div><!-- /row --> +{% endblock %} |