1 <script type="text/javascript">
2 $(document).ready(function() {
3 $("li#nav-request").addClass("active");
5 function on_click_event() {
7 $('.portal__validate__checkbox').each(function(i, el) {
8 if ($(el).prop('checked')) {
9 // portal__validate__checkbox__slice__2
10 var id_array = $(el).attr('id').split('__');
12 ids.push(id_array[3] + '__' + id_array[4]);
16 var id_str = ids.join('/');
20 $.getJSON('/portal/validate_action/' + id_str,
22 $.each(status, function(request_type__id, request_status) {
23 // request_status: NAME -> dict (status, description)
25 $.each(request_status, function(name, result) {
30 status_str += '<font color="green">OK</font>';
31 $('#portal__validate__checkbox__' + request_type__id).hide();
33 status_str += '<font color="red">ERROR: ' + result.description + '</font>';
36 $('#portal__status__' + request_type__id).html(status_str);
44 function on_click_reject() {
46 $('.portal__validate__checkbox').each(function(i, el) {
47 if ($(el).prop('checked')) {
48 // portal__validate__checkbox__slice__2
49 var id_array = $(el).attr('id').split('__');
51 ids.push(id_array[3] + '__' + id_array[4]);
55 var id_str = ids.join('/');
59 $.getJSON('/portal/reject_action/' + id_str,
61 $.each(status, function(request_type__id, request_status) {
62 // request_status: NAME -> dict (status, description)
64 $.each(request_status, function(name, result) {
69 status_str += '<font color="green">Rejected</font>';
70 $('#portal__validate__checkbox__' + request_type__id).hide();
72 status_str += '<font color="red">ERROR: ' + result.description + '</font>';
75 $('#portal__status__' + request_type__id).html(status_str);
85 <div class="col-md-12">
86 <h2>From your authorities</h2>
88 {% if my_authorities %}
90 {% for authority in my_authorities.items %}
92 <div class="col-md-12">
95 <div class="col-md-12">
97 {% for request in requests %}
100 <td>{{authority}}</td>
102 {% if request.allowed == 'allowed' %}
103 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
105 {% if request.allowed == 'expired' %}expired{% else %}denied{% endif %}
108 <td>{{ request.type }}</td>
109 <td>{{ request.id }}</td>
111 {% if request.type == 'user' %}
112 <b>{{request.first_name}} {{request.last_name}}</b> <a href="mailto:{{request.email}}">{{request.email}}</a>
114 {% if request.type == 'slice' %}
115 <b>{{request.slice_name}}</b> -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
116 {% else %} {# authority #}
117 <b>{{request.site_name}}</b> ({{request.site_authority}}) -- {{request.address_city}}, {{request.address_country}}
121 <td>{{ request.timestamp }}</td>
123 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
125 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
134 {% for requests in my_authorities.items %}
136 <div class="col-md-12">
137 <h2>{{authority}}</h2>
139 <div class="col-md-12">
140 <table class="table">
141 {% for request in requests %}
144 <td>{{authority}}</td>
146 {% if request.allowed == 'allowed' %}
147 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
149 {% if request.allowed == 'expired' %}expired{% else %}denied{% endif %}
152 <td>{{ request.type }}</td>
153 <td>{{ request.id }}</td>
155 {% if request.type == 'user' %}
156 <b>{{request.first_name}} {{request.last_name}}</b> <a href="mailto:{{request.email}}">{{request.email}}</a>
158 {% if request.type == 'slice' %}
159 <b>{{request.slice_name}}</b> -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
160 {% else %} {# authority #}
161 <b>{{request.site_name}}</b> ({{request.site_authority}}) -- {{request.address_city}}, {{request.address_country}}
165 <td>{{ request.timestamp }}</td>
167 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
169 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
178 <div class="col-md-12">
179 <i>There is no pending request waiting for validation.</i>
183 <div class="col-md-12">
184 <h2>From your sub-authorities</h2>
186 {% if sub_authorities %}
188 {% for authority, requests in sub_authorities.items %}
189 <div class="col-md-12">
190 <h3>{{authority}}</h3>
191 <table class="table">
199 {% for request in requests %}
202 {% if request.allowed == 'allowed' %}
203 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
205 {% if request.allowed == 'expired' %}
207 {% else %} {# denied #}
212 <td>{{ request.type }}</td>
213 <td>{{ request.id }}</td>
215 {% if request.type == 'user' %}
216 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
218 {% if request.type == 'slice' %}
219 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
220 {% else %} {# authority #}
221 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
225 <td>{{ request.timestamp }}</td>
227 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
229 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
236 <div class="col-md-12">
237 <i>There is no pending request waiting for validation.</i>
241 <div class="col-md-12">
242 <h2>From your authorities with delegation</h2>
245 {% if delegation_authorities %}
247 {% for authority, requests in delegation_authorities.items %}
248 <div class="col-md-12">
249 <h3>{{authority}}</h3>
250 <table class="table">
258 {% for request in requests %}
261 {% if request.allowed == 'allowed' %}
262 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
264 {% if request.allowed == 'expired' %}
266 {% else %} {# denied #}
271 <td>{{ request.type }}</td>
272 <td>{{ request.id }}</td>
274 {% if request.type == 'user' %}
275 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
277 {% if request.type == 'slice' %}
278 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
279 {% else %} {# authority #}
280 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
284 <td>{{ request.timestamp }}</td>
286 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
288 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
295 <div class="col-md-12">
296 <i>There is no pending request waiting for validation.</i>
300 <div class="col-md-12">
301 <button class="btn btn-onelab" type="button" id="portal__validate" onclick="on_click_event();"><span class="glyphicon glyphicon-ok"></span> Validate</button>
302 <button class="btn btn-danger" type="button" id="portal__reject" onclick="on_click_reject();"><span class="glyphicon glyphicon-remove"></span> Reject</button>