updated template for validation
[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 unfold1_main %}
49
50 <h1>Pending requests</h1>
51
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     <table width=100% border=1>
60       <th>
61         <td>type</td>
62         <td>id</td>
63         <td>details</td>
64         <td>timestamp</td>
65         <td>status</td>
66       </th>
67     {% for request in requests %}
68
69           <tr>
70                 <td>
71                 {% if request.allowed == 'allowed' %}
72                 <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
73                 {% else %}
74                         {% if request.allowed == 'expired' %}
75                                 expired
76                         {% else %} {# denied #}
77                                 denied
78                         {% endif %}
79                 {% endif %}
80                 </td>
81                 <td>{{ request.type }}</td>
82                 <td>{{ request.id }}</td>
83                 <td>
84         {% if request.type == 'user' %}
85         Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
86         {% else %}
87             {% if request.type == 'slice' %}
88         Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
89             {% else %} {# authority #}
90         TODO
91             {% endif %}
92         {% endif %}
93                 </td>
94                 <td>{{ request.timestamp }}</td>
95                 
96                 <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
97
98     <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
99           </tr>
100
101     {% endfor %}
102         </table>
103 {% endfor %}
104
105 {% else %}
106 <i>There is no pending request waiting for validation.</i>
107 {% endif %}
108
109
110 {% if delegation_authorities %}
111 <hr/>
112 <h2>Authorities with delegation</h2>
113
114 {% for authority, requests in delegation_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         TODO
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 <input type='button' id='portal__validate' value='Validate' onclick='on_click_event();'/>
164
165 {% endblock %}