f148759c452b2189f0686a9b82e9f6b986984b9a
[myslice.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                 {% if authority == auth_hrn or "fibre" %}
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                 {% endif %}
103         {% endfor %}
104
105 {% else %}
106         <div class="col-md-12">
107                 <i>There is no pending request waiting for validation.</i>
108         </div>
109 {% endif %}
110 <br />
111 <div class="col-md-12">
112         <h2>Sub-Authorities</h2>
113 </div>
114 {% if sub_authorities %}
115         
116         {% for authority, requests in sub_authorities.items %}
117                 {% if authority == auth_hrn or "fibre" %}
118                 <div class="col-md-12">
119                 <h3>{{authority}}</h3>
120                     <table class="table">
121                       <th>
122                         <td>Type</td>
123                         <td>Id</td>
124                         <td>Details</td>
125                         <td>Timestamp</td>
126                         <td>Status</td>
127                       </th>
128                     {% for request in requests %}
129                           <tr>
130                                 <td>
131                                 {% if request.allowed == 'allowed' %}
132                                 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
133                                 {% else %}
134                                         {% if request.allowed == 'expired' %}
135                                                 expired
136                                         {% else %} {# denied #}
137                                                 denied
138                                         {% endif %}
139                                 {% endif %}
140                                 </td>           
141                                 <td>{{ request.type }}</td>
142                                 <td>{{ request.id }}</td>
143                                 <td>
144                         {% if request.type == 'user' %}
145                         Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
146                         {% else %}
147                             {% if request.type == 'slice' %}
148                         Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
149                             {% else %} {# authority #}
150                         Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
151                             {% endif %}
152                         {% endif %}
153                                 </td>
154                                 <td>{{ request.timestamp }}</td>
155                                 
156                                 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
157                 
158             <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
159                           </tr>
160                     {% endfor %}
161                     </table>
162                 </div>
163                 {% endif %}
164         {% endfor %}
165 {% else %}
166 <div class="col-md-12">
167         <i>There is no pending request waiting for validation.</i>
168 </div>
169 {% endif %}
170 <br />
171 <div class="col-md-12">
172         <h2>Authorities with delegation</h2>
173 </div>
174
175 {% if delegation_authorities %}
176         
177         {% for authority, requests in delegation_authorities.items %}
178         <div class="col-md-12">
179                 {% if authority == "fibre" or auth_hrn %}
180                         <h3>{{authority}}</h3>
181                             <table class="table">
182                               <th>
183                                 <td>Type</td>
184                                 <td>Id</td>
185                                 <td>Details</td>
186                                 <td>Timestamp</td>
187                                 <td>Status</td>
188                               </th>
189                             {% for request in requests %}
190                                   <tr>
191                                         <td>
192                                         {% if request.allowed == 'allowed' %}
193                                         <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
194                                         {% else %}
195                                                 {% if request.allowed == 'expired' %}
196                                                         expired
197                                                 {% else %} {# denied #}
198                                                         denied
199                                                 {% endif %}
200                                         {% endif %}
201                                         </td>
202                                         <td>{{ request.type }}</td>
203                                         <td>{{ request.id }}</td>
204                                         <td>
205                                 {% if request.type == 'user' %}
206                                 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
207                                 {% else %}
208                                     {% if request.type == 'slice' %}
209                                 Slice name: {{request.slice_name}} -- user_hrn: {{ request.user_hrn }} -- Purpose: {{request.purpose}}
210                                     {% else %} {# authority #}
211                                 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
212                                     {% endif %}
213                                {% endif %}
214                                         </td>
215                                         <td>{{ request.timestamp }}</td>
216                                 
217                                         <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
218                 
219                     <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
220                                   </tr>
221                             {% endfor %}
222                             </table>
223                 {% endif %}
224                 </div>
225                 {% endfor %}
226 {% else %}
227 <div class="col-md-12">
228         <i>There is no pending request waiting for validation.</i>
229 </div>
230 {% endif %}
231 <br />
232 <div class="col-md-12">
233         <button class="btn btn-onelab" type="button" id="portal__validate" onclick="on_click_event();"><span class="glyphicon glyphicon-ok"></span> Validate</button>
234 </div>