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 +
'
'+
'
'+
@@ -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")+''+
+ '
'+
+ '
'+
+ '
'+
+ '
'+
+ '
'+
+ '
'+
+ ''+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(
'
'+