From cf4effbfdf5541aa4f8794df8511c86acbafaf4a Mon Sep 17 00:00:00 2001 From: Daniel Molina Date: Mon, 2 Jun 2014 19:34:03 +0200 Subject: [PATCH] feature #2909: Add cardinality to the flow creation form --- .../public/js/plugins/provision-tab.js | 101 ++++++++++++++++-- 1 file changed, 90 insertions(+), 11 deletions(-) diff --git a/src/sunstone/public/js/plugins/provision-tab.js b/src/sunstone/public/js/plugins/provision-tab.js index 9af226d3c3..57a273fa45 100644 --- a/src/sunstone/public/js/plugins/provision-tab.js +++ b/src/sunstone/public/js/plugins/provision-tab.js @@ -1892,6 +1892,65 @@ var povision_actions = { Sunstone.addMainTab('provision-tab',provision_tab); Sunstone.addActions(povision_actions); + +function generate_cardinality_selector(context, role_template) { + console.log(role_template) + context.html( + '
'+ + '
'+ + '
'+ + '

'+ + ''+ + ' '+ + tr("Cardinality")+ + ''+ + '

'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + '
'+ + ''+role_template.cardinality+''+ + '
'+ + ''+tr("VMs")+''+ + '
'+ + '
'+ + ''+tr("Change cardinality")+''+ + '
'+ + '
'+ + '
'+ + '
'+ + ''+(role_template.min_vms||1)+''+ + ''+(role_template.max_vms||100)+''+ + '
'+ + '
'+ + '
'+ + '
'); + + var provision_cardinality_slider = $( ".cardinality_slider", context).noUiSlider({ + handles: 1, + connect: "lower", + range: [(role_template.min_vms||1),(role_template.max_vms||100)], + step: 1, + start: role_template.cardinality, + value: role_template.cardinality, + slide: function(type) { + if ( type != "move"){ + if ($(this).val()) { + $(".cardinality_value", context).html($(this).val()); + } + } + } + }); + + provision_cardinality_slider.val(role_template.cardinality) + + provision_cardinality_slider.addClass("noUiSlider"); +} + var provision_instance_type_accordion_id = 0; function generate_provision_instance_type_accordion(context, capacity) { @@ -2070,6 +2129,8 @@ function generate_provision_instance_type_accordion(context, capacity) { $('.accordion a', context).first().trigger("click"); }) + $(document).foundation(); + update_provision_instance_types_datatable(provision_instance_types_datatable); } @@ -3880,7 +3941,12 @@ $(document).ready(function(){ $(".provision_accordion_template .selected_template").show(); $(".provision_accordion_template .select_template").hide(); $(".provision_accordion_template .selected_template_name").html(template_json.VMTEMPLATE.NAME) - $(".provision_accordion_template .selected_template_logo").html(''); + if (template_json.VMTEMPLATE.TEMPLATE.LOGO) { + $(".provision_accordion_template .selected_template_logo").html(''); + } else { + $(".provision_accordion_template .selected_template_logo").html(' '); + } + $(".provision_accordion_template a").first().trigger("click"); generate_provision_instance_type_accordion( @@ -4077,7 +4143,7 @@ $(document).ready(function(){ $(".provision_accordion_flow_template a").first().trigger("click"); $.each(data.DOCUMENT.TEMPLATE.BODY.roles, function(index, role){ - var context = $('
'+ + var context = $('
'+ '
'+ '
'+ '

'+ @@ -4088,11 +4154,12 @@ $(document).ready(function(){ '

'+ '
'+ '
'+ - '
'+ + '
'+ '
'+ '
'+ + '
'+ '
'+ - '
'+ + '
'+ '
'+ '
'+ '
'+ @@ -4103,6 +4170,10 @@ $(document).ready(function(){ var template_id = role.vm_template; var role_html_id = "#provision_create_flow_role_"+index; + generate_cardinality_selector( + $(".provision_cardinality_selector", context), + role); + OpenNebula.Template.show({ data : { id: template_id @@ -4119,11 +4190,12 @@ $(document).ready(function(){ $(".provision_capacity_selector", context), template_json.VMTEMPLATE.TEMPLATE); - generate_provision_network_accordion($(".provision_network_selector", context)) - $.each(nics, function(index, nic){ - generate_provision_network_table($(".provision_nic_accordion", context), nic); - }) + //generate_provision_network_accordion($(".provision_network_selector", context)) +// + //$.each(nics, function(index, nic){ + // generate_provision_network_table($(".provision_nic_accordion", context), nic); + //}) } }) @@ -4169,9 +4241,16 @@ $(document).ready(function(){ return false; } + var roles = []; + $(".provision_create_flow_role", context).each(function(){ + var role_template = JSON.parse($(this).attr("data")); + roles.push($.extend(role_template, {"cardinality": $(".cardinality_value", $(this)).text()})); + }) + var extra_info = { 'merge_template': { - "name" : flow_name + "name" : flow_name, + "roles" : roles } } @@ -4669,8 +4748,8 @@ $(document).ready(function(){ $.each(body.roles, function(index, role) { var role_state = get_provision_flow_state(role); var rvms = { - str : role.nodes.length + " / " + role.cardinality , - percentage : Math.floor(role.nodes.length / role.cardinality)*100 + str : (role.nodes ? role.nodes.length : 0) + " / " + role.cardinality , + percentage : Math.floor((role.nodes ? role.nodes.length : 0) / role.cardinality)*100 } roles_li +=