From: Loic Baron Date: Thu, 23 Apr 2015 16:58:06 +0000 (+0200) Subject: Validate Requests: spinner while validating X-Git-Tag: myslice-1.3~14 X-Git-Url: http://git.onelab.eu/?p=myslice.git;a=commitdiff_plain;h=5826fa4ed4a6e48975387a5ffc469cb60ba194cc Validate Requests: spinner while validating --- diff --git a/portal/static/js/requests.js b/portal/static/js/requests.js new file mode 100644 index 00000000..09535a7a --- /dev/null +++ b/portal/static/js/requests.js @@ -0,0 +1,105 @@ +function unspin_all_status(){ + $('.portal__validate__checkbox').each(function (index) { + if(this.checked){ + t_id = this.id.split('__'); + status_id = t_id[t_id.length-2]+'__'+t_id[t_id.length-1]+'-status-loading'; + $('#'+status_id).css('display','none'); + } + }); +} +function spin_all_status(){ + $('.portal__validate__checkbox').each(function (index) { + if(this.checked){ + t_id = this.id.split('__'); + status_id = t_id[t_id.length-2]+'__'+t_id[t_id.length-1]+'-status-loading'; + $('#'+status_id).css('display','inline'); + } + }); +} + $(document).ready(function() { + $("li#nav-request").addClass("active"); + $('table.requests').dataTable({ + "sDom": "frtiS", + "bScrollCollapse": true, + "bStateSave": true, + "bPaginate": false, + "bLengthChange": false, + "bFilter": false, + "bSort": true, + "bInfo": false, + "bAutoWidth": true, + "bAutoHeight": false, + }); + }); + 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) { + spin_all_status(); + var id_str = ids.join('/'); + + // XXX spinner + $.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 += ' -- '; + + if (result.status) { + status_str += 'OK'; + $('#portal__validate__checkbox__' + request_type__id).hide(); + } else { + status_str += 'ERROR: ' + result.description + ''; + } + }); + $('#portal__status__' + request_type__id).html(status_str); + }); + unspin_all_status(); + }); + } + } + function on_click_reject() { + 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) { + spin_all_status(); + var id_str = ids.join('/'); + + // XXX spinner + $.getJSON('/portal/reject_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 += ' -- '; + + if (result.status) { + status_str += 'Rejected'; + $('#portal__validate__checkbox__' + request_type__id).hide(); + } else { + status_str += 'ERROR: ' + result.description + ''; + } + }); + $('#portal__status__' + request_type__id).html(status_str); + }); + unspin_all_status(); + }); + } + } diff --git a/portal/templates/fed4fire/fed4fire_institution.html b/portal/templates/fed4fire/fed4fire_institution.html index f9a272ef..facc1180 100644 --- a/portal/templates/fed4fire/fed4fire_institution.html +++ b/portal/templates/fed4fire/fed4fire_institution.html @@ -2,6 +2,7 @@ {% block head %} + {% endblock head %} {% block content %} diff --git a/portal/templates/management-tab-requests.html b/portal/templates/management-tab-requests.html index 0b9b8f80..eea48461 100644 --- a/portal/templates/management-tab-requests.html +++ b/portal/templates/management-tab-requests.html @@ -1,100 +1,3 @@ - - -

From your authorities

@@ -150,7 +53,10 @@ {{ request.timestamp }} - + + + + @@ -167,121 +73,6 @@
{% endif %}
- -{% if sub_authorities %} -
-
-

From your sub-authorities

-
- - {% for authority, requests in sub_authorities.items %} -
-

{{authority}}

- - - - - - - - {% for request in requests %} - - - - - - - - - - - - {% endfor %} -
- TypeIdDetailsTimestampStatus
- {% if request.allowed == 'allowed' %} - - {% else %} - {% if request.allowed == 'expired' %} - expired - {% else %} {# denied #} - denied - {% endif %} - {% endif %} - {{ request.type }}{{ request.id }} - {% 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}} - {% elif request.type == 'project' %} - {{request.project_name}} -- {{ request.user_hrn }} -- Purpose: {{request.purpose}} - {% elif request.type == 'join' %} - {{request.user_hrn}} -- to join {{ request.authority_hrn }} - {% else %} {# authority #} - Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}} - {% endif %} - {% endif %} - {{ request.timestamp }}
-
- {% endfor %} -{% endif %} -{% if delegation_authorities %} -
-
-

From your authorities with delegation

-
- - {% for authority, requests in delegation_authorities.items %} -
-

{{authority}}

- - - - - - - - {% for request in requests %} - - - - - - - - - - - - {% endfor %} -
- TypeIdDetailsTimestampStatus
- {% if request.allowed == 'allowed' %} - - {% else %} - {% if request.allowed == 'expired' %} - expired - {% else %} {# denied #} - denied - {% endif %} - {% endif %} - {{ request.type }}{{ request.id }} - {% 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}} - {% elif request.type == 'project' %} - {{request.project_name}} -- {{ request.user_hrn }} -- 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 %} - {{ request.timestamp }}
-
- {% endfor %} -{% endif %}