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