layout and style changes
[myslice.git] / portal / templates / validate_pending.html
1 {% extends "layout.html" %}
2
3 {% block head %}
4 <script type="text/javascript">
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 {% endblock %}
46
47 {% block content %}
48         <div class="row">
49                 <h1><img src="{{ STATIC_URL }}img/icon_testbed_small.png" alt="" /> Pending requests</h1>
50         </div>
51
52         {% if my_authorities %}
53         
54         {% for authority, requests in my_authorities.items %}
55         
56         <div class="row">
57                 <h3>{{authority}}</h3>
58             <table class="table">
59               <th>
60                 <td>type</td>
61                 <td>id</td>
62                 <td>details</td>
63                 <td>timestamp</td>
64                 <td>status</td>
65               </th>
66             {% for request in requests %}
67         
68                   <tr>
69                         <td>
70                         {% if request.allowed == 'allowed' %}
71                         <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
72                         {% else %}
73                                 {% if request.allowed == 'expired' %}
74                                         expired
75                                 {% else %} {# denied #}
76                                         denied
77                                 {% endif %}
78                         {% endif %}
79                         </td>
80                         <td>{{ request.type }}</td>
81                         <td>{{ request.id }}</td>
82                         <td>
83                 {% if request.type == 'user' %}
84                 Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
85                 {% else %}
86                     {% if request.type == 'slice' %}
87                 Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
88                     {% else %} {# authority #}
89                 Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
90                     {% endif %}
91                 {% endif %}
92                         </td>
93                         <td>{{ request.timestamp }}</td>
94                         
95                         <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
96         
97             <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
98                   </tr>
99         
100             {% endfor %}
101                 </table>
102         </div>
103         {% endfor %}
104
105 {% else %}
106         <div class="row">
107                 <i>There is no pending request waiting for validation.</i>
108         </div>
109 {% endif %}
110
111 {% if sub_authorities %}
112         <div class="row">
113                 <h2>Sub-Authorities</h2>
114         </div>
115         {% for authority, requests in sub_authorities.items %}
116         <div class="row">
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
163 {% endif %}
164
165
166 {% if delegation_authorities %}
167         <div class="row">
168                 <h2>Authorities with delegation</h2>
169         </div>
170         {% for authority, requests in delegation_authorities.items %}
171         <div class="row">
172                 <h3>{{authority}}</h3>
173                     <table class="table">
174                       <th>
175                         <td>type</td>
176                         <td>id</td>
177                         <td>details</td>
178                         <td>timestamp</td>
179                         <td>status</td>
180                       </th>
181                     {% for request in requests %}
182                           <tr>
183                                 <td>
184                                 {% if request.allowed == 'allowed' %}
185                                 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
186                                 {% else %}
187                                         {% if request.allowed == 'expired' %}
188                                                 expired
189                                         {% else %} {# denied #}
190                                                 denied
191                                         {% endif %}
192                                 {% endif %}
193                                 </td>
194                                 <td>{{ request.type }}</td>
195                                 <td>{{ request.id }}</td>
196                                 <td>
197                         {% if request.type == 'user' %}
198                         Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
199                         {% else %}
200                             {% if request.type == 'slice' %}
201                         Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
202                             {% else %} {# authority #}
203                         Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
204                             {% endif %}
205                        {% endif %}
206                                 </td>
207                                 <td>{{ request.timestamp }}</td>
208                                 
209                                 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
210                 
211                     <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
212                           </tr>
213                     {% endfor %}
214                     </table>
215                 </div>
216                 {% endfor %}
217
218 {% endif %}
219         <div class="row">
220                 <button type="button" id="portal__validate" onclick="on_click_event();">Validate</button>
221         </div>
222 {% endblock %}