From da814c658b5a36f817888ccf1b5de80d00b17b8c Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Mon, 7 Oct 2013 10:20:16 -0700 Subject: [PATCH] CLOUDSTACK-4796: UI > Instances > detailView > add new action "Assign Instance to Another Account". --- ui/scripts/instances.js | 81 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js index a9f6d1c8c5a..ba463e7b4be 100644 --- a/ui/scripts/instances.js +++ b/ui/scripts/instances.js @@ -1324,8 +1324,6 @@ }); } } - - } }, @@ -1366,9 +1364,79 @@ notification: { poll: pollAsyncJobResult } - }, - + + assignVmToAnotherAccount: { + label: 'Assign Instance to Another Account', + createForm: { + title: 'Assign Instance to Another Account', + fields: { + domainid: { + label: 'label.domain', + validation: { + required: true + }, + select: function(args) { + $.ajax({ + url: createURL('listDomains'), + data: { + listAll: true, + details: 'min' + }, + success: function(json) { + var array1 = []; + var domains = json.listdomainsresponse.domain; + if (domains != null && domains.length > 0) { + for (var i = 0; i < domains.length; i++) { + array1.push({ + id: domains[i].id, + description: domains[i].path + }); + } + } + args.response.success({ + data: array1 + }); + } + }); + } + }, + account: { + label: 'label.account', + validation: { + required: true + } + } + } + }, + action: function(args) { + $.ajax({ + url: createURL('assignVirtualMachine&virtualmachine'), + data: { + virtualmachineid: args.context.instances[0].id, + domainid: args.data.domainid, + account: args.data.account + }, + success: function(json) { + var item = json.virtualmachine.virtualmachine; + args.response.success({ + data: item + }); + } + }); + }, + messages: { + notification: function(args) { + return 'Assign Instance to Another Account'; + } + }, + notification: { + poll: function(args) { + args.complete(); + } + } + }, + viewConsole: { label: 'label.view.console', action: { @@ -1924,6 +1992,11 @@ if (jsonObj.hypervisor == "BareMetal") { allowedActions.push("createTemplate"); } + + if (isAdmin() || isDomainAdmin()) { + allowedActions.push("assignVmToAnotherAccount"); + } + } else if (jsonObj.state == 'Starting') { // allowedActions.push("stop"); } else if (jsonObj.state == 'Error') {