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 showMore(buttonId, divId){
45 var element = document.getElementById(buttonId);
46 var div_element = document.getElementById(divId);
47 if (element.value === '(+)'){
48 element.value = '(-)';
49 $('#'+divId).slideDown('fast');
52 element.value = '(+)';
53 $('#'+divId).slideUp('fast');
59 <div class="col-md-12">
62 {% if my_authorities %}
64 {% for authority, requests in my_authorities.items %}
65 {% if authority == pi_authority or 'fibre'%}
66 <div class="col-md-12">
67 <h2>{{authority}}</h2>
76 {% for request in requests %}
78 {% if request.object_auth == pi_authority %}
80 {% if request.allowed == 'allowed' %}
81 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
83 {% if request.allowed == 'expired' %}
85 {% else %} {# denied #}
90 <td>{{ request.type }}</td>
91 <td>{{ request.id }}</td>
93 {% if request.type == 'user' %}
94 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
95 <input type = "button" id = "moreBtn_{{request.id}}" value = "(+)" onclick = "showMore('moreBtn_{{request.id}}','reasons_{{request.id}}')" style="color:blue; padding:0; border:none; background:none">
96 <div id="reasons_{{request.id}}" style="display:none"> Reasons for Applying:<br> {{request.reasons}} </div>
98 {% if request.type == 'slice' %}
99 Slice name: {{request.slice_name}} -- User_hrn: {{ request.user_hrn }} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
100 {% else %} {# authority #}
101 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
105 <td>{{ request.timestamp }}</td>
107 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
109 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
119 <div class="col-md-12">
120 <i>There is no pending request waiting for validation.</i>
124 <div class="col-md-12">
125 <h2>Sub-Authorities</h2>
127 {% if sub_authorities %}
129 {% for authority, requests in sub_authorities.items %}
130 {% if authority == pi_authority or 'fibre'%}
131 <div class="col-md-12">
132 <h3>{{authority}}</h3>
133 <table class="table">
141 {% for request in requests %}
143 {% if request.object_auth == pi_authority %}
145 {% if request.allowed == 'allowed' %}
146 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
148 {% if request.allowed == 'expired' %}
150 {% else %} {# denied #}
155 <td>{{ request.type }}</td>
156 <td>{{ request.id }}</td>
158 {% if request.type == 'user' %}
159 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
161 {% if request.type == 'slice' %}
162 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
163 {% else %} {# authority #}
164 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
168 <td>{{ request.timestamp }}</td>
170 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
172 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
181 <div class="col-md-12">
182 <i>There is no pending request waiting for validation.</i>
186 <div class="col-md-12">
187 <h2>Authorities with delegation</h2>
190 {% if delegation_authorities %}
192 {% for authority, requests in delegation_authorities.items %}
193 {% if authority == pi_authority or 'fibre'%}
194 <div class="col-md-12">
195 <h3>{{authority}}</h3>
196 <table class="table">
204 {% for request in requests %}
206 {% if request.object_auth == pi_authority %}
208 {% if request.allowed == 'allowed' %}
209 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
211 {% if request.allowed == 'expired' %}
213 {% else %} {# denied #}
218 <td>{{ request.type }}</td>
219 <td>{{ request.id }}</td>
221 {% if request.type == 'user' %}
222 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
224 {% if request.type == 'slice' %}
225 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
226 {% else %} {# authority #}
227 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
231 <td>{{ request.timestamp }}</td>
233 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
235 <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
244 <div class="col-md-12">
245 <i>There is no pending request waiting for validation.</i>
249 <div class="col-md-12">
250 <button class="btn btn-onelab" type="button" id="portal__validate" onclick="on_click_event();"><span class="glyphicon glyphicon-ok"></span> Validate</button>