diff --git a/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb b/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb index c2d8a09c12..8713d15574 100644 --- a/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb +++ b/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb @@ -43,6 +43,7 @@ module OpenNebulaJSON when "addvnet" then self.addvnet(action_hash['params']) when "delvnet" then self.delvnet(action_hash['params']) when "update" then self.update(action_hash['params']) + when "rename" then self.rename(action_hash['params']) else error_msg = "#{action_hash['perform']} action not " << @@ -78,5 +79,9 @@ module OpenNebulaJSON def update(params=Hash.new) super(params['template_raw']) end + + def rename(params=Hash.new) + super(params['name']) + end end end diff --git a/src/sunstone/models/OpenNebulaJSON/DatastoreJSON.rb b/src/sunstone/models/OpenNebulaJSON/DatastoreJSON.rb index e7ff02b4ea..a17ad80f7e 100644 --- a/src/sunstone/models/OpenNebulaJSON/DatastoreJSON.rb +++ b/src/sunstone/models/OpenNebulaJSON/DatastoreJSON.rb @@ -50,6 +50,7 @@ module OpenNebulaJSON when "update" then self.update(action_hash['params']) when "chown" then self.chown(action_hash['params']) when "chmod" then self.chmod_octet(action_hash['params']) + when "rename" then self.rename(action_hash['params']) else error_msg = "#{action_hash['perform']} action not " << " available for this resource" @@ -68,5 +69,9 @@ module OpenNebulaJSON def chmod_octet(params=Hash.new) super(params['octet']) end + + def rename(params=Hash.new) + super(params['name']) + end end end diff --git a/src/sunstone/models/OpenNebulaJSON/HostJSON.rb b/src/sunstone/models/OpenNebulaJSON/HostJSON.rb index 196010d609..57adb5df10 100644 --- a/src/sunstone/models/OpenNebulaJSON/HostJSON.rb +++ b/src/sunstone/models/OpenNebulaJSON/HostJSON.rb @@ -51,6 +51,7 @@ module OpenNebulaJSON when "enable" then self.enable when "disable" then self.disable when "update" then self.update(action_hash['params']) + when "rename" then self.rename(action_hash['params']) else error_msg = "#{action_hash['perform']} action not " << " available for this resource" @@ -62,5 +63,8 @@ module OpenNebulaJSON super(params['template_raw']) end + def rename(params=Hash.new) + super(params['name']) + end end end diff --git a/src/sunstone/public/js/opennebula.js b/src/sunstone/public/js/opennebula.js index 878e005170..4fcf8542a1 100644 --- a/src/sunstone/public/js/opennebula.js +++ b/src/sunstone/public/js/opennebula.js @@ -531,6 +531,13 @@ var OpenNebula = { }, "pool_monitor" : function(params){ OpenNebula.Action.monitor(params,OpenNebula.Host.resource,true); + }, + "rename" : function(params){ + var action_obj = params.data.extra_param; + OpenNebula.Action.simple_action(params, + OpenNebula.Host.resource, + "rename", + action_obj); } }, @@ -1152,6 +1159,13 @@ var OpenNebula = { OpenNebula.Cluster.resource, "update", action_obj); + }, + "rename" : function(params){ + var action_obj = params.data.extra_param; + OpenNebula.Action.simple_action(params, + OpenNebula.Cluster.resource, + "rename", + action_obj); } }, "Datastore" : { @@ -1191,6 +1205,13 @@ var OpenNebula = { }, "fetch_template" : function(params){ OpenNebula.Action.show(params,OpenNebula.Datastore.resource,"template"); + }, + "rename" : function(params){ + var action_obj = params.data.extra_param; + OpenNebula.Action.simple_action(params, + OpenNebula.Datastore.resource, + "rename", + action_obj); } }, diff --git a/src/sunstone/public/js/plugins/clusters-tab.js b/src/sunstone/public/js/plugins/clusters-tab.js index 53f372bf6b..b296532e8a 100644 --- a/src/sunstone/public/js/plugins/clusters-tab.js +++ b/src/sunstone/public/js/plugins/clusters-tab.js @@ -1070,6 +1070,18 @@ var cluster_actions = { type: "single", call: popUpUpdateClusterDialog }, + + "Cluster.rename" : { + type: "single", + call: OpenNebula.Cluster.rename, + callback: function(request) { + notifyMessage("Cluster renamed correctly"); + Sunstone.runAction('Cluster.showinfo',request.request.data[0]); + Sunstone.runAction('Cluster.list'); + }, + error: onError, + notify: true + } }; var cluster_buttons = { @@ -1233,18 +1245,22 @@ function updateClusterInfo(request,cluster){
\ \ \ - \ \ \ \ \ - \ + \ \ \ - \ - \ + \ + \ + \ \ \
' + +
' + tr("Cluster") + ' - '+cluster_info.NAME+'
' + tr("id") + ''+cluster_info.ID+''+cluster_info.ID+'
' + tr("Name") + ''+cluster_info.NAME+''+tr("Name")+''+cluster_info.NAME+'
\ + \ +
\ +
\ @@ -1291,6 +1307,25 @@ function updateClusterInfo(request,cluster){
' } + $("#div_edit_rename_link").die(); + $(".input_edit_value_rename").die(); + + // Listener for edit link for rename + $("#div_edit_rename_link").live("click", function() { + var value_str = $(".value_td_rename").text(); + $(".value_td_rename").html(''); + }); + + $(".input_edit_value_rename").live("change", function() { + var value_str = $(".input_edit_value_rename").val(); + if(value_str!="") + { + // Let OpenNebula know + var name_template = {"name": value_str}; + Sunstone.runAction("Cluster.rename",cluster_info.ID,name_template); + } + }); + //Sunstone.updateInfoPanelTab(info_panel_name,tab_name, new tab object); Sunstone.updateInfoPanelTab("cluster_info_panel","cluster_info_tab",info_tab); Sunstone.updateInfoPanelTab("cluster_info_panel","cluster_host_tab",cluster_host_tab); diff --git a/src/sunstone/public/js/plugins/datastores-tab.js b/src/sunstone/public/js/plugins/datastores-tab.js index 9913f3d759..eb51f684a9 100644 --- a/src/sunstone/public/js/plugins/datastores-tab.js +++ b/src/sunstone/public/js/plugins/datastores-tab.js @@ -524,6 +524,18 @@ var datastore_actions = { hideDialog(); $('div#datastores_tab div.legend_div').slideToggle(); } + }, + + "Datastore.rename" : { + type: "single", + call: OpenNebula.Datastore.rename, + callback: function(request) { + notifyMessage("Datastore renamed correctly"); + Sunstone.runAction('Datastore.showinfo',request.request.data[0]); + Sunstone.runAction('Datastore.list'); + }, + error: onError, + notify: true } }; @@ -733,9 +745,12 @@ function updateDatastoreInfo(request,ds){ \ \ \ - '+tr("Name")+'\ - '+info.NAME+'\ - \ + '+tr("Name")+'\ + '+info.NAME+'\ +
\ + \ +
\ + \ \ '+ cluster_str + @@ -787,6 +802,24 @@ function updateDatastoreInfo(request,ds){ content : '
' + datastore_image_table_tmpl + '
' } + $("#div_edit_rename_link").die(); + $(".input_edit_value_rename").die(); + + // Listener for edit link for rename + $("#div_edit_rename_link").live("click", function() { + var value_str = $(".value_td_rename").text(); + $(".value_td_rename").html(''); + }); + + $(".input_edit_value_rename").live("change", function() { + var value_str = $(".input_edit_value_rename").val(); + if(value_str!="") + { + // Let OpenNebula know + var name_template = {"name": value_str}; + Sunstone.runAction("Datastore.rename",info.ID,name_template); + } + }); // Add tabs Sunstone.updateInfoPanelTab("datastore_info_panel","datastore_info_tab",info_tab); diff --git a/src/sunstone/public/js/plugins/hosts-tab.js b/src/sunstone/public/js/plugins/hosts-tab.js index 2ef52deb31..450a2b3f8f 100644 --- a/src/sunstone/public/js/plugins/hosts-tab.js +++ b/src/sunstone/public/js/plugins/hosts-tab.js @@ -384,8 +384,19 @@ var host_actions = { hideDialog(); $('div#hosts_tab div.legend_div').slideToggle(); } - } + }, + "Host.rename" : { + type: "single", + call: OpenNebula.Host.rename, + callback: function(request) { + notifyMessage("Host renamed correctly"); + Sunstone.runAction('Host.showinfo',request.request.data[0]); + Sunstone.runAction('Host.list'); + }, + error: onError, + notify: true + } }; var host_buttons = { @@ -732,8 +743,12 @@ function updateHostInfo(request,host){ '+host_info.ID+'\ \ \ - ' + tr("Name") + '\ - '+host_info.NAME+'\ + '+tr("Name")+'\ + '+host_info.NAME+'\ +
\ + \ +
\ + \ \ ' + insert_cluster_dropdown("Host",host_info.ID,host_info.CLUSTER,host_info.CLUSTER_ID) + @@ -828,6 +843,25 @@ function updateHostInfo(request,host){ ' } + $("#div_edit_rename_link").die(); + $(".input_edit_value_rename").die(); + + // Listener for edit link for rename + $("#div_edit_rename_link").live("click", function() { + var value_str = $(".value_td_rename").text(); + $(".value_td_rename").html(''); + }); + + $(".input_edit_value_rename").live("change", function() { + var value_str = $(".input_edit_value_rename").val(); + if(value_str!="") + { + // Let OpenNebula know + var name_template = {"name": value_str}; + Sunstone.runAction("Host.rename",host_info.ID,name_template); + } + }); + //Sunstone.updateInfoPanelTab(info_panel_name,tab_name, new tab object); Sunstone.updateInfoPanelTab("host_info_panel","host_info_tab",info_tab); Sunstone.updateInfoPanelTab("host_info_panel","host_monitoring_tab",monitor_tab);