1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-23 22:50:09 +03:00

feature : Made sunstone.js unaware of the existence of dataTables.

DataTables are a very particular object which is part of the
plugins. Therefore instead of having sunstone.js take a dataTable and find out
which elements are checked in order to run an action on them, this is now work
to be done by the plugins. They can use a helper called
getSelectedNodes(dataTable) to do that. Actions now define an "elements"
function which returns an array of elements, instead of having a "dataTable"
returning the dataTable of the plugin. runActionOnDatatableNodes not needed anymore.
This commit is contained in:
Hector Sanjuan 2011-03-28 19:05:52 +02:00
parent 77129d2a13
commit f5d56fadd9
7 changed files with 63 additions and 50 deletions

@ -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
},

@ -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
}
}

@ -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
},
}

@ -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
},

@ -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
}

@ -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;

@ -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;