Cloud plugin: OK
[myslice.git] / portal / templates / validate_pending.html
1 {% extends "layout.html" %}
2
3 {% block head %}
4 <script type="text/javascript">
5         $(document).ready(function() {
6                 $("li#nav-request").addClass("active");
7         });
8         function on_click_event() {
9                 var ids = []; 
10                 $('.portal__validate__checkbox').each(function(i, el) {
11                         if ($(el).prop('checked')) {
12                                 // portal__validate__checkbox__slice__2
13                                 var id_array = $(el).attr('id').split('__');
14                                 // push(slice__2)
15                                 ids.push(id_array[3] + '__' + id_array[4]);
16                         }
17                 });
18                 if (ids.length > 0) {
19                         var id_str = ids.join('/');
20
21                         // XXX spinner
22
23                         $.getJSON('/portal/validate_action/' + id_str,
24                                 function(status) {
25                                         $.each(status, function(request_type__id, request_status) {
26                                                 // request_status: NAME -> dict (status, description)
27                                                 var status_str = '';
28                                                 $.each(request_status, function(name, result) {
29                                                         if (status_str != '')
30                                                                 status_str += ' -- ';
31
32                                                         if (result.status) {
33                                                                 status_str += '<font color="green">OK</font>';
34                                                                 $('#portal__validate__checkbox__' + request_type__id).hide();
35                                                         } else {
36                                                                 status_str += '<font color="red">ERROR: ' + result.description + '</font>';
37                                                         }
38                                                 });
39                                                 $('#portal__status__' + request_type__id).html(status_str)
40
41
42                                         });
43                                 }
44                         );
45                 }
46         }
47 </script>
48 {% endblock %}
49
50 {% block content %}
51         <div class="row">
52                 <h1><img src="{{ STATIC_URL }}icons/testbed-xs.png" alt="Pending Requests" /> Pending requests</h1>
53         </div>
54
55         {% if my_authorities %}
56         
57         {% for authority, requests in my_authorities.items %}
58         
59         <div class="row">
60                 <h3>{{authority}}</h3>
61             <table class="table">
62               <th>
63                 <td>type</td>
64                 <td>id</td>
65                 <td>details</td>
66                 <td>timestamp</td>
67                 <td>status</td>
68               </th>
69             {% for request in requests %}
70         
71                   <tr>
72                         <td>
73                         {% if request.allowed == 'allowed' %}
74                         <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
75                         {% else %}
76                                 {% if request.allowed == 'expired' %}
77                                         expired
78                                 {% else %} {# denied #}
79                                         denied
80                                 {% endif %}
81                         {% endif %}
82                         </td>
83                         <td>{{ request.type }}</td>
84                         <td>{{ request.id }}</td>
85                         <td>
86                 {% if request.type == 'user' %}
87                 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
88                 {% else %}
89                     {% if request.type == 'slice' %}
90                 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
91                     {% else %} {# authority #}
92                 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
93                     {% endif %}
94                 {% endif %}
95                         </td>
96                         <td>{{ request.timestamp }}</td>
97                         
98                         <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
99         
100             <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
101                   </tr>
102         
103             {% endfor %}
104                 </table>
105         </div>
106         {% endfor %}
107
108 {% else %}
109         <div class="row">
110                 <i>There is no pending request waiting for validation.</i>
111         </div>
112 {% endif %}
113
114 {% if sub_authorities %}
115         <div class="row">
116                 <h2>Sub-Authorities</h2>
117         </div>
118         {% for authority, requests in sub_authorities.items %}
119         <div class="row">
120         <h3>{{authority}}</h3>
121             <table class="table">
122               <th>
123                 <td>type</td>
124                 <td>id</td>
125                 <td>details</td>
126                 <td>timestamp</td>
127                 <td>status</td>
128               </th>
129             {% for request in requests %}
130                   <tr>
131                         <td>
132                         {% if request.allowed == 'allowed' %}
133                         <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
134                         {% else %}
135                                 {% if request.allowed == 'expired' %}
136                                         expired
137                                 {% else %} {# denied #}
138                                         denied
139                                 {% endif %}
140                         {% endif %}
141                         </td>
142                         <td>{{ request.type }}</td>
143                         <td>{{ request.id }}</td>
144                         <td>
145                 {% if request.type == 'user' %}
146                 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
147                 {% else %}
148                     {% if request.type == 'slice' %}
149                 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
150                     {% else %} {# authority #}
151                 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
152                     {% endif %}
153                 {% endif %}
154                         </td>
155                         <td>{{ request.timestamp }}</td>
156                         
157                         <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
158         
159             <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
160                   </tr>
161             {% endfor %}
162             </table>
163         </div>
164         {% endfor %}
165
166 {% endif %}
167
168
169 {% if delegation_authorities %}
170         <div class="row">
171                 <h2>Authorities with delegation</h2>
172         </div>
173         {% for authority, requests in delegation_authorities.items %}
174         <div class="row">
175                 <h3>{{authority}}</h3>
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                 </div>
219                 {% endfor %}
220
221 {% endif %}
222         <div class="row">
223                 <button type="button" id="portal__validate" onclick="on_click_event();">Validate</button>
224         </div>
225 {% endblock %}