1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-25 02:50:08 +03:00

feature #3748: Add tab common actions module

This commit is contained in:
Daniel Molina 2015-06-02 18:22:04 +02:00
parent 23568fe84c
commit ae570d80cc
2 changed files with 90 additions and 45 deletions

View File

@ -2,16 +2,23 @@ define(function(require) {
var Sunstone = require('sunstone');
var Notifier = require('utils/notifier');
var Locale = require('utils/locale');
var DataTable = require('./datatable');
var OpenNebulaTemplate = require('opennebula/template');
var CommonActions = require('utils/common-actions');
var TAB_ID = require('./tabId');
var CREATE_DIALOG_ID = require('./form-panels/create/formPanelId');
var CLONE_DIALOG_ID = require('./dialogs/clone/dialogId');
var INSTANTIATE_DIALOG_ID = require('./dialogs/instantiate/dialogId');
var XML_ROOT = "VMTEMPLATE"
var RESOURCE = "Template"
var _commonActions = new CommonActions(OpenNebulaTemplate, RESOURCE, TAB_ID);
var _actions = {
"Template.list" : _commonActions.list(),
"Template.show" : _commonActions.show(),
"Template.refresh" : _commonActions.refresh(),
"Template.delete" : _commonActions.delete(),
"Template.create" : {
type: "create",
call: OpenNebulaTemplate.create,
@ -74,38 +81,6 @@ define(function(require) {
Notifier.onError(request, response);
}
},
"Template.list" : {
type: "list",
call: OpenNebulaTemplate.list,
callback: function(request, response) {
Sunstone.getDataTable(TAB_ID).updateView(request, response);
},
error: Notifier.onError
},
"Template.show" : {
type: "single",
call: OpenNebulaTemplate.show,
callback: function(request, response) {
Sunstone.getDataTable(TAB_ID).updateElement(request, response);
if (Sunstone.rightInfoVisible($('#' + TAB_ID))) {
Sunstone.insertPanels(TAB_ID, response);
}
},
error: Notifier.onError
},
"Template.refresh" : {
type: "custom",
call: function() {
var tab = $('#' + TAB_ID);
if (Sunstone.rightInfoVisible(tab)) {
Sunstone.runAction("Template.show", Sunstone.rightInfoResourceId(tab));
} else {
Sunstone.getDataTable(TAB_ID).waitingNodes();
Sunstone.runAction("Template.list", {force: true});
}
},
error: Notifier.onError
},
"Template.rename" : {
type: "single",
call: OpenNebulaTemplate.rename,
@ -115,18 +90,6 @@ define(function(require) {
error: Notifier.onError,
notify: true
},
"Template.delete" : {
type: "multiple",
call : OpenNebulaTemplate.del,
callback : function(request, response) {
Sunstone.getDataTable(TAB_ID).deleteElement(request, response);
},
elements: function() {
return Sunstone.getDataTable(TAB_ID).elements();
},
error: Notifier.onError,
notify: true
},
"Template.instantiate" : {
type: "multiple",
call: OpenNebulaTemplate.instantiate,

View File

@ -0,0 +1,82 @@
define(function(require) {
var Sunstone = require('sunstone');
var Notifier = require('utils/notifier');
var Locale = require('utils/locale');
/*
CONSTRUCTOR
*/
function CommonActions(openNebulaResource, resourceStr, tabId) {
this.openNebulaResource = openNebulaResource;
this.tabId = tabId;
this.resourceStr = resourceStr;
}
CommonActions.prototype.list = _list;
CommonActions.prototype.show = _show;
CommonActions.prototype.refresh = _refresh;
CommonActions.prototype.delete = _delete;
return CommonActions;
function _list() {
var that = this;
return {
type: "list",
call: that.openNebulaResource.list,
callback: function(request, response) {
Sunstone.getDataTable(that.tabId).updateView(request, response);
},
error: Notifier.onError
}
}
function _show() {
var that = this;
return {
type: "single",
call: that.openNebulaResource.show,
callback: function(request, response) {
Sunstone.getDataTable(that.tabId).updateElement(request, response);
if (Sunstone.rightInfoVisible($('#' + that.tabId))) {
Sunstone.insertPanels(that.tabId, response);
}
},
error: Notifier.onError
}
}
function _refresh() {
var that = this;
return {
type: "custom",
call: function() {
var tab = $('#' + that.tabId);
if (Sunstone.rightInfoVisible(tab)) {
Sunstone.runAction(that.resourceStr + ".show", Sunstone.rightInfoResourceId(tab));
} else {
Sunstone.getDataTable(that.tabId).waitingNodes();
Sunstone.runAction(that.resourceStr + ".list", {force: true});
}
},
error: Notifier.onError
}
}
function _delete() {
var that = this;
return {
type: "multiple",
call : that.openNebulaResource.del,
callback : function(request, response) {
Sunstone.getDataTable(that.tabId).deleteElement(request, response);
},
elements: function() {
return Sunstone.getDataTable(that.tabId).elements();
},
error: Notifier.onError,
notify: true
}
}
});