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