diff --git a/src/sunstone/public/app/opennebula.js b/src/sunstone/public/app/opennebula.js index 3b718ed58d..2720d119ee 100644 --- a/src/sunstone/public/app/opennebula.js +++ b/src/sunstone/public/app/opennebula.js @@ -28,7 +28,6 @@ define(function(require) { Group = require('./opennebula/group'), Host = require('./opennebula/host'), Image = require('./opennebula/image'), - Marketplace = require('./opennebula/marketplace'), Network = require('./opennebula/network'), Role = require('./opennebula/role'), securitygroup = require('./opennebula/securitygroup'), @@ -41,6 +40,8 @@ define(function(require) { Vm = require('./opennebula/vm'), Zone = require('./opennebula/zone'), VirtualRouter = require('./opennebula/virtualrouter'); + MarketPlace = require('./opennebula/marketplace'); + MarketPlaceApp = require('./opennebula/marketplaceapp'); if (typeof(csrftoken) != "undefined") { $.ajaxPrefilter(function(options, originalOptions, jqXHR) { @@ -78,7 +79,6 @@ define(function(require) { 'Host': Host, 'Image': Image, 'File': Image, - 'Marketplace': Marketplace, 'Network': Network, 'Role': Role, 'SecurityGroup': securitygroup, @@ -90,7 +90,9 @@ define(function(require) { 'Vdc': Vdc, 'VM': Vm, 'Zone': Zone, - 'VirtualRouter': VirtualRouter + 'VirtualRouter': VirtualRouter, + 'MarketPlace': MarketPlace, + 'MarketPlaceApp': MarketPlaceApp }; return OpenNebula; diff --git a/src/sunstone/public/app/opennebula/marketplace.js b/src/sunstone/public/app/opennebula/marketplace.js index d35fdb0b0e..fb566b29b6 100644 --- a/src/sunstone/public/app/opennebula/marketplace.js +++ b/src/sunstone/public/app/opennebula/marketplace.js @@ -16,45 +16,53 @@ define(function(require) { var OpenNebulaAction = require('./action'); - var OpenNebulaError = require('./error'); - var OpenNebulaHelper = require('./helper'); - var Notifier = require('utils/notifier'); var Locale = require('utils/locale'); var RESOURCE = "MARKETPLACE"; - var Marketplace = { + var MarketPlace = { "resource": RESOURCE, - "show" : function(params) { - params.error = function() { - return Notifier.notifyError(Locale.tr("Cannot connect to OpenNebula Marketplace")); - }; - OpenNebulaAction.show(params, RESOURCE); + "create" : function(params) { + OpenNebulaAction.create(params, RESOURCE); + }, + "del" : function(params) { + OpenNebulaAction.del(params, RESOURCE); }, "list" : function(params) { - //Custom list request function, since the contents do not come - //in the same format as the rest of opennebula resources. - var callback = params.success; - var callback_error = params.error; - var timeout = params.timeout || false; - var request = OpenNebulaHelper.request('MARKETPLACE', 'list'); - - $.ajax({ - url: 'marketplace', - type: 'GET', - data: {timeout: timeout}, - dataType: "json", - success: function(response) { - $(".marketplace_error_message").hide(); - return callback ? callback(request, response) : null; - }, - error: function(res) { - $(".marketplace_error_message").show(); - return callback_error ? callback_error(request, OpenNebulaError(res)) : null; - } - }); + OpenNebulaAction.list(params, RESOURCE); + }, + "list_in_zone" : function(params) { + OpenNebulaAction.list_in_zone(params, RESOURCE); + }, + "show" : function(params) { + OpenNebulaAction.show(params, RESOURCE); + }, + "chown" : function(params) { + OpenNebulaAction.chown(params, RESOURCE); + }, + "chgrp" : function(params) { + OpenNebulaAction.chgrp(params, RESOURCE); + }, + "chmod" : function(params) { + var action_obj = params.data.extra_param; + OpenNebulaAction.simple_action(params, RESOURCE, "chmod", action_obj); + }, + "update" : function(params) { + var action_obj = {"template_raw" : params.data.extra_param}; + OpenNebulaAction.simple_action(params, RESOURCE, "update", action_obj); + }, + "append": function(params) { + var action_obj = {"template_raw" : params.data.extra_param, append : true}; + OpenNebulaAction.simple_action(params, RESOURCE, "update", action_obj); + }, + "rename" : function(params) { + var action_obj = params.data.extra_param; + OpenNebulaAction.simple_action(params, RESOURCE, "rename", action_obj); + }, + "getName": function(id){ + return OpenNebulaAction.getName(id, RESOURCE); } - }; + } - return Marketplace; -}); + return MarketPlace; +}) diff --git a/src/sunstone/public/app/opennebula/marketplaceapp.js b/src/sunstone/public/app/opennebula/marketplaceapp.js new file mode 100644 index 0000000000..4489aef21f --- /dev/null +++ b/src/sunstone/public/app/opennebula/marketplaceapp.js @@ -0,0 +1,112 @@ +/* -------------------------------------------------------------------------- */ +/* Copyright 2002-2015, OpenNebula Project, OpenNebula Systems */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); you may */ +/* not use this file except in compliance with the License. You may obtain */ +/* a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */ +/* See the License for the specific language governing permissions and */ +/* limitations under the License. */ +/* -------------------------------------------------------------------------- */ + +define(function(require) { + var OpenNebulaAction = require('./action'); + var Locale = require('utils/locale'); + + var RESOURCE = "MARKETPLACEAPP"; + + var STATES_STR = [ + Locale.tr("INIT"), + Locale.tr("READY"), + Locale.tr("LOCKED"), + Locale.tr("ERROR"), + Locale.tr("DISABLED") + ]; + + var TYPES_STR = [ + Locale.tr("UNKNOWN"), + Locale.tr("IMAGE"), + Locale.tr("VMTEMPLATE"), + Locale.tr("SERVICE_TEMPLATE") + ]; + + var STATES = { + INIT : 0, + READY : 1, + LOCKED : 2, + ERROR : 3, + DISABLED : 4 + }; + + var TYPES = { + UNKNOWN : 0, + IMAGE : 1, + VMTEMPLATE : 2, + SERVICE_TEMPLATE : 3 + }; + + var MarketPlaceApp = { + "resource": RESOURCE, + "stateStr": function(stateId) { + return STATES_STR[stateId]; + }, + "STATES": STATES, + "typeStr": function(typeId) { + return TYPES_STR[typeId]; + }, + "TYPES": TYPES, + "create" : function(params) { + OpenNebulaAction.create(params, RESOURCE); + }, + "del" : function(params) { + OpenNebulaAction.del(params, RESOURCE); + }, + "list" : function(params) { + OpenNebulaAction.list(params, RESOURCE); + }, + "list_in_zone" : function(params) { + OpenNebulaAction.list_in_zone(params, RESOURCE); + }, + "show" : function(params) { + OpenNebulaAction.show(params, RESOURCE); + }, + "chown" : function(params) { + OpenNebulaAction.chown(params, RESOURCE); + }, + "chgrp" : function(params) { + OpenNebulaAction.chgrp(params, RESOURCE); + }, + "chmod" : function(params) { + var action_obj = params.data.extra_param; + OpenNebulaAction.simple_action(params, RESOURCE, "chmod", action_obj); + }, + "update" : function(params) { + var action_obj = {"template_raw" : params.data.extra_param}; + OpenNebulaAction.simple_action(params, RESOURCE, "update", action_obj); + }, + "append": function(params) { + var action_obj = {"template_raw" : params.data.extra_param, append : true}; + OpenNebulaAction.simple_action(params, RESOURCE, "update", action_obj); + }, + "rename" : function(params) { + var action_obj = params.data.extra_param; + OpenNebulaAction.simple_action(params, RESOURCE, "rename", action_obj); + }, + "enable": function(params) { + OpenNebulaAction.simple_action(params, RESOURCE, "enable"); + }, + "disable": function(params) { + OpenNebulaAction.simple_action(params, RESOURCE, "disable"); + }, + "getName": function(id){ + return OpenNebulaAction.getName(id, RESOURCE); + } + } + + return MarketPlaceApp; +})