diff --git a/src/sunstone/public/js/plugins/datastores-tab.js b/src/sunstone/public/js/plugins/datastores-tab.js index 068f9e0455..7b419bc2a4 100644 --- a/src/sunstone/public/js/plugins/datastores-tab.js +++ b/src/sunstone/public/js/plugins/datastores-tab.js @@ -665,11 +665,7 @@ function updateDatastoreInfo(request,ds){ images_str=getImageName(info.IMAGES.ID); }; - var cluster_str = 'Cluster-'; - if (info.ID != "0") - { - cluster_str = insert_cluster_dropdown("Datastore",info.ID,info.CLUSTER,info.CLUSTER_ID); - } + var cluster_str = insert_cluster_dropdown("Datastore",info.ID,info.CLUSTER,info.CLUSTER_ID,"#info_datastore_table"); var is_system_ssh = (info.TEMPLATE.SHARED == "NO") diff --git a/src/sunstone/public/js/plugins/users-tab.js b/src/sunstone/public/js/plugins/users-tab.js index 31692933d4..d47841b8ba 100644 --- a/src/sunstone/public/js/plugins/users-tab.js +++ b/src/sunstone/public/js/plugins/users-tab.js @@ -668,7 +668,7 @@ function updateUserInfo(request,user){ \ \ ' + - insert_group_dropdown("User",info.ID,info.GNAME,info.GID) + + insert_group_dropdown("User",info.ID,info.GNAME,info.GID,"#info_user_table") + '\ \ ' + tr("Secondary groups") + '\ diff --git a/src/sunstone/public/js/sunstone.js b/src/sunstone/public/js/sunstone.js index 8598fc12e5..a57dd42acd 100644 --- a/src/sunstone/public/js/sunstone.js +++ b/src/sunstone/public/js/sunstone.js @@ -1640,6 +1640,51 @@ function getSelectedNodes(dataTable, force_datatable){ return selected_nodes; } +function insertSelectClusters(id, context, init_val, empty_value, extra_options){ + if(!extra_options){ + extra_options = ""; + } + + extra_options += ''; + + insertSelectOptions(id, context, "Cluster", init_val, empty_value, extra_options) +} + +function insertSelectOptions(id, context, resource, init_val, empty_value, extra_options){ + + $(id, context).html(''); + + OpenNebula[resource].list({ + timeout: true, + success: function (request, obj_list){ + var select_str='"; + + $(id, context).html(select_str); + + $(".resource_list_select", context).val(init_val); + }, + error: onError + }); + +} + //returns a HTML string with options for //a select input code generated from a dataTable. //Allows filtering elements specifing status columns @@ -2393,11 +2438,9 @@ function setupQuotasDialog(dialog){ } function popUpQuotasDialog(dialog, resource, sel_elems){ - var im_sel = makeSelectOptions(dataTable_images,1,4,[],[]); - var vn_sel = makeSelectOptions(dataTable_vNetworks,1,4,[],[]); - $('#datastore_quota select',dialog).html(datastores_sel()); - $('#image_quota select',dialog).html(im_sel); - $('#network_quota select',dialog).html(vn_sel); + insertSelectOptions("#image_quota select", dialog, "Image", null, true); + insertSelectOptions("#network_quota select", dialog, "Network", null, true); + insertSelectOptions("#datastore_quota select", dialog, "Datastore",null, true); $('table tbody',dialog).empty(); //If only one user is selected we fecth the user's quotas, otherwise we do nothing. @@ -3231,30 +3274,19 @@ function insert_permissions_table(tab_name, resource_type, resource_id, owner, g // Handlers for chown $(document).off("click", context + " #div_edit_chg_owner_link"); - $(document).off("change", context + " #user_confirm_select"); - - // Listener for key,value pair edit action $(document).on("click", context + " #div_edit_chg_owner_link", function() { var tr_context = $(this).parents("tr"); - - var value_str = $("#value_td_owner", tr_context).text(); - var select_str='"; - $("#value_td_owner", tr_context).html(select_str); - $("select#user_confirm_select", tr_context).val(vm_uid); + insertSelectOptions("#value_td_owner", tr_context, "User", vm_uid, false); }); - $(document).on("change", context + " #user_confirm_select", function() { - var tr_context = $(this).parents("tr"); - - var value_str = $('select#user_confirm_select', tr_context).val(); + $(document).off("change", context + " #value_td_owner .resource_list_select"); + $(document).on("change", context + " #value_td_owner .resource_list_select", function() { + var value_str = $(this).val(); if(value_str!="") { // Let OpenNebula know var resource_struct = new Array(); resource_struct[0] = resource_id; - Sunstone.runAction(resource_type+".chown",resource_struct,value_str); } }); @@ -3272,24 +3304,14 @@ function insert_permissions_table(tab_name, resource_type, resource_id, owner, g // Handlers for chgrp $(document).off("click", context + " #div_edit_chg_group_link"); - $(document).off("change", context + " #group_confirm_select"); - - // Listener for key,value pair edit action $(document).on("click", context + " #div_edit_chg_group_link", function() { var tr_context = $(this).parents("tr"); - - var value_str = $("#value_td_group", tr_context).text(); - var select_str='"; - $("#value_td_group", tr_context).html(select_str); - $("select#group_confirm_select", tr_context).val(vm_gid); + insertSelectOptions("#value_td_group", tr_context, "Group", vm_gid, false); }); - $(document).on("change", context + " #group_confirm_select", function() { - var tr_context = $(this).parents("tr"); - - var value_str = $('select#group_confirm_select', tr_context).val(); + $(document).off("change", context + " #value_td_group .resource_list_select"); + $(document).on("change", context + " #value_td_group .resource_list_select", function() { + var value_str = $(this).val(); if(value_str!="") { // Let OpenNebula know @@ -3342,7 +3364,7 @@ function insert_rename_tr(tab_name, resource_type, resource_id, resource_name){ return str; } -function insert_cluster_dropdown(resource_type, resource_id, cluster_value, cluster_id){ +function insert_cluster_dropdown(resource_type, resource_id, cluster_value, cluster_id, context_str){ var str = '' + tr("Cluster") + '\ '+(cluster_value.length ? cluster_value : "-")+'\ \ @@ -3351,23 +3373,15 @@ function insert_cluster_dropdown(resource_type, resource_id, cluster_value, clus \ '; - $("#div_edit_chg_cluster_link").die(); - $("#cluster_confirm_select").die(); - - - // Listener for key,value pair edit action - $("#div_edit_chg_cluster_link").live("click", function() { - var value_str = $(".value_td_cluster").text(); - var select_str='"; - $(".value_td_cluster").html(select_str); - $("select#cluster_confirm_select").val(cluster_id); + $(document).off("click", context_str + " #div_edit_chg_cluster_link"); + $(document).on("click", context_str + " #div_edit_chg_cluster_link", function() { + var tr_context = $(this).parents("tr"); + insertSelectClusters(".value_td_cluster", tr_context, cluster_id, false); }); - $("#cluster_confirm_select").live("change", function() { - var value_str = $('select#cluster_confirm_select').val(); + $(document).off("change", context_str + " .value_td_cluster .resource_list_select"); + $(document).on("change", context_str + " .value_td_cluster .resource_list_select", function() { + var value_str = $(this).val(); if(value_str!="") { // Let OpenNebula know @@ -3380,7 +3394,8 @@ function insert_cluster_dropdown(resource_type, resource_id, cluster_value, clus return str; } -function insert_group_dropdown(resource_type, resource_id, group_value, group_id){ +//insert_group_dropdown("User",info.ID,info.GNAME,info.GID) + +function insert_group_dropdown(resource_type, resource_id, group_value, group_id, context_str){ var str = '' + tr("Group") + '\ '+ group_value +'\ \ @@ -3389,22 +3404,15 @@ function insert_group_dropdown(resource_type, resource_id, group_value, group_id \ '; - $("#div_edit_chg_group_link").die(); - $("#group_confirm_select").die(); - - - // Listener for key,value pair edit action - $("#div_edit_chg_group_link").live("click", function() { - var value_str = $(".value_td_group").text(); - var select_str='"; - $(".value_td_group").html(select_str); - $("select#group_confirm_select").val(group_id); + $(document).off("click", context_str + " #div_edit_chg_group_link"); + $(document).on("click", context_str + " #div_edit_chg_group_link", function() { + var tr_context = $(this).parents("tr"); + insertSelectOptions(".value_td_group", tr_context, "Group", group_id, false); }); - $("#group_confirm_select").live("change", function() { - var value_str = $('select#group_confirm_select').val(); + $(document).off("change", context_str + " .value_td_group .resource_list_select"); + $(document).on("change", context_str + " .value_td_group .resource_list_select", function() { + var value_str = $(this).val(); if(value_str!="") { // Let OpenNebula know