diff --git a/src/sunstone/public/js/plugins/hosts-tab.js b/src/sunstone/public/js/plugins/hosts-tab.js index 7f9d4b6fa6..fbabbf1c29 100644 --- a/src/sunstone/public/js/plugins/hosts-tab.js +++ b/src/sunstone/public/js/plugins/hosts-tab.js @@ -164,7 +164,7 @@ var host_actions = { callback : function (req) { Sunstone.runAction("Host.show",req.request.data[0]); }, - dataTable: function() { return dataTable_hosts }, + elements: function() { return getSelectedNodes(dataTable_hosts); }, error : onError, notify: true }, @@ -175,7 +175,7 @@ var host_actions = { callback : function (req) { Sunstone.runAction("Host.show",req.request.data[0]); }, - dataTable: function() { return dataTable_hosts }, + elements: function() { return getSelectedNodes(dataTable_hosts); }, error : onError }, @@ -183,7 +183,7 @@ var host_actions = { type: "multiple", call : OpenNebula.Host.delete, callback : deleteHostElement, - dataTable: function() { return dataTable_hosts }, + elements: function() { return getSelectedNodes(dataTable_hosts); }, error : onError }, @@ -241,7 +241,7 @@ var host_actions = { callback : function(req){ Sunstone.runAction("Host.show",req.request.data); }, - dataTable: function() { return dataTable_hosts }, + elements: function() { return getSelectedNodes(dataTable_hosts); }, error : onError }, diff --git a/src/sunstone/public/js/plugins/images-tab.js b/src/sunstone/public/js/plugins/images-tab.js index e9fbfbd7fe..271905e73e 100644 --- a/src/sunstone/public/js/plugins/images-tab.js +++ b/src/sunstone/public/js/plugins/images-tab.js @@ -227,7 +227,7 @@ var image_actions = { callback : function (req) { Sunstone.runAction("Image.show",req.request.data[0]); }, - dataTable: function(){return dataTable_images}, + elements: function() { return getSelectedNodes(dataTable_images); }, error: onError }, @@ -258,7 +258,7 @@ var image_actions = { callback: function (req) { Sunstone.runAction("Image.show",req.request.data[0]); }, - dataTable: function(){return dataTable_images}, + elements: function() { return getSelectedNodes(dataTable_images); }, error: onError, }, @@ -273,7 +273,7 @@ var image_actions = { callback: function (req) { Sunstone.runAction("Image.show",req.request.data[0]); }, - dataTable: function(){return dataTable_images}, + elements: function() { return getSelectedNodes(dataTable_images); }, error: onError }, @@ -283,7 +283,7 @@ var image_actions = { callback: function (req) { Sunstone.runAction("Image.show",req.request.data[0]); }, - dataTable: function(){return dataTable_images}, + elements: function() { return getSelectedNodes(dataTable_images); }, error: onError }, @@ -293,7 +293,7 @@ var image_actions = { callback: function (req) { Sunstone.runAction("Image.show",req.request.data[0]); }, - dataTable: function(){return dataTable_images}, + elements: function() { return getSelectedNodes(dataTable_images); }, error: onError }, @@ -303,7 +303,7 @@ var image_actions = { callback: function (req) { Sunstone.runAction("Image.show",req.request.data[0]); }, - dataTable: function(){return dataTable_images}, + elements: function() { return getSelectedNodes(dataTable_images); }, error: onError }, @@ -313,7 +313,7 @@ var image_actions = { callback: function (req) { Sunstone.runAction("Image.show",req.request.data[0]); }, - dataTable: function(){return dataTable_images}, + elements: function() { return getSelectedNodes(dataTable_images); }, error: onError }, @@ -323,7 +323,7 @@ var image_actions = { callback: function (req) { Sunstone.runAction("Image.show",req.request.data[0]); }, - dataTable: function(){return dataTable_images}, + elements: function() { return getSelectedNodes(dataTable_images); }, error: onError }, @@ -333,7 +333,7 @@ var image_actions = { callback: function (req) { Sunstone.runAction("Image.show",req.request.data[0]); }, - dataTable: function(){return dataTable_images}, + elements: function() { return getSelectedNodes(dataTable_images); }, error: onError } } diff --git a/src/sunstone/public/js/plugins/users-tab.js b/src/sunstone/public/js/plugins/users-tab.js index 9bf7efd6fc..85da5966e4 100644 --- a/src/sunstone/public/js/plugins/users-tab.js +++ b/src/sunstone/public/js/plugins/users-tab.js @@ -95,7 +95,7 @@ var user_actions = { type: "multiple", call: OpenNebula.User.delete, callback: deleteUserElement, - dataTable: function(){return dataTable_users}, + elements: function() { return getSelectedNodes(dataTable_users); }, error: onError }, } diff --git a/src/sunstone/public/js/plugins/vms-tab.js b/src/sunstone/public/js/plugins/vms-tab.js index 52d16e2422..6473e238f1 100644 --- a/src/sunstone/public/js/plugins/vms-tab.js +++ b/src/sunstone/public/js/plugins/vms-tab.js @@ -552,7 +552,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError, }, @@ -562,7 +562,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -572,7 +572,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -582,7 +582,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -592,7 +592,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -602,7 +602,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -612,7 +612,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -622,7 +622,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -632,7 +632,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -642,7 +642,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -652,7 +652,7 @@ var vm_actions = { callback: function (req) { Sunstone.runAction("VM.show",req.request.data[0]); }, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, @@ -660,7 +660,7 @@ var vm_actions = { type: "multiple", call: OpenNebula.VM.delete, callback: deleteVMachineElement, - dataTable: function(){return dataTable_vMachines}, + elements: function() { return getSelectedNodes(dataTable_vMachines); }, error: onError }, diff --git a/src/sunstone/public/js/plugins/vnets-tab.js b/src/sunstone/public/js/plugins/vnets-tab.js index 2b77443143..d6036b34d5 100644 --- a/src/sunstone/public/js/plugins/vnets-tab.js +++ b/src/sunstone/public/js/plugins/vnets-tab.js @@ -182,7 +182,7 @@ var vnet_actions = { callback: function (req) { Sunstone.runAction("Network.show",req.request.data[0]); }, - dataTable: function() { return dataTable_vNetworks; }, + elements: function() { return getSelectedNodes(dataTable_vNetworks); }, error: onError }, @@ -192,7 +192,7 @@ var vnet_actions = { callback: function (req) { Sunstone.runAction("Network.show",req.request.data[0]); }, - dataTable: function() { return dataTable_vNetworks; }, + elements: function() { return getSelectedNodes(dataTable_vNetworks); }, error: onError }, @@ -200,7 +200,7 @@ var vnet_actions = { type: "multiple", call: OpenNebula.Network.delete, callback: deleteVNetworkElement, - dataTable: function() { return dataTable_vNetworks; }, + elements: function() { return getSelectedNodes(dataTable_vNetworks); }, error: onError } diff --git a/src/sunstone/public/js/sunstone-util.js b/src/sunstone/public/js/sunstone-util.js index 5f64176755..c747649489 100644 --- a/src/sunstone/public/js/sunstone-util.js +++ b/src/sunstone/public/js/sunstone-util.js @@ -351,6 +351,19 @@ function setupTips(context){ }); } +//returns an array of ids of selected elements in a dataTable +function getSelectedNodes(dataTable){ + var selected_nodes = []; + if (dataTable != null){ + //Which rows of the datatable are checked? + var nodes = $('input:checked',dataTable.fnGetNodes()); + $.each(nodes,function(){ + selected_nodes.push($(this).val()); + }); + } + return selected_nodes; +} + //functions that used as true and false conditions for testing mainly function True(){ return true; diff --git a/src/sunstone/public/js/sunstone.js b/src/sunstone/public/js/sunstone.js index df24ae8fda..8444c2c0d2 100644 --- a/src/sunstone/public/js/sunstone.js +++ b/src/sunstone/public/js/sunstone.js @@ -228,22 +228,22 @@ var Sunstone = { //Runs a predefined action on the selected nodes of a datatable. //Optionally they are run with an extra_parameter. //If no datatable is provided, it simply runs the action. - "runActionOnDatatableNodes": function(action,dataTable,extra_param){ - if (dataTable != null){ - - //Which rows of the datatable are checked? - var nodes = $('input:checked',dataTable.fnGetNodes()); - var data = []; - $.each(nodes,function(){ - data.push($(this).val()); - }); - Sunstone.runAction(action,data,extra_param); - - } else { - Sunstone.runAction(action,extra_param); - }; - }, - + //~ "runActionOnDatatableNodes": function(action,dataTable,extra_param){ + //~ if (dataTable != null){ + //~ + //~ //Which rows of the datatable are checked? + //~ var nodes = $('input:checked',dataTable.fnGetNodes()); + //~ var data = []; + //~ $.each(nodes,function(){ + //~ data.push($(this).val()); + //~ }); + //~ Sunstone.runAction(action,data,extra_param); + //~ + //~ } else { + //~ Sunstone.runAction(action,extra_param); + //~ }; + //~ }, + //~ //returns a button object from the desired tab "getButton" : function(tab_name,button_name){ var button = null; @@ -290,8 +290,8 @@ $(document).ready(function(){ if (!action) { notifyError("Action "+value+" not defined."); return false;}; switch (action.type){ case "multiple": //find the datatable - table = action.dataTable(); - Sunstone.runActionOnDatatableNodes(value,table); + var nodes = action.elements(); + Sunstone.runAction(value,nodes); break; default: Sunstone.runAction(value); @@ -610,11 +610,11 @@ function setupConfirmDialogs(){ if (!action) { notifyError("Action "+value+" not defined."); return false;}; switch (action.type){ case "multiple": //find the datatable - var table = SunstoneCfg["actions"][value].dataTable(); - Sunstone.runActionOnDatatableNodes(value,table,param); + var nodes = action.elements(); + Sunstone.runAction(value,nodes,param); break; default: - Sunstone.runAction(action,param); + Sunstone.runAction(value,param); break; } return false;