Updated Branches:
  refs/heads/master 66185076d -> da814c658

CLOUDSTACK-4796: UI > Instances > detailView > add new action "Assign Instance 
to Another Account".


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/da814c65
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/da814c65
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/da814c65

Branch: refs/heads/master
Commit: da814c658b5a36f817888ccf1b5de80d00b17b8c
Parents: 6618507
Author: Jessica Wang <[email protected]>
Authored: Mon Oct 7 10:20:16 2013 -0700
Committer: Jessica Wang <[email protected]>
Committed: Mon Oct 7 10:22:24 2013 -0700

----------------------------------------------------------------------
 ui/scripts/instances.js | 81 +++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 77 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/da814c65/ui/scripts/instances.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index a9f6d1c..ba463e7 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') {

Reply via email to