d534915ea7532d3028e0983cab04260cb52d9d33
[unfold.git] / portal / templates / management-tab-requests.html
1 <script type="text/javascript">
2         $(document).ready(function() {
3                 $("li#nav-request").addClass("active");
4         });
5         function on_click_event() {
6                 var ids = []; 
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('__');
11                                 // push(slice__2)
12                                 ids.push(id_array[3] + '__' + id_array[4]);
13                         }
14                 });
15                 if (ids.length > 0) {
16                         var id_str = ids.join('/');
17
18                         // XXX spinner
19
20                         $.getJSON('/portal/validate_action/' + id_str,
21                                 function(status) {
22                                         $.each(status, function(request_type__id, request_status) {
23                                                 // request_status: NAME -> dict (status, description)
24                                                 var status_str = '';
25                                                 $.each(request_status, function(name, result) {
26                                                         if (status_str != '')
27                                                                 status_str += ' -- ';
28
29                                                         if (result.status) {
30                                                                 status_str += '<font color="green">OK</font>';
31                                                                 $('#portal__validate__checkbox__' + request_type__id).hide();
32                                                         } else {
33                                                                 status_str += '<font color="red">ERROR: ' + result.description + '</font>';
34                                                         }
35                                                 });
36                                                 $('#portal__status__' + request_type__id).html(status_str);
37
38
39                                         });
40                                 }
41                         );
42                 }
43         }
44 </script>
45
46 <div class="col-md-12">
47         <h2>Authorities</h2>
48 </div>
49 {% if my_authorities %}
50         
51         {% for authority, requests in my_authorities.items %}
52         
53         <div class="col-md-12">
54                 <h2>{{authority}}</h2>
55         </div>
56         
57     <table class="table">
58       <th>
59         <td>Type</td>
60         <td>Id</td>
61         <td>Details</td>
62         <td>Timestamp</td>
63         <td>Status</td>
64       </th>
65     {% for request in requests %}
66
67           <tr>
68                 <td>
69                 {% if request.allowed == 'allowed' %}
70                 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
71                 {% else %}
72                         {% if request.allowed == 'expired' %}
73                                 expired
74                         {% else %} {# denied #}
75                                 denied
76                         {% endif %}
77                 {% endif %}
78                 </td>
79                 <td>{{ request.type }}</td>
80                 <td>{{ request.id }}</td>
81                 <td>
82         {% if request.type == 'user' %}
83         Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
84         {% else %}
85             {% if request.type == 'slice' %}
86         Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
87             {% else %} {# authority #}
88         Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
89             {% endif %}
90         {% endif %}
91                 </td>
92                 <td>{{ request.timestamp }}</td>
93                 
94                 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
95
96     <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
97           </tr>
98
99     {% endfor %}
100         </table>
101         </div>
102         {% endfor %}
103
104 {% else %}
105         <div class="col-md-12">
106                 <i>There is no pending request waiting for validation.</i>
107         </div>
108 {% endif %}
109 <br />
110 <div class="col-md-12">
111         <h2>Sub-Authorities</h2>
112 </div>
113 {% if sub_authorities %}
114         
115         {% for authority, requests in sub_authorities.items %}
116         <div class="col-md-12">
117         <h3>{{authority}}</h3>
118             <table class="table">
119               <th>
120                 <td>Type</td>
121                 <td>Id</td>
122                 <td>Details</td>
123                 <td>Timestamp</td>
124                 <td>Status</td>
125               </th>
126             {% for request in requests %}
127                   <tr>
128                         <td>
129                         {% if request.allowed == 'allowed' %}
130                         <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
131                         {% else %}
132                                 {% if request.allowed == 'expired' %}
133                                         expired
134                                 {% else %} {# denied #}
135                                         denied
136                                 {% endif %}
137                         {% endif %}
138                         </td>
139                         <td>{{ request.type }}</td>
140                         <td>{{ request.id }}</td>
141                         <td>
142                 {% if request.type == 'user' %}
143                 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
144                 {% else %}
145                     {% if request.type == 'slice' %}
146                 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
147                     {% else %} {# authority #}
148                 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
149                     {% endif %}
150                 {% endif %}
151                         </td>
152                         <td>{{ request.timestamp }}</td>
153                         
154                         <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
155         
156             <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
157                   </tr>
158             {% endfor %}
159             </table>
160         </div>
161         {% endfor %}
162 {% else %}
163 <div class="col-md-12">
164         <i>There is no pending request waiting for validation.</i>
165 </div>
166 {% endif %}
167 <br />
168 <div class="col-md-12">
169         <h2>Authorities with delegation</h2>
170 </div>
171
172 {% if delegation_authorities %}
173         
174         {% for authority, requests in delegation_authorities.items %}
175         <div class="col-md-12">
176                 <h3>{{authority}}</h3>
177                     <table class="table">
178                       <th>
179                         <td>Type</td>
180                         <td>Id</td>
181                         <td>Details</td>
182                         <td>Timestamp</td>
183                         <td>Status</td>
184                       </th>
185                     {% for request in requests %}
186                           <tr>
187                                 <td>
188                                 {% if request.allowed == 'allowed' %}
189                                 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
190                                 {% else %}
191                                         {% if request.allowed == 'expired' %}
192                                                 expired
193                                         {% else %} {# denied #}
194                                                 denied
195                                         {% endif %}
196                                 {% endif %}
197                                 </td>
198                                 <td>{{ request.type }}</td>
199                                 <td>{{ request.id }}</td>
200                                 <td>
201                         {% if request.type == 'user' %}
202                         Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
203                         {% else %}
204                             {% if request.type == 'slice' %}
205                         Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
206                             {% else %} {# authority #}
207                         Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
208                             {% endif %}
209                        {% endif %}
210                                 </td>
211                                 <td>{{ request.timestamp }}</td>
212                                 
213                                 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
214                 
215                     <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
216                           </tr>
217                     {% endfor %}
218                     </table>
219                 </div>
220                 {% endfor %}
221 {% else %}
222 <div class="col-md-12">
223         <i>There is no pending request waiting for validation.</i>
224 </div>
225 {% endif %}
226 <br />
227 <div class="col-md-12">
228         <button class="btn btn-onelab" type="button" id="portal__validate" onclick="on_click_event();"><span class="glyphicon glyphicon-ok"></span> Validate</button>
229 </div>