layout and style changes
[myslice.git] / portal / templates / validate_pending.html
index dd7d5c2..447c931 100644 (file)
-{% extends "layout-unfold1.html" %}
+{% extends "layout.html" %}
 
 {% block head %}
-<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/validate_pending.css" />
-{% endblock %}
+<script type="text/javascript">
+       function on_click_event() {
+               var ids = []; 
+               $('.portal__validate__checkbox').each(function(i, el) {
+                       if ($(el).prop('checked')) {
+                               // portal__validate__checkbox__slice__2
+                               var id_array = $(el).attr('id').split('__');
+                               // push(slice__2)
+                               ids.push(id_array[3] + '__' + id_array[4]);
+                       }
+               });
+               if (ids.length > 0) {
+                       var id_str = ids.join('/');
+
+                       // XXX spinner
 
-{% block unfold1_main %}
+                       $.getJSON('/portal/validate_action/' + id_str,
+                               function(status) {
+                                       $.each(status, function(request_type__id, request_status) {
+                                               // request_status: NAME -> dict (status, description)
+                                               var status_str = '';
+                                               $.each(request_status, function(name, result) {
+                                                       if (status_str != '')
+                                                               status_str += ' -- ';
 
-<h1>Pending requests</h1>
+                                                       if (result.status) {
+                                                               status_str += '<font color="green">OK</font>';
+                                                               $('#portal__validate__checkbox__' + request_type__id).hide();
+                                                       } else {
+                                                               status_str += '<font color="red">ERROR: ' + result.description + '</font>';
+                                                       }
+                                               });
+                                               $('#portal__status__' + request_type__id).html(status_str)
 
-<h2>My authorities</h2>
 
-{% if my_authorities %}
+                                       });
+                               }
+                       );
+               }
+       }
+</script>
+{% endblock %}
+
+{% block content %}
+       <div class="row">
+               <h1><img src="{{ STATIC_URL }}img/icon_testbed_small.png" alt="" /> Pending requests</h1>
+       </div>
 
-{% for authority, requests in my_authorities.items %}
-<h3>{{authority}}</h3>
-    {% for request in requests %}
-    <div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'>
-               <span class='type'>{{ request.type }}</span>
-               <span class='id'>{{ request.id }}</span>
-               <span class='timestamp'>{{ request.timestamp }}</span>
-               <span class='details'>{{ request.details }}</span>
-               {% if request.allowed == 'allowed' %}
-               <input type='checkbox'/>
-               {% else %}
-                       {% if request.allowed == 'expired' %}
-                               expired
-                       {% else %} {# denied #}
-                               denied
+       {% if my_authorities %}
+       
+       {% for authority, requests in my_authorities.items %}
+       
+       <div class="row">
+               <h3>{{authority}}</h3>
+           <table class="table">
+             <th>
+               <td>type</td>
+               <td>id</td>
+               <td>details</td>
+               <td>timestamp</td>
+               <td>status</td>
+             </th>
+           {% for request in requests %}
+       
+                 <tr>
+                       <td>
+                       {% if request.allowed == 'allowed' %}
+                       <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
+                       {% else %}
+                               {% if request.allowed == 'expired' %}
+                                       expired
+                               {% else %} {# denied #}
+                                       denied
+                               {% endif %}
                        {% endif %}
-               {% endif %}
+                       </td>
+                       <td>{{ request.type }}</td>
+                       <td>{{ request.id }}</td>
+                       <td>
+               {% if request.type == 'user' %}
+               Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
+               {% else %}
+                   {% if request.type == 'slice' %}
+               Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
+                   {% else %} {# authority #}
+               Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
+                   {% endif %}
+               {% endif %}
+                       </td>
+                       <td>{{ request.timestamp }}</td>
+                       
+                       <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
+       
+           <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
+                 </tr>
+       
+           {% endfor %}
+               </table>
        </div>
-    {% endfor %}
-{% endfor %}
+       {% endfor %}
 
 {% else %}
-<i>There is no pending request waiting for validation.</i>
+       <div class="row">
+               <i>There is no pending request waiting for validation.</i>
+       </div>
 {% endif %}
 
-{% if delegation_authorities %}
-<h2>Authorities with delegation</h2>
-
-{% for authority, requests in delegation_authorities.items %}
-<h3>{{authority}}</h3>
-    {% for request in requests %}
-    <div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'>
-               <span class='type'>{{ request.type }}</span>
-               <span class='id'>{{ request.id }}</span>
-               <span class='timestamp'>{{ request.timestamp }}</span>
-               <span class='details'>{{ request.details }}</span>
-               {% if request.allowed == 'allowed' %}
-               <input type='checkbox'/>
-               {% else %}
-                       {% if request.allowed == 'expired' %}
-                               expired
-                       {% else %} {# denied #}
-                               denied
+{% if sub_authorities %}
+       <div class="row">
+               <h2>Sub-Authorities</h2>
+       </div>
+       {% for authority, requests in sub_authorities.items %}
+       <div class="row">
+       <h3>{{authority}}</h3>
+           <table class="table">
+             <th>
+               <td>type</td>
+               <td>id</td>
+               <td>details</td>
+               <td>timestamp</td>
+               <td>status</td>
+             </th>
+           {% for request in requests %}
+                 <tr>
+                       <td>
+                       {% if request.allowed == 'allowed' %}
+                       <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
+                       {% else %}
+                               {% if request.allowed == 'expired' %}
+                                       expired
+                               {% else %} {# denied #}
+                                       denied
+                               {% endif %}
                        {% endif %}
-               {% endif %}
+                       </td>
+                       <td>{{ request.type }}</td>
+                       <td>{{ request.id }}</td>
+                       <td>
+               {% if request.type == 'user' %}
+               Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
+               {% else %}
+                   {% if request.type == 'slice' %}
+               Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
+                   {% else %} {# authority #}
+               Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
+                   {% endif %}
+               {% endif %}
+                       </td>
+                       <td>{{ request.timestamp }}</td>
+                       
+                       <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
+       
+           <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
+                 </tr>
+           {% endfor %}
+           </table>
        </div>
-    {% endfor %}
-{% endfor %}
+       {% endfor %}
 
 {% endif %}
 
+
+{% if delegation_authorities %}
+       <div class="row">
+               <h2>Authorities with delegation</h2>
+       </div>
+       {% for authority, requests in delegation_authorities.items %}
+       <div class="row">
+               <h3>{{authority}}</h3>
+                   <table class="table">
+                     <th>
+                       <td>type</td>
+                       <td>id</td>
+                       <td>details</td>
+                       <td>timestamp</td>
+                       <td>status</td>
+                     </th>
+                   {% for request in requests %}
+                         <tr>
+                               <td>
+                               {% if request.allowed == 'allowed' %}
+                               <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
+                               {% else %}
+                                       {% if request.allowed == 'expired' %}
+                                               expired
+                                       {% else %} {# denied #}
+                                               denied
+                                       {% endif %}
+                               {% endif %}
+                               </td>
+                               <td>{{ request.type }}</td>
+                               <td>{{ request.id }}</td>
+                               <td>
+                       {% if request.type == 'user' %}
+                       Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
+                       {% else %}
+                           {% if request.type == 'slice' %}
+                       Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
+                           {% else %} {# authority #}
+                       Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
+                           {% endif %}
+                      {% endif %}
+                               </td>
+                               <td>{{ request.timestamp }}</td>
+                               
+                               <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
+               
+                   <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
+                         </tr>
+                   {% endfor %}
+                   </table>
+               </div>
+               {% endfor %}
+
+{% endif %}
+       <div class="row">
+               <button type="button" id="portal__validate" onclick="on_click_event();">Validate</button>
+       </div>
 {% endblock %}