1 {% extends "layout.html" %}
4 <script type="text/javascript">
5 $(document).ready(function() {
6 $("li#nav-request").addClass("active");
8 function on_click_event() {
10 $('.portal__validate__checkbox').each(function(i, el) {
11 if ($(el).prop('checked')) {
12 // portal__validate__checkbox__slice__2
13 var id_array = $(el).attr('id').split('__');
15 ids.push(id_array[3] + '__' + id_array[4]);
19 var id_str = ids.join('/');
23 $.getJSON('/portal/validate_action/' + id_str,
25 $.each(status, function(request_type__id, request_status) {
26 // request_status: NAME -> dict (status, description)
28 $.each(request_status, function(name, result) {
33 status_str += '<font color="green">OK</font>';
34 $('#portal__validate__checkbox__' + request_type__id).hide();
36 status_str += '<font color="red">ERROR: ' + result.description + '</font>';
39 $('#portal__status__' + request_type__id).html(status_str)
52 <h1><img src="{{ STATIC_URL }}icons/testbed-xs.png" alt="Pending Requests" /> Pending requests</h1>
55 {% if my_authorities %}
57 {% for authority, requests in my_authorities.items %}
60 <h3>{{authority}}</h3>
69 {% for request in requests %}
73 {% if request.allowed == 'allowed' %}
74 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
76 {% if request.allowed == 'expired' %}
78 {% else %} {# denied #}
83 <td>{{ request.type }}</td>
84 <td>{{ request.id }}</td>
86 {% if request.type == 'user' %}
87 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
89 {% if request.type == 'slice' %}
90 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
91 {% else %} {# authority #}
92 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
96 <td>{{ request.timestamp }}</td>
98 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
100 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
110 <i>There is no pending request waiting for validation.</i>
114 {% if sub_authorities %}
116 <h2>Sub-Authorities</h2>
118 {% for authority, requests in sub_authorities.items %}
120 <h3>{{authority}}</h3>
121 <table class="table">
129 {% for request in requests %}
132 {% if request.allowed == 'allowed' %}
133 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
135 {% if request.allowed == 'expired' %}
137 {% else %} {# denied #}
142 <td>{{ request.type }}</td>
143 <td>{{ request.id }}</td>
145 {% if request.type == 'user' %}
146 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
148 {% if request.type == 'slice' %}
149 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
150 {% else %} {# authority #}
151 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
155 <td>{{ request.timestamp }}</td>
157 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
159 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
169 {% if delegation_authorities %}
171 <h2>Authorities with delegation</h2>
173 {% for authority, requests in delegation_authorities.items %}
175 <h3>{{authority}}</h3>
176 <table class="table">
184 {% for request in requests %}
187 {% if request.allowed == 'allowed' %}
188 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
190 {% if request.allowed == 'expired' %}
192 {% else %} {# denied #}
197 <td>{{ request.type }}</td>
198 <td>{{ request.id }}</td>
200 {% if request.type == 'user' %}
201 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
203 {% if request.type == 'slice' %}
204 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
205 {% else %} {# authority #}
206 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
210 <td>{{ request.timestamp }}</td>
212 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
214 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
223 <button type="button" id="portal__validate" onclick="on_click_event();">Validate</button>