2 <script type="text/javascript">
3 $(document).ready(function() {
4 $("li#nav-request").addClass("active");
5 $('table.requests').dataTable({
7 "bScrollCollapse": true,
10 "bLengthChange": false,
18 function on_click_event() {
20 $('.portal__validate__checkbox').each(function(i, el) {
21 if ($(el).prop('checked')) {
22 // portal__validate__checkbox__slice__2
23 var id_array = $(el).attr('id').split('__');
25 ids.push(id_array[3] + '__' + id_array[4]);
29 var id_str = ids.join('/');
33 $.getJSON('/portal/validate_action/' + id_str,
35 $.each(status, function(request_type__id, request_status) {
36 // request_status: NAME -> dict (status, description)
38 $.each(request_status, function(name, result) {
43 status_str += '<font color="green">OK</font>';
44 $('#portal__validate__checkbox__' + request_type__id).hide();
46 status_str += '<font color="red">ERROR: ' + result.description + '</font>';
49 $('#portal__status__' + request_type__id).html(status_str);
57 function on_click_reject() {
59 $('.portal__validate__checkbox').each(function(i, el) {
60 if ($(el).prop('checked')) {
61 // portal__validate__checkbox__slice__2
62 var id_array = $(el).attr('id').split('__');
64 ids.push(id_array[3] + '__' + id_array[4]);
68 var id_str = ids.join('/');
72 $.getJSON('/portal/reject_action/' + id_str,
74 $.each(status, function(request_type__id, request_status) {
75 // request_status: NAME -> dict (status, description)
77 $.each(request_status, function(name, result) {
82 status_str += '<font color="green">Rejected</font>';
83 $('#portal__validate__checkbox__' + request_type__id).hide();
85 status_str += '<font color="red">ERROR: ' + result.description + '</font>';
88 $('#portal__status__' + request_type__id).html(status_str);
98 <div class="container-fluid">
99 <div class="col-md-12">
100 <h2>From your authorities</h2>
102 {% if my_authorities %}
103 <div class="col-md-12">
104 <table class="table requests">
117 {% for authority, requests in my_authorities.items %}
119 {% for request in requests %}
121 {% if request.type == 'user' %}
123 {% elif request.type == 'slice' %}
128 <td><span class="gray small">{{ request.id }}</span></td>
130 {% if request.allowed == 'allowed' %}
131 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
133 {% if request.allowed == 'expired' %}expired{% else %}denied{% endif %}
136 <td><span class="type">{{ request.type }}</span></td>
137 <td><i>{{authority}}{{request.site_authority}}</i></td>
139 {% if request.type == 'user' %}
140 <b>{{request.first_name}} {{request.last_name}}</b> <<a href="mailto:{{request.email}}">{{request.email}}</a>>
141 {% elif request.type == 'slice' %}
142 <b>{{request.slice_name}}</b> -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
143 {% elif request.type == 'project' %}
144 <b>{{request.project_name}}</b> -- {{ request.user_hrn }} -- Purpose: {{request.purpose}}
145 {% elif request.type == 'join' %}
146 <b>{{request.user_hrn}}</b> -- to join {{ request.authority_hrn }}
148 <b>{{request.site_name}}</b> ({{request.site_authority}}) -- {{request.address_city}}, {{request.address_country}}
151 <td>{{ request.timestamp }}</td>
153 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
155 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
165 <div class="col-md-12">
166 <i>There is no pending request waiting for validation.</i>
171 {% if sub_authorities %}
173 <div class="col-md-12">
174 <h2>From your sub-authorities</h2>
177 {% for authority, requests in sub_authorities.items %}
178 <div class="col-md-12">
179 <h3>{{authority}}</h3>
180 <table class="table">
188 {% for request in requests %}
191 {% if request.allowed == 'allowed' %}
192 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
194 {% if request.allowed == 'expired' %}
196 {% else %} {# denied #}
201 <td>{{ request.type }}</td>
202 <td>{{ request.id }}</td>
204 {% if request.type == 'user' %}
205 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
207 {% if request.type == 'slice' %}
208 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
209 {% elif request.type == 'project' %}
210 <b>{{request.project_name}}</b> -- {{ request.user_hrn }} -- Purpose: {{request.purpose}}
211 {% elif request.type == 'join' %}
212 <b>{{request.user_hrn}}</b> -- to join {{ request.authority_hrn }}
213 {% else %} {# authority #}
214 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
218 <td>{{ request.timestamp }}</td>
220 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
222 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
229 {% if delegation_authorities %}
231 <div class="col-md-12">
232 <h2>From your authorities with delegation</h2>
235 {% for authority, requests in delegation_authorities.items %}
236 <div class="col-md-12">
237 <h3>{{authority}}</h3>
238 <table class="table">
246 {% for request in requests %}
249 {% if request.allowed == 'allowed' %}
250 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
252 {% if request.allowed == 'expired' %}
254 {% else %} {# denied #}
259 <td>{{ request.type }}</td>
260 <td>{{ request.id }}</td>
262 {% if request.type == 'user' %}
263 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
265 {% if request.type == 'slice' %}
266 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
267 {% elif request.type == 'project' %}
268 <b>{{request.project_name}}</b> -- {{ request.user_hrn }} -- Purpose: {{request.purpose}}
269 {% else %} {# authority #}
270 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
274 <td>{{ request.timestamp }}</td>
276 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
278 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
286 <div class="col-md-12">
287 <button class="btn btn-onelab" type="button" id="portal__validate" onclick="on_click_event();"><span class="glyphicon glyphicon-ok"></span> Validate</button>
288 <button class="btn btn-danger" type="button" id="portal__reject" onclick="on_click_reject();"><span class="glyphicon glyphicon-remove"></span> Reject</button>