-{% extends "layout-unfold1.html" %}
+{% extends "layout.html" %}
{% block head %}
-<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/validate_pending.css" />
-{% endblock %}
+<script type="text/javascript">
+ $(document).ready(function() {
+ $("li#nav-request").addClass("active");
+ });
+ function on_click_event() {
+ var ids = [];
+ $('.portal__validate__checkbox').each(function(i, el) {
+ if ($(el).prop('checked')) {
+ // portal__validate__checkbox__slice__2
+ var id_array = $(el).attr('id').split('__');
+ // push(slice__2)
+ ids.push(id_array[3] + '__' + id_array[4]);
+ }
+ });
+ if (ids.length > 0) {
+ var id_str = ids.join('/');
+
+ // XXX spinner
-{% block unfold1_main %}
+ $.getJSON('/portal/validate_action/' + id_str,
+ function(status) {
+ $.each(status, function(request_type__id, request_status) {
+ // request_status: NAME -> dict (status, description)
+ var status_str = '';
+ $.each(request_status, function(name, result) {
+ if (status_str != '')
+ status_str += ' -- ';
-<h1>Pending requests</h1>
+ if (result.status) {
+ status_str += '<font color="green">OK</font>';
+ $('#portal__validate__checkbox__' + request_type__id).hide();
+ } else {
+ status_str += '<font color="red">ERROR: ' + result.description + '</font>';
+ }
+ });
+ $('#portal__status__' + request_type__id).html(status_str)
-<h2>My authorities</h2>
-{% if my_authorities %}
+ });
+ }
+ );
+ }
+ }
+</script>
+{% endblock %}
+
+{% block content %}
+ <div class="row">
+ <h1><img src="{{ STATIC_URL }}icons/testbed-xs.png" alt="Pending Requests" /> Pending requests</h1>
+ </div>
-{% for authority, requests in my_authorities.items %}
-<h3>{{authority}}</h3>
- {% for request in requests %}
- <div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'>
- <span class='type'>{{ request.type }}</span>
- <span class='id'>{{ request.id }}</span>
- <span class='timestamp'>{{ request.timestamp }}</span>
- <span class='details'>{{ request.details }}</span>
- {% if request.allowed == 'allowed' %}
- <input type='checkbox'/>
- {% else %}
- {% if request.allowed == 'expired' %}
- expired
- {% else %} {# denied #}
- denied
+ {% if my_authorities %}
+
+ {% for authority, requests in my_authorities.items %}
+
+ <div class="row">
+ <h3>{{authority}}</h3>
+ <table class="table">
+ <th>
+ <td>type</td>
+ <td>id</td>
+ <td>details</td>
+ <td>timestamp</td>
+ <td>status</td>
+ </th>
+ {% for request in requests %}
+
+ <tr>
+ <td>
+ {% if request.allowed == 'allowed' %}
+ <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
+ {% else %}
+ {% if request.allowed == 'expired' %}
+ expired
+ {% else %} {# denied #}
+ denied
+ {% endif %}
{% endif %}
- {% endif %}
+ </td>
+ <td>{{ request.type }}</td>
+ <td>{{ request.id }}</td>
+ <td>
+ {% if request.type == 'user' %}
+ Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
+ {% else %}
+ {% if request.type == 'slice' %}
+ Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
+ {% else %} {# authority #}
+ Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
+ {% endif %}
+ {% endif %}
+ </td>
+ <td>{{ request.timestamp }}</td>
+
+ <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
+
+ <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
+ </tr>
+
+ {% endfor %}
+ </table>
</div>
- {% endfor %}
-{% endfor %}
+ {% endfor %}
{% else %}
-<i>There is no pending request waiting for validation.</i>
+ <div class="row">
+ <i>There is no pending request waiting for validation.</i>
+ </div>
{% endif %}
-{% if delegation_authorities %}
-<h2>Authorities with delegation</h2>
-
-{% for authority, requests in delegation_authorities.items %}
-<h3>{{authority}}</h3>
- {% for request in requests %}
- <div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'>
- <span class='type'>{{ request.type }}</span>
- <span class='id'>{{ request.id }}</span>
- <span class='timestamp'>{{ request.timestamp }}</span>
- <span class='details'>{{ request.details }}</span>
- {% if request.allowed == 'allowed' %}
- <input type='checkbox'/>
- {% else %}
- {% if request.allowed == 'expired' %}
- expired
- {% else %} {# denied #}
- denied
+{% if sub_authorities %}
+ <div class="row">
+ <h2>Sub-Authorities</h2>
+ </div>
+ {% for authority, requests in sub_authorities.items %}
+ <div class="row">
+ <h3>{{authority}}</h3>
+ <table class="table">
+ <th>
+ <td>type</td>
+ <td>id</td>
+ <td>details</td>
+ <td>timestamp</td>
+ <td>status</td>
+ </th>
+ {% for request in requests %}
+ <tr>
+ <td>
+ {% if request.allowed == 'allowed' %}
+ <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
+ {% else %}
+ {% if request.allowed == 'expired' %}
+ expired
+ {% else %} {# denied #}
+ denied
+ {% endif %}
{% endif %}
- {% endif %}
+ </td>
+ <td>{{ request.type }}</td>
+ <td>{{ request.id }}</td>
+ <td>
+ {% if request.type == 'user' %}
+ Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
+ {% else %}
+ {% if request.type == 'slice' %}
+ Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
+ {% else %} {# authority #}
+ Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
+ {% endif %}
+ {% endif %}
+ </td>
+ <td>{{ request.timestamp }}</td>
+
+ <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
+
+ <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
+ </tr>
+ {% endfor %}
+ </table>
</div>
- {% endfor %}
-{% endfor %}
+ {% endfor %}
{% endif %}
+
+{% if delegation_authorities %}
+ <div class="row">
+ <h2>Authorities with delegation</h2>
+ </div>
+ {% for authority, requests in delegation_authorities.items %}
+ <div class="row">
+ <h3>{{authority}}</h3>
+ <table class="table">
+ <th>
+ <td>type</td>
+ <td>id</td>
+ <td>details</td>
+ <td>timestamp</td>
+ <td>status</td>
+ </th>
+ {% for request in requests %}
+ <tr>
+ <td>
+ {% if request.allowed == 'allowed' %}
+ <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
+ {% else %}
+ {% if request.allowed == 'expired' %}
+ expired
+ {% else %} {# denied #}
+ denied
+ {% endif %}
+ {% endif %}
+ </td>
+ <td>{{ request.type }}</td>
+ <td>{{ request.id }}</td>
+ <td>
+ {% if request.type == 'user' %}
+ Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
+ {% else %}
+ {% if request.type == 'slice' %}
+ Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
+ {% else %} {# authority #}
+ Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
+ {% endif %}
+ {% endif %}
+ </td>
+ <td>{{ request.timestamp }}</td>
+
+ <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
+
+ <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
+ </tr>
+ {% endfor %}
+ </table>
+ </div>
+ {% endfor %}
+
+{% endif %}
+ <div class="row">
+ <button type="button" id="portal__validate" onclick="on_click_event();">Validate</button>
+ </div>
{% endblock %}