From 4ad7353eca69eff5ce77ec81bf9d599ea45fa292 Mon Sep 17 00:00:00 2001 From: Daniel Molina Date: Mon, 23 Jun 2014 15:41:50 +0200 Subject: [PATCH] feature #2909: Add change cardinality for roles --- .../public/js/plugins/provision-tab.js | 163 ++++++++++++++---- 1 file changed, 126 insertions(+), 37 deletions(-) diff --git a/src/sunstone/public/js/plugins/provision-tab.js b/src/sunstone/public/js/plugins/provision-tab.js index af96f3838f..4d416950a1 100644 --- a/src/sunstone/public/js/plugins/provision-tab.js +++ b/src/sunstone/public/js/plugins/provision-tab.js @@ -1086,7 +1086,7 @@ var provision_info_vdc_user = ''+ '
'+ '
'+ - '
'+ + '
'+ empty_graph_placeholder + '
'+ '
'+ @@ -1098,7 +1098,7 @@ var provision_info_vdc_user = ''+tr("Memory GB hours")+''+ '
'+ '
'+ - '
'+ + '
'+ empty_graph_placeholder + '
'+ '
'+ @@ -4427,11 +4427,11 @@ function setup_info_flow(context) { '
'+ ''+ '
  • '+ - ''+ - tr("Show VMs")+ + ''+ + ''+ ''+ - ''+ - tr("Change Cardinality")+ + ''+ + ''+ ''+ '
  • '+ ''+ @@ -4439,37 +4439,6 @@ function setup_info_flow(context) { }); } - context.on("click", ".provision_role_vms_button", function(){ - $(".provision_role_vms_container", context).html('
    '+ - ''+ - ''+ - ''+ - ''+ - '
    '+ - '
    '+ - ''+ - ''+ - '
    '); - - var role_json = $(this).closest(".provision_role_ul").attr('role'); - var role = JSON.parse(role_json); - var vms = [] - $.each(role.nodes, function(index, node){ - vms.push(node.vm_info); - }) - - generate_provision_vms_list( - $(".provision_role_vms_container", context), - { - title: role.name + ' ' + tr("VMs"), - active: true, - refresh: false, - create: false, - filter: false, - data: vms - }); - }) - $(".provision_info_flow_state_hr", context).html('
    '); $(".provision_confirm_action", context).html(""); @@ -4480,6 +4449,126 @@ function setup_info_flow(context) { }) } + context.on("click", ".provision_role_vms_button", function(){ + $(".provision_role_vms_container", context).html('
    '+ + ''+ + ''+ + ''+ + ''+ + '
    '+ + '
    '+ + ''+ + ''+ + '
    '); + + var role_json = $(this).closest(".provision_role_ul").attr('role'); + var role = JSON.parse(role_json); + var vms = [] + $.each(role.nodes, function(index, node){ + vms.push(node.vm_info); + }) + + generate_provision_vms_list( + $(".provision_role_vms_container", context), + { + title: role.name + ' ' + tr("VMs"), + active: true, + refresh: false, + create: false, + filter: false, + data: vms + }); + }) + + context.on("click", ".provision_role_cardinality_button", function(){ + var role_json = $(this).closest(".provision_role_ul").attr('role'); + var role = JSON.parse(role_json); + var min_vms = (role.min_vms||1); + var max_vms = (role.max_vms||100); + + $(".provision_confirm_action", context).html( + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + ''+role.cardinality+''+ + '
    '+ + ''+role.name + ' ' + tr("VMs")+''+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + ''+min_vms+''+ + ''+max_vms+''+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + ''+tr("Change Cardinality")+''+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + ''+tr("The cardinality for this role cannot be changed")+''+ + '
    '+ + '
    '+ + '
    '+ + '
    '+ + '×'+ + '
    '); + + + if (max_vms > min_vms) { + $( ".cardinality_slider_div", context).show(); + $( ".cardinality_no_slider_div", context).hide(); + + var provision_cardinality_slider = $( ".cardinality_slider", context).noUiSlider({ + handles: 1, + connect: "lower", + range: [min_vms, max_vms], + step: 1, + start: role.cardinality, + value: role.cardinality, + slide: function(type) { + if ( type != "move"){ + if ($(this).val()) { + $(".cardinality_value", context).html($(this).val()); + } + } + } + }); + + provision_cardinality_slider.val(role.cardinality) + + provision_cardinality_slider.addClass("noUiSlider"); + } else { + $( ".cardinality_slider_div", context).hide(); + $( ".cardinality_no_slider_div", context).show(); + } + + return false; + }); + + context.on("click", ".provision_change_cardinality_button", function(){ + var flow_id = $(".provision_info_flow", context).attr("flow_id"); + var cardinality = $(".cardinality_slider", context).val() + + OpenNebula.Role.update({ + data : { + id: flow_id + '/role/' + $(this).attr("role_id"), + extra_param: { + cardinality: cardinality + } + }, + success: function(request, response){ + OpenNebula.Helper.clear_cache("SERVICE"); + update_provision_flow_info(flow_id, context); + }, + error: onError + }) + }); + context.on("click", ".provision_delete_confirm_button", function(){ $(".provision_confirm_action", context).html( '
    '+