
Signed-off-by: Christy Perez <christy@linux.vnet.ibm.com> Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com> --- ui/css/theme-default/list.css | 8 ++++---- ui/js/src/kimchi.guest_main.js | 28 +++++++++++++++++++++++++--- ui/pages/guest.html.tmpl | 4 ++-- ui/pages/i18n.json.tmpl | 1 + 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/ui/css/theme-default/list.css b/ui/css/theme-default/list.css index 7b32ea6..e51912d 100644 --- a/ui/css/theme-default/list.css +++ b/ui/css/theme-default/list.css @@ -1,7 +1,7 @@ /* * Project Kimchi * - * Copyright IBM, Corp. 2013-2014 + * Copyright IBM, Corp. 2013-2015 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -289,11 +289,11 @@ padding-left: 10px; } -.guest-clone { +.guest-pending { margin: 10px; } -.guest-clone .icon { +.guest-pending .icon { background: url('../../images/theme-default/kimchi-loading15x15.gif') no-repeat; display: inline-block; width: 20px; @@ -301,7 +301,7 @@ vertical-align: middle; } -.guest-clone .text { +.guest-pending .text { color: #666666; margin-left: 5px; text-shadow: -1px -1px 1px #CCCCCC, 1px 1px 1px #FFFFFF; diff --git a/ui/js/src/kimchi.guest_main.js b/ui/js/src/kimchi.guest_main.js index c712bb4..260e907 100644 --- a/ui/js/src/kimchi.guest_main.js +++ b/ui/js/src/kimchi.guest_main.js @@ -201,6 +201,21 @@ kimchi.listVmsAuto = function() { if (kimchi.vmTimeout) { clearTimeout(kimchi.vmTimeout); } + var getCreatingGuests = function(){ + var guests = []; + kimchi.getTasksByFilter('status=running&target_uri='+encodeURIComponent('^/vms/[^/]+$'), function(tasks) { + for(var i=0;i<tasks.length;i++){ + var guestUri = tasks[i].target_uri; + var guestName = guestUri.split('/')[2] + guests.push($.extend({}, kimchi.sampleGuestObject, {name: guestName, isCreating: true})); + if(kimchi.trackingTasks.indexOf(tasks[i].id)==-1) + kimchi.trackTask(tasks[i].id, null, function(err){ + kimchi.message.error(err.message); + }, null); + } + }, null, true); + return guests; + }; var getCloningGuests = function(){ var guests = []; kimchi.getTasksByFilter('status=running&target_uri='+encodeURIComponent('^/vms/.+/clone'), function(tasks) { @@ -219,6 +234,7 @@ kimchi.listVmsAuto = function() { kimchi.listVMs(function(result, textStatus, jqXHR) { if (result && textStatus=="success") { result = getCloningGuests().concat(result); + result = getCreatingGuests().concat(result); if(result.length) { var listHtml = ''; var guestTemplate = kimchi.guestTemplate; @@ -281,7 +297,7 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu) { imgLoad.attr('src',load_src); //Link the stopped tile to the start action, the running tile to open the console - if(!vmObject.isCloning){ + if(!(vmObject.isCloning || vmObject.isCreating)){ if (vmRunningBool) { liveTile.off("click", kimchi.vmstart); liveTile.on("click", kimchi.openVmConsole); @@ -329,7 +345,7 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu) { } //Setup action event handlers - if(!vmObject.isCloning){ + if(!(vmObject.isCloning || vmObject.isCreating)){ guestActions.find("[name=vm-start]").on({click : kimchi.vmstart}); guestActions.find("[name=vm-poweroff]").on({click : kimchi.vmpoweroff}); if (vmRunningBool) { //If the guest is not running, do not enable reset @@ -362,8 +378,14 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu) { }else{ guestActions.find('.btn').attr('disabled', true); - result.find('.guest-clone').removeClass('hide-content'); $('.popover', guestActions.find("div[name=actionmenu]")).remove(); + + result.find('.guest-pending').removeClass('hide-content'); + pendingText = result.find('.guest-pending .text') + if(vmObject.isCloning) + pendingText.text(i18n['KCHAPI6009M']); + else + pendingText.text(i18n['KCHAPI6008M']); } return result; diff --git a/ui/pages/guest.html.tmpl b/ui/pages/guest.html.tmpl index 17d41ac..8896ac5 100644 --- a/ui/pages/guest.html.tmpl +++ b/ui/pages/guest.html.tmpl @@ -26,8 +26,8 @@ <div class="guest-general"> <h2 class="title" title="{name}">{name}</h2> </div> - <div class="guest-clone hide-content"> - <span class="icon"></span><span class="text">$_("Cloning")...</span> + <div class="guest-pending hide-content"> + <span class="icon"></span><span class="text"></span> </div> </div> <div name="cpu_utilization" class="sortable"> diff --git a/ui/pages/i18n.json.tmpl b/ui/pages/i18n.json.tmpl index a6e3f5b..675d9a6 100644 --- a/ui/pages/i18n.json.tmpl +++ b/ui/pages/i18n.json.tmpl @@ -48,6 +48,7 @@ "KCHAPI6006M": "$_("Warning")", "KCHAPI6007M": "$_("Save")", "KCHAPI6008M": "$_("Creating...")", + "KCHAPI6009M": "$_("Cloning...")", "KCHGRD6001M": "$_("Loading...")", "KCHGRD6002M": "$_("An error occurred while retrieving system information.")", -- 2.1.0