mirror of
https://github.com/OpenNebula/one.git
synced 2025-03-22 18:50:08 +03:00
Co-authored-by: Jorge Lobo <jlobo@opennebula.systems>
This commit is contained in:
parent
0d71df71eb
commit
836f6b6335
@ -92,15 +92,14 @@ define(function(require) {
|
||||
});
|
||||
},
|
||||
|
||||
"del": function(params, resource, path) {
|
||||
"del": function(params, resource, path, extra_param) {
|
||||
var callback = params.success;
|
||||
var callbackError = params.error;
|
||||
var id = params.data.id;
|
||||
var request = OpenNebulaHelper.request(resource, "delete", id);
|
||||
var reqPath = path ? path : resource.toLowerCase();
|
||||
var cache_name = params.cache_name ? params.cache_name : resource;
|
||||
|
||||
$.ajax({
|
||||
var ajaxData = {
|
||||
url: reqPath + "/" + id,
|
||||
type: "DELETE",
|
||||
success: function() {
|
||||
@ -112,7 +111,13 @@ define(function(require) {
|
||||
return callbackError ?
|
||||
callbackError(request, OpenNebulaError(response)) : null;
|
||||
}
|
||||
});
|
||||
};
|
||||
if(extra_param){
|
||||
ajaxData.data = JSON.stringify(extra_param);
|
||||
ajaxData.dataType = "json";
|
||||
ajaxData.contentType = "application/json; charset=utf-8";
|
||||
}
|
||||
$.ajax(ajaxData);
|
||||
},
|
||||
|
||||
"cache": function(resource) {
|
||||
@ -342,8 +347,8 @@ define(function(require) {
|
||||
var callback = params && params.success;
|
||||
var callbackError = params && params.error;
|
||||
var id = params && params.data && params.data.id;
|
||||
var roleName = params && params.data && params.data.roleName
|
||||
var action = params && params.data && params.data.action
|
||||
var roleName = params && params.data && params.data.roleName;
|
||||
var action = params && params.data && params.data.action;
|
||||
var cacheName = params.cacheName ? params.cacheName : resource;
|
||||
if(id!==undefined && action && resource){
|
||||
$.ajax({
|
||||
|
@ -15,10 +15,10 @@
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
define(function(require) {
|
||||
var OpenNebulaAction = require('./action');
|
||||
var OpenNebulaAction = require("./action");
|
||||
|
||||
var RESOURCE = "DOCUMENT";
|
||||
var PATH = 'service_template';
|
||||
var PATH = "service_template";
|
||||
var CACHE_NAME = "SERVICE_TEMPLATE";
|
||||
|
||||
var ServiceTemplate = {
|
||||
@ -72,15 +72,16 @@ define(function(require) {
|
||||
},
|
||||
"del": function(params) {
|
||||
params.cache_name = CACHE_NAME;
|
||||
OpenNebulaAction.del(params, RESOURCE, PATH);
|
||||
var action_obj = params.data.extra_param;
|
||||
OpenNebulaAction.del(params, RESOURCE, PATH, action_obj);
|
||||
},
|
||||
"list" : function(params) {
|
||||
params.cache_name = CACHE_NAME;
|
||||
OpenNebulaAction.list(params, RESOURCE, PATH)
|
||||
OpenNebulaAction.list(params, RESOURCE, PATH);
|
||||
},
|
||||
"show" : function(params) {
|
||||
params.cache_name = CACHE_NAME;
|
||||
OpenNebulaAction.show(params, RESOURCE, false, PATH)
|
||||
OpenNebulaAction.show(params, RESOURCE, false, PATH);
|
||||
},
|
||||
"chown" : function(params) {
|
||||
params.cache_name = CACHE_NAME;
|
||||
@ -108,7 +109,7 @@ define(function(require) {
|
||||
"getName": function(id){
|
||||
return OpenNebulaAction.getName(id, CACHE_NAME);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return ServiceTemplate;
|
||||
})
|
||||
});
|
||||
|
@ -22,21 +22,18 @@ define(function(require) {
|
||||
var CommonActions = require("utils/common-actions");
|
||||
var OpenNebulaAction = require("opennebula/action");
|
||||
var Navigation = require("utils/navigation");
|
||||
var OpenNebula = require('opennebula');
|
||||
|
||||
var CREATE_APP_DIALOG_ID = require('tabs/marketplaceapps-tab/form-panels/create/formPanelId');
|
||||
var MARKETPLACEAPPS_TAB_ID = require('tabs/marketplaceapps-tab/tabId');
|
||||
|
||||
var OpenNebula = require("opennebula");
|
||||
var CREATE_APP_DIALOG_ID = require("tabs/marketplaceapps-tab/form-panels/create/formPanelId");
|
||||
var CONFIRM_DIALOG_ID = require("utils/dialogs/generic-confirm/dialogId");
|
||||
var MARKETPLACEAPPS_TAB_ID = require("tabs/marketplaceapps-tab/tabId");
|
||||
var TAB_ID = require("./tabId");
|
||||
var CREATE_DIALOG_ID = require("./form-panels/create/formPanelId");
|
||||
var INSTANTIATE_DIALOG_ID = require("./form-panels/instantiate/formPanelId");
|
||||
var CLONE_DIALOG_ID = require("./dialogs/clone/dialogId");
|
||||
var XML_ROOT = "DOCUMENT";
|
||||
var RESOURCE = "ServiceTemplate";
|
||||
|
||||
var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
|
||||
XML_ROOT, Locale.tr("Service Template created"));
|
||||
|
||||
var _actions = {
|
||||
"ServiceTemplate.create" : _commonActions.create(CREATE_DIALOG_ID),
|
||||
"ServiceTemplate.show" : _commonActions.show(),
|
||||
@ -48,8 +45,45 @@ define(function(require) {
|
||||
"ServiceTemplate.rename": _commonActions.singleAction("rename"),
|
||||
"ServiceTemplate.update" : _commonActions.update(),
|
||||
"ServiceTemplate.update_dialog" : _commonActions.checkAndShowUpdate(),
|
||||
|
||||
"ServiceTemplate.create_dialog" : {
|
||||
"ServiceTemplate.delete_dialog" : {
|
||||
type: "custom",
|
||||
call: function() {
|
||||
Sunstone.getDialog(CONFIRM_DIALOG_ID).setParams({
|
||||
//header :
|
||||
headerTabId: TAB_ID,
|
||||
body : Locale.tr("This will delete the Service.<br/>You can also delete the template or the template and image referenced inside this Service."),
|
||||
//question :
|
||||
buttons : [
|
||||
Locale.tr("Delete Images and VM Templates"),
|
||||
Locale.tr("Delete VM Templates"),
|
||||
Locale.tr("Delete"),
|
||||
],
|
||||
submit : [
|
||||
function(){
|
||||
Sunstone.runAction(RESOURCE+".delete", Sunstone.getDataTable(TAB_ID).elements(), {"delete_type": "all"});
|
||||
return false;
|
||||
},
|
||||
function(){
|
||||
Sunstone.runAction(RESOURCE+".delete", Sunstone.getDataTable(TAB_ID).elements(), {"delete_type": "templates"});
|
||||
return false;
|
||||
},
|
||||
function(){
|
||||
Sunstone.runAction(RESOURCE+".delete", Sunstone.getDataTable(TAB_ID).elements(), {"delete_type": "none"});
|
||||
return false;
|
||||
}
|
||||
]
|
||||
});
|
||||
Sunstone.getDialog(CONFIRM_DIALOG_ID).reset();
|
||||
Sunstone.getDialog(CONFIRM_DIALOG_ID).show();
|
||||
},
|
||||
callback : function(request, response) {
|
||||
var tab = $("#" + that.tabId);
|
||||
if (Sunstone.getTab() == that.tabId) {
|
||||
Sunstone.showTab(that.tabId);
|
||||
}
|
||||
},
|
||||
},
|
||||
"ServiceTemplate.create_dialog" : {
|
||||
type: "custom",
|
||||
call: function() {
|
||||
Sunstone.runAction("Network.list");
|
||||
@ -57,7 +91,7 @@ define(function(require) {
|
||||
Sunstone.showFormPanel(TAB_ID, CREATE_DIALOG_ID, "create");
|
||||
}
|
||||
},
|
||||
"ServiceTemplate.show_to_update" : {
|
||||
"ServiceTemplate.show_to_update" : {
|
||||
type: "single",
|
||||
call: function(params) {
|
||||
Sunstone.runAction("Network.list");
|
||||
@ -73,7 +107,6 @@ define(function(require) {
|
||||
},
|
||||
error: Notifier.onError
|
||||
},
|
||||
|
||||
"ServiceTemplate.list" : {
|
||||
type: "list",
|
||||
call: OpenNebulaResource.list,
|
||||
@ -85,8 +118,6 @@ define(function(require) {
|
||||
Notifier.onError(request, error_json, $(".oneflow_templates_error_message"));
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
"ServiceTemplate.instantiate" : {
|
||||
type: "single",
|
||||
call: OpenNebulaResource.instantiate,
|
||||
@ -107,7 +138,6 @@ define(function(require) {
|
||||
},
|
||||
notify: false
|
||||
},
|
||||
|
||||
"ServiceTemplate.instantiate_dialog" : {
|
||||
type: "custom",
|
||||
call: function() {
|
||||
@ -116,9 +146,7 @@ define(function(require) {
|
||||
Notifier.notifyMessage("Please select one (and just one) template to instantiate.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var templateId = "" + selected_nodes[0];
|
||||
|
||||
Sunstone.resetFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID);
|
||||
Sunstone.showFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID, "instantiate",
|
||||
function(formPanelInstance, context) {
|
||||
@ -126,21 +154,18 @@ define(function(require) {
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
"ServiceTemplate.clone_dialog" : {
|
||||
type: "custom",
|
||||
call: function(){
|
||||
Sunstone.getDialog(CLONE_DIALOG_ID).show();
|
||||
}
|
||||
},
|
||||
|
||||
"ServiceTemplate.clone" : {
|
||||
type: "single",
|
||||
call: OpenNebulaResource.clone,
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
},
|
||||
|
||||
"ServiceTemplate.upload_marketplace_dialog" : {
|
||||
type: "custom",
|
||||
call: function(params) {
|
||||
@ -150,9 +175,7 @@ define(function(require) {
|
||||
Notifier.notifyMessage(Locale.tr("Please select one (and just one) Service to export."));
|
||||
return false;
|
||||
}
|
||||
|
||||
var resourceId = '' + selectedNodes[0];
|
||||
|
||||
var resourceId = "" + selectedNodes[0];
|
||||
OpenNebulaResource.show({
|
||||
data : {
|
||||
id: resourceId
|
||||
@ -165,7 +188,7 @@ define(function(require) {
|
||||
"export_service",
|
||||
function(formPanelInstance, context) {
|
||||
formPanelInstance.setServiceId(resourceId);
|
||||
$('#marketplaceapps-tab-wizardForms #TYPE').val('service_template').change();
|
||||
$("#marketplaceapps-tab-wizardForms #TYPE").val("service_template").change();
|
||||
}
|
||||
);
|
||||
},
|
||||
@ -176,6 +199,5 @@ define(function(require) {
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return _actions;
|
||||
});
|
||||
|
@ -15,7 +15,7 @@
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
define(function(require) {
|
||||
var Locale = require('utils/locale');
|
||||
var Locale = require("utils/locale");
|
||||
|
||||
var Buttons = {
|
||||
"ServiceTemplate.refresh" : {
|
||||
@ -32,7 +32,7 @@ define(function(require) {
|
||||
"ServiceTemplate.upload_marketplace_dialog" : {
|
||||
type: "action",
|
||||
layout: "main",
|
||||
text: '<i class="fas fa-share"/> '+ Locale.tr("MarketPlace")
|
||||
text: "<i class=\"fas fa-share\"/> "+ Locale.tr("MarketPlace")
|
||||
},
|
||||
"ServiceTemplate.update_dialog" : {
|
||||
type: "action",
|
||||
@ -63,11 +63,17 @@ define(function(require) {
|
||||
layout: "main",
|
||||
text: Locale.tr("Clone")
|
||||
},
|
||||
"ServiceTemplate.delete" : {
|
||||
/*"ServiceTemplate.delete" : {
|
||||
type: "confirm",
|
||||
text: Locale.tr("Delete"),
|
||||
layout: "del",
|
||||
tip: Locale.tr("This will delete the selected templates")
|
||||
},*/
|
||||
"ServiceTemplate.delete_dialog" : {
|
||||
type: "action",
|
||||
text: Locale.tr("Delete"),
|
||||
layout: "del",
|
||||
tip: Locale.tr("This will delete the selected templates")
|
||||
},
|
||||
"ServiceTemplate.edit_labels" : {
|
||||
layout: "labels",
|
||||
|
@ -15,289 +15,259 @@
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
define(function(require) {
|
||||
var Sunstone = require('sunstone');
|
||||
var Notifier = require('utils/notifier');
|
||||
var Locale = require('utils/locale');
|
||||
var OpenNebulaResource = require('opennebula/template');
|
||||
var CommonActions = require('utils/common-actions');
|
||||
var OpenNebulaAction = require('opennebula/action');
|
||||
var Navigation = require('utils/navigation');
|
||||
var OpenNebula = require('opennebula');
|
||||
var CREATE_APP_DIALOG_ID = require('tabs/marketplaceapps-tab/form-panels/create/formPanelId');
|
||||
var MARKETPLACEAPPS_TAB_ID = require('tabs/marketplaceapps-tab/tabId');
|
||||
|
||||
var XML_ROOT = "VMTEMPLATE"
|
||||
|
||||
var Sunstone = require("sunstone");
|
||||
var Notifier = require("utils/notifier");
|
||||
var Locale = require("utils/locale");
|
||||
var OpenNebulaResource = require("opennebula/template");
|
||||
var CommonActions = require("utils/common-actions");
|
||||
var OpenNebulaAction = require("opennebula/action");
|
||||
var Navigation = require("utils/navigation");
|
||||
var OpenNebula = require("opennebula");
|
||||
var CREATE_APP_DIALOG_ID = require("tabs/marketplaceapps-tab/form-panels/create/formPanelId");
|
||||
var MARKETPLACEAPPS_TAB_ID = require("tabs/marketplaceapps-tab/tabId");
|
||||
var XML_ROOT = "VMTEMPLATE";
|
||||
function Actions(tabId, resource, ids){
|
||||
|
||||
var RESOURCE = resource;
|
||||
|
||||
var TAB_ID = ids.TAB_ID;
|
||||
var CREATE_DIALOG_ID = ids.CREATE_DIALOG_ID;
|
||||
var CLONE_DIALOG_ID = ids.CLONE_DIALOG_ID;
|
||||
var INSTANTIATE_DIALOG_ID = ids.INSTANTIATE_DIALOG_ID;
|
||||
var IMPORT_DIALOG_ID = ids.IMPORT_DIALOG_ID;
|
||||
var CONFIRM_DIALOG_ID = ids.CONFIRM_DIALOG_ID;
|
||||
|
||||
var _commonActions = new CommonActions(OpenNebulaResource, RESOURCE, TAB_ID,
|
||||
XML_ROOT, Locale.tr("VM Template created"));
|
||||
|
||||
var _actions = {};
|
||||
|
||||
_actions[resource+".list"] = _commonActions.list(),
|
||||
_actions[resource+".show"] = _commonActions.show(),
|
||||
_actions[resource+".refresh"] = _commonActions.refresh(),
|
||||
_actions[resource+".delete"] = _commonActions.del(),
|
||||
|
||||
_actions[resource+".delete_dialog"] =
|
||||
{
|
||||
type: "custom",
|
||||
call: function() {
|
||||
Sunstone.getDialog(CONFIRM_DIALOG_ID).setParams({
|
||||
//header :
|
||||
headerTabId: TAB_ID,
|
||||
body : Locale.tr("This will delete the Template.<br/>You can also delete any Image referenced inside this Template"),
|
||||
//question :
|
||||
buttons : [
|
||||
Locale.tr("Delete all images"),
|
||||
Locale.tr("Delete"),
|
||||
],
|
||||
submit : [
|
||||
function(){
|
||||
Sunstone.runAction(RESOURCE+'.delete_recursive', Sunstone.getDataTable(TAB_ID).elements());
|
||||
return false;
|
||||
},
|
||||
function(){
|
||||
Sunstone.runAction(RESOURCE+'.delete', Sunstone.getDataTable(TAB_ID).elements());
|
||||
return false;
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
Sunstone.getDialog(CONFIRM_DIALOG_ID).reset();
|
||||
Sunstone.getDialog(CONFIRM_DIALOG_ID).show();
|
||||
}
|
||||
},
|
||||
|
||||
_actions[resource+".delete_recursive"] =
|
||||
{
|
||||
type: "multiple",
|
||||
call: OpenNebulaResource.delete_recursive,
|
||||
callback : function(request, response) {
|
||||
if (Sunstone.getTab() == TAB_ID) {
|
||||
Sunstone.showTab(TAB_ID);
|
||||
_actions[resource+".list"] = _commonActions.list(),
|
||||
_actions[resource+".show"] = _commonActions.show(),
|
||||
_actions[resource+".refresh"] = _commonActions.refresh(),
|
||||
_actions[resource+".delete"] = _commonActions.del(),
|
||||
_actions[resource+".delete_dialog"] = {
|
||||
type: "custom",
|
||||
call: function() {
|
||||
Sunstone.getDialog(CONFIRM_DIALOG_ID).setParams({
|
||||
//header :
|
||||
headerTabId: TAB_ID,
|
||||
body : Locale.tr("This will delete the Template.<br/>You can also delete any Image referenced inside this Template"),
|
||||
//question :
|
||||
buttons : [
|
||||
Locale.tr("Delete all images"),
|
||||
Locale.tr("Delete"),
|
||||
],
|
||||
submit : [
|
||||
function(){
|
||||
Sunstone.runAction(RESOURCE+".delete_recursive", Sunstone.getDataTable(TAB_ID).elements());
|
||||
return false;
|
||||
},
|
||||
function(){
|
||||
Sunstone.runAction(RESOURCE+".delete", Sunstone.getDataTable(TAB_ID).elements());
|
||||
return false;
|
||||
}
|
||||
},
|
||||
elements: function(opts) {
|
||||
return Sunstone.getDataTable(TAB_ID).elements(opts);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
},
|
||||
|
||||
_actions[resource+".chown"] = _commonActions.multipleAction('chown'),
|
||||
_actions[resource+".chgrp"] = _commonActions.multipleAction('chgrp'),
|
||||
_actions[resource+".chmod"] = _commonActions.singleAction('chmod'),
|
||||
_actions[resource+".share"] =
|
||||
{
|
||||
type: "multiple",
|
||||
call: function(params){
|
||||
var permissions = {
|
||||
'group_u' : 1,
|
||||
'recursive' : true
|
||||
};
|
||||
|
||||
Sunstone.runAction(RESOURCE+".chmod", params.data.id, permissions);
|
||||
},
|
||||
callback : function(request, response) {
|
||||
Sunstone.runAction(RESOURCE+".show", req.request.data[0]);
|
||||
},
|
||||
elements: function(opts) {
|
||||
return Sunstone.getDataTable(TAB_ID).elements(opts);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: false
|
||||
},
|
||||
|
||||
_actions[resource+".unshare"] =
|
||||
{
|
||||
type: "multiple",
|
||||
call: function(params){
|
||||
var permissions = {
|
||||
'group_u' : 0,
|
||||
'recursive' : true
|
||||
};
|
||||
|
||||
Sunstone.runAction(RESOURCE+".chmod", params.data.id, permissions);
|
||||
},
|
||||
callback : function(request, response) {
|
||||
Sunstone.runAction(RESOURCE+".show", req.request.data[0]);
|
||||
},
|
||||
elements: function(opts) {
|
||||
return Sunstone.getDataTable(TAB_ID).elements(opts);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: false
|
||||
},
|
||||
|
||||
_actions[resource+".rename"] = _commonActions.singleAction('rename'),
|
||||
_actions[resource+".create"] = _commonActions.create(CREATE_DIALOG_ID),
|
||||
_actions[resource+".create_dialog"] = _commonActions.showCreate(CREATE_DIALOG_ID),
|
||||
_actions[resource+".import_dialog"] = {
|
||||
type: "custom",
|
||||
call: function() {
|
||||
Sunstone.showFormPanel(TAB_ID, IMPORT_DIALOG_ID, "import");
|
||||
}
|
||||
},
|
||||
_actions[resource+".append_template"] = _commonActions.appendTemplate(),
|
||||
_actions[resource+".update"] = _commonActions.update(),
|
||||
_actions[resource+".update_dialog"] = _commonActions.checkAndShowUpdate(),
|
||||
_actions[resource+".update_template"] = _commonActions.updateTemplate(),
|
||||
_actions[resource+".show_to_update"] = _commonActions.showUpdate(CREATE_DIALOG_ID),
|
||||
_actions[resource+".instantiate"] = {
|
||||
type: "multiple",
|
||||
call: OpenNebulaResource.instantiate,
|
||||
callback: function(request, response) {
|
||||
Sunstone.hideFormPanel();
|
||||
OpenNebulaAction.clear_cache("VM");
|
||||
|
||||
Notifier.notifyCustom(
|
||||
Locale.tr("VM created"),
|
||||
Navigation.link(" ID: " + response, "vms-tab", response),
|
||||
false
|
||||
);
|
||||
},
|
||||
elements: function(opts) {
|
||||
return Sunstone.getDataTable(TAB_ID).elements(opts);
|
||||
},
|
||||
error: function(request, response){
|
||||
// without tab id param to work for both templates and vms tab
|
||||
Sunstone.hideFormPanelLoading();
|
||||
Notifier.onError(request, response);
|
||||
},
|
||||
notify: false
|
||||
},
|
||||
_actions[resource+".instantiate_quiet"] = {
|
||||
type: "single",
|
||||
call: OpenNebulaResource.instantiate,
|
||||
callback: function(request, response) {
|
||||
Sunstone.hideFormPanel();
|
||||
OpenNebulaAction.clear_cache("VM");
|
||||
},
|
||||
error: function(request, response){
|
||||
// without tab id param to work for both templates and vms tab
|
||||
Sunstone.hideFormPanelLoading();
|
||||
Notifier.onError(request, response);
|
||||
}
|
||||
},
|
||||
_actions[resource+".instantiate_vms"] = {
|
||||
type: "custom",
|
||||
call: function(){
|
||||
//Sunstone.resetFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID);
|
||||
var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();
|
||||
|
||||
Sunstone.showFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID, "instantiate",
|
||||
function(formPanelInstance, context) {
|
||||
formPanelInstance.setTemplateIds(context, selected_nodes);
|
||||
});
|
||||
}
|
||||
},
|
||||
_actions[resource+".instantiate_persistent"] =
|
||||
{
|
||||
type: "single",
|
||||
call: OpenNebulaResource.instantiate_persistent,
|
||||
callback: function(request, response) {
|
||||
Sunstone.hideFormPanel();
|
||||
OpenNebulaAction.clear_cache("VM");
|
||||
|
||||
Notifier.notifyCustom(Locale.tr("VM created"),
|
||||
Navigation.link(" ID: " + response, "vms-tab", response),
|
||||
false);
|
||||
},
|
||||
error: function(request, response){
|
||||
// without tab id param to work for both templates and vms tab
|
||||
Sunstone.hideFormPanelLoading();
|
||||
Notifier.onError(request, response);
|
||||
}
|
||||
},
|
||||
_actions[resource+".clone_dialog"] = {
|
||||
type: "custom",
|
||||
call: function(){
|
||||
Sunstone.getDialog(CLONE_DIALOG_ID).setParams(
|
||||
{ tabId : TAB_ID,
|
||||
resource : resource
|
||||
});
|
||||
Sunstone.getDialog(CLONE_DIALOG_ID).reset();
|
||||
Sunstone.getDialog(CLONE_DIALOG_ID).show();
|
||||
}
|
||||
},
|
||||
_actions[resource+".clone"] = {
|
||||
type: "single",
|
||||
call: OpenNebulaResource.clone,
|
||||
callback: function(request, response) {
|
||||
OpenNebulaAction.clear_cache("VMTEMPLATE");
|
||||
Notifier.notifyCustom(Locale.tr("VM Template created"),
|
||||
Navigation.link(" ID: " + response.VMTEMPLATE.ID, "templates-tab", response.VMTEMPLATE.ID),
|
||||
false);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
},
|
||||
_actions[resource+".clone_recursive"] =
|
||||
{
|
||||
type: "single",
|
||||
call: OpenNebulaResource.clone_recursive,
|
||||
callback : function(request, response) {
|
||||
OpenNebulaAction.clear_cache("VMTEMPLATE");
|
||||
Notifier.notifyCustom(Locale.tr("VM Template created"),
|
||||
Navigation.link(" ID: " + response.VMTEMPLATE.ID, "templates-tab", response.VMTEMPLATE.ID),
|
||||
false);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
},
|
||||
_actions[resource+".lockA"] = _commonActions.multipleAction("lock"),
|
||||
_actions[resource+".lockM"] = _commonActions.multipleAction("lock"),
|
||||
_actions[resource+".lockU"] = _commonActions.multipleAction("lock"),
|
||||
_actions[resource+".unlock"] = _commonActions.multipleAction("unlock"),
|
||||
_actions[resource+".upload_marketplace_dialog"] = {
|
||||
type: "custom",
|
||||
call: function() {
|
||||
var selectedNodes = Sunstone.getDataTable(TAB_ID).elements();
|
||||
|
||||
if (selectedNodes.length !== 1) {
|
||||
Notifier.notifyMessage(Locale.tr("Please select one (and just one) Image to export."));
|
||||
return false;
|
||||
}
|
||||
|
||||
var resourceId = '' + selectedNodes[0];
|
||||
|
||||
OpenNebulaResource.show({
|
||||
data : {
|
||||
id: resourceId
|
||||
},
|
||||
success: function(){
|
||||
Sunstone.showTab(MARKETPLACEAPPS_TAB_ID);
|
||||
Sunstone.showFormPanel(
|
||||
MARKETPLACEAPPS_TAB_ID,
|
||||
CREATE_APP_DIALOG_ID,
|
||||
'export_template',
|
||||
function(formPanelInstance, context) {
|
||||
formPanelInstance.setTemplateId(resourceId);
|
||||
$('#marketplaceapps-tab-wizardForms #TYPE').val('vmtemplate').change();
|
||||
}
|
||||
);
|
||||
},
|
||||
error: function(error){
|
||||
Notifier.onError(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
]
|
||||
});
|
||||
Sunstone.getDialog(CONFIRM_DIALOG_ID).reset();
|
||||
Sunstone.getDialog(CONFIRM_DIALOG_ID).show();
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
_actions[resource+".delete_recursive"] = {
|
||||
type: "multiple",
|
||||
call: OpenNebulaResource.delete_recursive,
|
||||
callback : function(request, response) {
|
||||
if (Sunstone.getTab() == TAB_ID) {
|
||||
Sunstone.showTab(TAB_ID);
|
||||
}
|
||||
},
|
||||
elements: function(opts) {
|
||||
return Sunstone.getDataTable(TAB_ID).elements(opts);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
},
|
||||
_actions[resource+".chown"] = _commonActions.multipleAction("chown"),
|
||||
_actions[resource+".chgrp"] = _commonActions.multipleAction("chgrp"),
|
||||
_actions[resource+".chmod"] = _commonActions.singleAction("chmod"),
|
||||
_actions[resource+".share"] = {
|
||||
type: "multiple",
|
||||
call: function(params){
|
||||
var permissions = {
|
||||
"group_u" : 1,
|
||||
"recursive" : true
|
||||
};
|
||||
Sunstone.runAction(RESOURCE+".chmod", params.data.id, permissions);
|
||||
},
|
||||
callback : function(request, response) {
|
||||
Sunstone.runAction(RESOURCE+".show", req.request.data[0]);
|
||||
},
|
||||
elements: function(opts) {
|
||||
return Sunstone.getDataTable(TAB_ID).elements(opts);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: false
|
||||
},
|
||||
_actions[resource+".unshare"] = {
|
||||
type: "multiple",
|
||||
call: function(params){
|
||||
var permissions = {
|
||||
"group_u" : 0,
|
||||
"recursive" : true
|
||||
};
|
||||
Sunstone.runAction(RESOURCE+".chmod", params.data.id, permissions);
|
||||
},
|
||||
callback : function(request, response) {
|
||||
Sunstone.runAction(RESOURCE+".show", req.request.data[0]);
|
||||
},
|
||||
elements: function(opts) {
|
||||
return Sunstone.getDataTable(TAB_ID).elements(opts);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: false
|
||||
},
|
||||
_actions[resource+".rename"] = _commonActions.singleAction("rename"),
|
||||
_actions[resource+".create"] = _commonActions.create(CREATE_DIALOG_ID),
|
||||
_actions[resource+".create_dialog"] = _commonActions.showCreate(CREATE_DIALOG_ID),
|
||||
_actions[resource+".import_dialog"] = {
|
||||
type: "custom",
|
||||
call: function() {
|
||||
Sunstone.showFormPanel(TAB_ID, IMPORT_DIALOG_ID, "import");
|
||||
}
|
||||
},
|
||||
_actions[resource+".append_template"] = _commonActions.appendTemplate(),
|
||||
_actions[resource+".update"] = _commonActions.update(),
|
||||
_actions[resource+".update_dialog"] = _commonActions.checkAndShowUpdate(),
|
||||
_actions[resource+".update_template"] = _commonActions.updateTemplate(),
|
||||
_actions[resource+".show_to_update"] = _commonActions.showUpdate(CREATE_DIALOG_ID),
|
||||
_actions[resource+".instantiate"] = {
|
||||
type: "multiple",
|
||||
call: OpenNebulaResource.instantiate,
|
||||
callback: function(request, response) {
|
||||
Sunstone.hideFormPanel();
|
||||
OpenNebulaAction.clear_cache("VM");
|
||||
Notifier.notifyCustom(
|
||||
Locale.tr("VM created"),
|
||||
Navigation.link(" ID: " + response, "vms-tab", response),
|
||||
false
|
||||
);
|
||||
},
|
||||
elements: function(opts) {
|
||||
return Sunstone.getDataTable(TAB_ID).elements(opts);
|
||||
},
|
||||
error: function(request, response){
|
||||
// without tab id param to work for both templates and vms tab
|
||||
Sunstone.hideFormPanelLoading();
|
||||
Notifier.onError(request, response);
|
||||
},
|
||||
notify: false
|
||||
},
|
||||
_actions[resource+".instantiate_quiet"] = {
|
||||
type: "single",
|
||||
call: OpenNebulaResource.instantiate,
|
||||
callback: function(request, response) {
|
||||
Sunstone.hideFormPanel();
|
||||
OpenNebulaAction.clear_cache("VM");
|
||||
},
|
||||
error: function(request, response){
|
||||
// without tab id param to work for both templates and vms tab
|
||||
Sunstone.hideFormPanelLoading();
|
||||
Notifier.onError(request, response);
|
||||
}
|
||||
},
|
||||
_actions[resource+".instantiate_vms"] = {
|
||||
type: "custom",
|
||||
call: function(){
|
||||
//Sunstone.resetFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID);
|
||||
var selected_nodes = Sunstone.getDataTable(TAB_ID).elements();
|
||||
Sunstone.showFormPanel(TAB_ID, INSTANTIATE_DIALOG_ID, "instantiate",
|
||||
function(formPanelInstance, context) {
|
||||
formPanelInstance.setTemplateIds(context, selected_nodes);
|
||||
});
|
||||
}
|
||||
},
|
||||
_actions[resource+".instantiate_persistent"] = {
|
||||
type: "single",
|
||||
call: OpenNebulaResource.instantiate_persistent,
|
||||
callback: function(request, response) {
|
||||
Sunstone.hideFormPanel();
|
||||
OpenNebulaAction.clear_cache("VM");
|
||||
Notifier.notifyCustom(Locale.tr("VM created"),
|
||||
Navigation.link(" ID: " + response, "vms-tab", response),
|
||||
false);
|
||||
},
|
||||
error: function(request, response){
|
||||
// without tab id param to work for both templates and vms tab
|
||||
Sunstone.hideFormPanelLoading();
|
||||
Notifier.onError(request, response);
|
||||
}
|
||||
},
|
||||
_actions[resource+".clone_dialog"] = {
|
||||
type: "custom",
|
||||
call: function(){
|
||||
Sunstone.getDialog(CLONE_DIALOG_ID).setParams(
|
||||
{ tabId : TAB_ID,
|
||||
resource : resource
|
||||
});
|
||||
Sunstone.getDialog(CLONE_DIALOG_ID).reset();
|
||||
Sunstone.getDialog(CLONE_DIALOG_ID).show();
|
||||
}
|
||||
},
|
||||
_actions[resource+".clone"] = {
|
||||
type: "single",
|
||||
call: OpenNebulaResource.clone,
|
||||
callback: function(request, response) {
|
||||
OpenNebulaAction.clear_cache("VMTEMPLATE");
|
||||
Notifier.notifyCustom(Locale.tr("VM Template created"),
|
||||
Navigation.link(" ID: " + response.VMTEMPLATE.ID, "templates-tab", response.VMTEMPLATE.ID),
|
||||
false);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
},
|
||||
_actions[resource+".clone_recursive"] = {
|
||||
type: "single",
|
||||
call: OpenNebulaResource.clone_recursive,
|
||||
callback : function(request, response) {
|
||||
OpenNebulaAction.clear_cache("VMTEMPLATE");
|
||||
Notifier.notifyCustom(Locale.tr("VM Template created"),
|
||||
Navigation.link(" ID: " + response.VMTEMPLATE.ID, "templates-tab", response.VMTEMPLATE.ID),
|
||||
false);
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
},
|
||||
_actions[resource+".lockA"] = _commonActions.multipleAction("lock"),
|
||||
_actions[resource+".lockM"] = _commonActions.multipleAction("lock"),
|
||||
_actions[resource+".lockU"] = _commonActions.multipleAction("lock"),
|
||||
_actions[resource+".unlock"] = _commonActions.multipleAction("unlock"),
|
||||
_actions[resource+".upload_marketplace_dialog"] = {
|
||||
type: "custom",
|
||||
call: function() {
|
||||
var selectedNodes = Sunstone.getDataTable(TAB_ID).elements();
|
||||
if (selectedNodes.length !== 1) {
|
||||
Notifier.notifyMessage(Locale.tr("Please select one (and just one) Image to export."));
|
||||
return false;
|
||||
}
|
||||
var resourceId = "" + selectedNodes[0];
|
||||
OpenNebulaResource.show({
|
||||
data : {
|
||||
id: resourceId
|
||||
},
|
||||
success: function(){
|
||||
Sunstone.showTab(MARKETPLACEAPPS_TAB_ID);
|
||||
Sunstone.showFormPanel(
|
||||
MARKETPLACEAPPS_TAB_ID,
|
||||
CREATE_APP_DIALOG_ID,
|
||||
"export_template",
|
||||
function(formPanelInstance, context) {
|
||||
formPanelInstance.setTemplateId(resourceId);
|
||||
$("#marketplaceapps-tab-wizardForms #TYPE").val("vmtemplate").change();
|
||||
}
|
||||
);
|
||||
},
|
||||
error: function(error){
|
||||
Notifier.onError(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
return _actions;
|
||||
}
|
||||
|
||||
return Actions;
|
||||
})
|
||||
});
|
||||
|
@ -15,24 +15,24 @@
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
define(function(require) {
|
||||
var Actions = require('tabs/templates-tab/actions-common');
|
||||
var Actions = require("tabs/templates-tab/actions-common");
|
||||
|
||||
var TAB_ID = require('tabs/templates-tab/tabId');
|
||||
var CREATE_DIALOG_ID = require('tabs/templates-tab/form-panels/create/formPanelId');
|
||||
var CLONE_DIALOG_ID = require('tabs/templates-tab/dialogs/clone/dialogId');
|
||||
var INSTANTIATE_DIALOG_ID = require('tabs/templates-tab/form-panels/instantiate/formPanelId');
|
||||
var IMPORT_DIALOG_ID = require('tabs/templates-tab/form-panels/import/formPanelId');
|
||||
var CONFIRM_DIALOG_ID = require('utils/dialogs/generic-confirm/dialogId');
|
||||
var TAB_ID = require("tabs/templates-tab/tabId");
|
||||
var CREATE_DIALOG_ID = require("tabs/templates-tab/form-panels/create/formPanelId");
|
||||
var CLONE_DIALOG_ID = require("tabs/templates-tab/dialogs/clone/dialogId");
|
||||
var INSTANTIATE_DIALOG_ID = require("tabs/templates-tab/form-panels/instantiate/formPanelId");
|
||||
var IMPORT_DIALOG_ID = require("tabs/templates-tab/form-panels/import/formPanelId");
|
||||
var CONFIRM_DIALOG_ID = require("utils/dialogs/generic-confirm/dialogId");
|
||||
|
||||
var RESOURCE = "Template"
|
||||
var RESOURCE = "Template";
|
||||
|
||||
return Actions(TAB_ID, RESOURCE,
|
||||
return Actions(TAB_ID, RESOURCE,
|
||||
{
|
||||
'TAB_ID' : TAB_ID,
|
||||
'CREATE_DIALOG_ID' : CREATE_DIALOG_ID,
|
||||
'CLONE_DIALOG_ID' : CLONE_DIALOG_ID,
|
||||
'INSTANTIATE_DIALOG_ID' : INSTANTIATE_DIALOG_ID,
|
||||
'IMPORT_DIALOG_ID' : IMPORT_DIALOG_ID,
|
||||
'CONFIRM_DIALOG_ID' : CONFIRM_DIALOG_ID,
|
||||
"TAB_ID" : TAB_ID,
|
||||
"CREATE_DIALOG_ID" : CREATE_DIALOG_ID,
|
||||
"CLONE_DIALOG_ID" : CLONE_DIALOG_ID,
|
||||
"INSTANTIATE_DIALOG_ID" : INSTANTIATE_DIALOG_ID,
|
||||
"IMPORT_DIALOG_ID" : IMPORT_DIALOG_ID,
|
||||
"CONFIRM_DIALOG_ID" : CONFIRM_DIALOG_ID,
|
||||
});
|
||||
});
|
||||
|
@ -15,10 +15,10 @@
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
define(function(require) {
|
||||
var Sunstone = require('sunstone');
|
||||
var Notifier = require('utils/notifier');
|
||||
var Locale = require('utils/locale');
|
||||
var Navigation = require('utils/navigation');
|
||||
var Sunstone = require("sunstone");
|
||||
var Notifier = require("utils/notifier");
|
||||
var Locale = require("utils/locale");
|
||||
var Navigation = require("utils/navigation");
|
||||
|
||||
/*
|
||||
CONSTRUCTOR
|
||||
@ -61,7 +61,7 @@ define(function(require) {
|
||||
}
|
||||
},
|
||||
error: Notifier.onError
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _show() {
|
||||
@ -72,13 +72,13 @@ define(function(require) {
|
||||
callback: function(request, response) {
|
||||
if(that && that.tabId && Sunstone && Sunstone.getDataTable && Sunstone.getDataTable(that.tabId)){
|
||||
Sunstone.getDataTable(that.tabId).updateElement(request, response);
|
||||
if (Sunstone.rightInfoVisible($('#' + that.tabId))) {
|
||||
if (Sunstone.rightInfoVisible($("#" + that.tabId))) {
|
||||
Sunstone.insertPanels(that.tabId, response);
|
||||
}
|
||||
}
|
||||
},
|
||||
error: Notifier.onError
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _refresh() {
|
||||
@ -86,7 +86,7 @@ define(function(require) {
|
||||
return {
|
||||
type: "custom",
|
||||
call: function() {
|
||||
var tab = $('#' + that.tabId);
|
||||
var tab = $("#" + that.tabId);
|
||||
if (Sunstone.rightInfoVisible(tab)) {
|
||||
Sunstone.runAction(that.resourceStr + ".show", Sunstone.rightInfoResourceId(tab));
|
||||
} else {
|
||||
@ -95,7 +95,7 @@ define(function(require) {
|
||||
}
|
||||
},
|
||||
error: Notifier.onError
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _del() {
|
||||
@ -104,7 +104,7 @@ define(function(require) {
|
||||
type: "multiple",
|
||||
call : that.openNebulaResource.del,
|
||||
callback : function(request, response) {
|
||||
var tab = $('#' + that.tabId);
|
||||
var tab = $("#" + that.tabId);
|
||||
|
||||
if (Sunstone.getTab() == that.tabId) {
|
||||
Sunstone.showTab(that.tabId);
|
||||
@ -115,7 +115,7 @@ define(function(require) {
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _multipleAction(actionStr, notify) {
|
||||
@ -135,7 +135,7 @@ define(function(require) {
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: notify_bool
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _singleAction(actionStr) {
|
||||
@ -151,7 +151,7 @@ define(function(require) {
|
||||
},
|
||||
error: Notifier.onError,
|
||||
notify: true
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _create(formPanelId) {
|
||||
@ -177,7 +177,7 @@ define(function(require) {
|
||||
Notifier.onError(request, response);
|
||||
},
|
||||
notify: false
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _showCreate(formPanelId) {
|
||||
@ -187,7 +187,7 @@ define(function(require) {
|
||||
call: function() {
|
||||
Sunstone.showFormPanel(that.tabId, formPanelId, "create");
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _showUpdate(formPanelId) {
|
||||
@ -206,42 +206,42 @@ define(function(require) {
|
||||
});
|
||||
},
|
||||
error: Notifier.onError
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _checkAndShowUpdate() {
|
||||
var that = this;
|
||||
return {
|
||||
type: 'single',
|
||||
type: "single",
|
||||
call: function() {
|
||||
var selectedNodes = Sunstone.getDataTable(that.tabId).elements();
|
||||
if (selectedNodes.length != 1) {
|
||||
Notifier.notifyMessage('Please select one (and just one) resource to update.');
|
||||
Notifier.notifyMessage("Please select one (and just one) resource to update.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var resourceId = '' + selectedNodes[0];
|
||||
var resourceId = "" + selectedNodes[0];
|
||||
window.ServiceId = resourceId;
|
||||
Sunstone.runAction(that.resourceStr + '.show_to_update', resourceId);
|
||||
Sunstone.runAction(that.resourceStr + ".show_to_update", resourceId);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _checkAndShow(action) {
|
||||
var that = this;
|
||||
return {
|
||||
type: 'single',
|
||||
type: "single",
|
||||
call: function() {
|
||||
var selectedNodes = Sunstone.getDataTable(that.tabId).elements();
|
||||
if (selectedNodes.length != 1) {
|
||||
Notifier.notifyMessage('Please select one (and just one) resource to update.');
|
||||
Notifier.notifyMessage("Please select one (and just one) resource to update.");
|
||||
return false;
|
||||
}
|
||||
|
||||
var resourceId = '' + selectedNodes[0];
|
||||
Sunstone.runAction(that.resourceStr + '.' + action, resourceId);
|
||||
var resourceId = "" + selectedNodes[0];
|
||||
Sunstone.runAction(that.resourceStr + "." + action, resourceId);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _update() {
|
||||
@ -256,7 +256,7 @@ define(function(require) {
|
||||
Sunstone.hideFormPanelLoading(that.tabId);
|
||||
Notifier.onError(request, response);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _updateTemplate() {
|
||||
@ -265,10 +265,10 @@ define(function(require) {
|
||||
type: "single",
|
||||
call: that.openNebulaResource.update,
|
||||
callback: function(request) {
|
||||
Sunstone.runAction(that.resourceStr + '.show', request.request.data[0]);
|
||||
Sunstone.runAction(that.resourceStr + ".show", request.request.data[0]);
|
||||
},
|
||||
error: Notifier.onError
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function _appendTemplate() {
|
||||
@ -277,9 +277,9 @@ define(function(require) {
|
||||
type: "single",
|
||||
call: that.openNebulaResource.append,
|
||||
callback: function(request) {
|
||||
Sunstone.runAction(that.resourceStr + '.show', request.request.data[0]);
|
||||
Sunstone.runAction(that.resourceStr + ".show", request.request.data[0]);
|
||||
},
|
||||
error: Notifier.onError
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
@ -136,7 +136,7 @@ end
|
||||
delete '/service_template/:id' do
|
||||
client = af_build_client
|
||||
|
||||
resp = client.delete('/service_template/' + params[:id])
|
||||
resp = client.delete('/service_template/' + params[:id], @request_body)
|
||||
|
||||
af_format_response(resp)
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user