mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-23 22:50:09 +03:00
feature #507: 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:
parent
77129d2a13
commit
f5d56fadd9
src/sunstone/public/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
|
||||
},
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user