diff --git a/src/sunstone/public/js/plugins/config-tab.js b/src/sunstone/public/js/plugins/config-tab.js index 9a749b11af..845bc93e12 100644 --- a/src/sunstone/public/js/plugins/config-tab.js +++ b/src/sunstone/public/js/plugins/config-tab.js @@ -94,7 +94,7 @@ var config_tab_content =
\ \ \ - \ + \ \ \ \ @@ -153,7 +153,18 @@ var config_tab_content = \ \ \ \ @@ -202,12 +213,7 @@ Sunstone.addActions({ call: OpenNebula.User.update, callback: function(request) { notifyMessage(tr("Template updated correctly")); - OpenNebula.User.show({ - data : { - id: "-1" - }, - success: updateUserConfigInfo - }); + fillUserInfo(); }, error: onError }, @@ -307,6 +313,16 @@ function setupConfigDialog() { } }) }); + + $("#quota_group_sel").die(); + + $("#quota_group_sel").live("change", function() { + var value_str = $('select#quota_group_sel').val(); + if(value_str!="") + { + fillGroupQuotas(value_str) + } + }); } function tr(str){ @@ -333,23 +349,32 @@ function updateUserConfigInfo(request,user_json) { $("#user_information tbody").html('\ \ - \ + \ \ \ \ - \ + \ \ \ \ - \ + \ \ \ - \ - \ + \ + \ + \ + \ + \ + \ + \ \ \ \ - \ + \ ') $("#setting_user_template").html( @@ -358,28 +383,57 @@ function updateUserConfigInfo(request,user_json) { "-1", tr("Custom Attributes")) ) + + $("#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() { + // TODO: do not call group.list again, use the callback from + // $("span.user-login a.configuration").click + OpenNebula.Group.list( + { + success: function(request, group_list) { + var value_str = $(".value_td_group").text(); + var select_str='"; + $(".value_td_group").html(select_str); + $("select#group_confirm_select").val(info.GID); + }, + error: onError + }) + }); + + $("#group_confirm_select").live("change", function() { + var value_str = $('select#group_confirm_select').val(); + if(value_str!="") + { + // Let OpenNebula know + var resource_struct = new Array(); + resource_struct[0] = info.ID; + Sunstone.runAction("User.chgrp",resource_struct,value_str); + fillUserInfo(); + } + }); } -$(document).ready(function(){ - setupConfigDialog(); - setupUpdatePassword(); - - $("span.user-login a.configuration").click(function(){ - OpenNebula.User.show({ - data : { - id: '-1' - }, - success: updateUserConfigInfo - }); - +function fillGroupQuotas(group_id){ OpenNebula.Group.show({ data : { - id: '-1' + id: group_id }, success: function(request,group_json){ var info = group_json.GROUP; - var default_group_quotas = Quotas.default_quotas(info.DEFAULT_GROUP_QUOTAS) + var default_group_quotas = Quotas.default_quotas(info.DEFAULT_GROUP_QUOTAS); + var quotas_tab_html = Quotas.vms(info, default_group_quotas); quotas_tab_html += Quotas.cpu(info, default_group_quotas); quotas_tab_html += Quotas.memory(info, default_group_quotas); @@ -387,10 +441,46 @@ $(document).ready(function(){ quotas_tab_html += Quotas.network(info, default_group_quotas); quotas_tab_html += Quotas.datastore(info, default_group_quotas); - $("#group_quotasTab").html(quotas_tab_html); + $("#group_quotasTabBody").html(quotas_tab_html); + + $("select#quota_group_sel").val(info.ID); } }); +} - $config_dialog.reveal(); - }); +function fillUserInfo(){ + OpenNebula.User.show({ + data : { + id: '-1' + }, + success: updateUserConfigInfo + }); +} + +$(document).ready(function(){ + setupConfigDialog(); + setupUpdatePassword(); + + $("span.user-login a.configuration").click(function(){ + fillUserInfo(); + + OpenNebula.Group.list( + { + success: function(request, group_list) { + var group_dropdown_options = ""; + $.each(group_list,function(){ + group_dropdown_options += + ''; + }); + + $('select#quota_group_sel', $config_dialog).html(group_dropdown_options); + + fillGroupQuotas('-1'); + } + }); + + $config_dialog.reveal(); + }); }); \ No newline at end of file
' + tr("User information") +'
' + tr("User information") +'
' + tr("ID") + ''+info.ID+''+info.ID+'
' + tr("Name") + ''+info.NAME+''+info.NAME+'
' + tr("Group ID") + ''+info.GID+''+info.GID+'
' + tr("Group Name") + ''+info.GNAME+'' + tr("Group") + ''+ info.GNAME +'\ +
\ + \ +
\ +
' + tr("Secondary groups") + ''+(typeof info.GROUPS.ID == "object" ? info.GROUPS.ID.join(",") : "-")+'
' + tr("Password") + '