1 <script type="text/javascript">
2 $(document).ready(function() {
3 $("li#nav-request").addClass("active");
4 $('table.requests').dataTable();
6 function on_click_event() {
8 $('.portal__validate__checkbox').each(function(i, el) {
9 if ($(el).prop('checked')) {
10 // portal__validate__checkbox__slice__2
11 var id_array = $(el).attr('id').split('__');
13 ids.push(id_array[3] + '__' + id_array[4]);
17 var id_str = ids.join('/');
21 $.getJSON('/portal/validate_action/' + id_str,
23 $.each(status, function(request_type__id, request_status) {
24 // request_status: NAME -> dict (status, description)
26 $.each(request_status, function(name, result) {
31 status_str += '<font color="green">OK</font>';
32 $('#portal__validate__checkbox__' + request_type__id).hide();
34 status_str += '<font color="red">ERROR: ' + result.description + '</font>';
37 $('#portal__status__' + request_type__id).html(status_str);
45 function on_click_reject() {
47 $('.portal__validate__checkbox').each(function(i, el) {
48 if ($(el).prop('checked')) {
49 // portal__validate__checkbox__slice__2
50 var id_array = $(el).attr('id').split('__');
52 ids.push(id_array[3] + '__' + id_array[4]);
56 var id_str = ids.join('/');
60 $.getJSON('/portal/reject_action/' + id_str,
62 $.each(status, function(request_type__id, request_status) {
63 // request_status: NAME -> dict (status, description)
65 $.each(request_status, function(name, result) {
70 status_str += '<font color="green">Rejected</font>';
71 $('#portal__validate__checkbox__' + request_type__id).hide();
73 status_str += '<font color="red">ERROR: ' + result.description + '</font>';
76 $('#portal__status__' + request_type__id).html(status_str);
86 <div class="container-fluid">
87 <div class="col-md-12">
88 <h2>From your authorities</h2>
90 {% if my_authorities %}
91 <div class="col-md-12">
92 <table class="table-responsive requests">
105 {% for authority, requests in my_authorities.items %}
107 {% for request in requests %}
109 {% if request.type == 'user' %}
111 {% elif request.type == 'slice' %}
116 <td><span class="gray small">{{ request.id }}</span></td>
118 {% if request.allowed == 'allowed' %}
119 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
121 {% if request.allowed == 'expired' %}expired{% else %}denied{% endif %}
124 <td><span class="type">{{ request.type }}</span></td>
125 <td><i>{{authority}}{{request.site_authority}}</i></td>
127 {% if request.type == 'user' %}
128 <b>{{request.first_name}} {{request.last_name}}</b> <<a href="mailto:{{request.email}}">{{request.email}}</a>>
129 {% elif request.type == 'slice' %}
130 <b>{{request.slice_name}}</b> -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
132 <b>{{request.site_name}}</b> ({{request.site_authority}}) -- {{request.address_city}}, {{request.address_country}}
135 <td>{{ request.timestamp }}</td>
137 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
139 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
149 <div class="col-md-12">
150 <i>There is no pending request waiting for validation.</i>
157 <div class="col-md-12">
158 <h2>From your sub-authorities</h2>
160 {% if sub_authorities %}
162 {% for authority, requests in sub_authorities.items %}
163 <div class="col-md-12">
164 <h3>{{authority}}</h3>
165 <table class="table">
173 {% for request in requests %}
176 {% if request.allowed == 'allowed' %}
177 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
179 {% if request.allowed == 'expired' %}
181 {% else %} {# denied #}
186 <td>{{ request.type }}</td>
187 <td>{{ request.id }}</td>
189 {% if request.type == 'user' %}
190 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
192 {% if request.type == 'slice' %}
193 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
194 {% else %} {# authority #}
195 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
199 <td>{{ request.timestamp }}</td>
201 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
203 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
210 <div class="col-md-12">
211 <i>There is no pending request waiting for validation.</i>
215 <div class="col-md-12">
216 <h2>From your authorities with delegation</h2>
219 {% if delegation_authorities %}
221 {% for authority, requests in delegation_authorities.items %}
222 <div class="col-md-12">
223 <h3>{{authority}}</h3>
224 <table class="table">
232 {% for request in requests %}
235 {% if request.allowed == 'allowed' %}
236 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
238 {% if request.allowed == 'expired' %}
240 {% else %} {# denied #}
245 <td>{{ request.type }}</td>
246 <td>{{ request.id }}</td>
248 {% if request.type == 'user' %}
249 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
251 {% if request.type == 'slice' %}
252 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
253 {% else %} {# authority #}
254 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
258 <td>{{ request.timestamp }}</td>
260 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
262 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
269 <div class="col-md-12">
270 <i>There is no pending request waiting for validation.</i>
274 <div class="col-md-12">
275 <button class="btn btn-onelab" type="button" id="portal__validate" onclick="on_click_event();"><span class="glyphicon glyphicon-ok"></span> Validate</button>
276 <button class="btn btn-danger" type="button" id="portal__reject" onclick="on_click_reject();"><span class="glyphicon glyphicon-remove"></span> Reject</button>