[Kimchi-devel] [PATCH 1/2] First changes for pause/resume UI

Rodrigo Trujillo rodrigo.trujillo at linux.vnet.ibm.com
Thu May 28 19:57:43 UTC 2015


You missed the patch header and description
More comments below:

On 05/28/2015 03:20 PM, Socorro Stoppler wrote:
> From: Socorro Stoppler <socorrob at us.ibm.com>
>
> Signed-off-by: Socorro Stoppler <socorrob at us.ibm.com>
> ---
>   ui/css/theme-default/button.css | 10 +++++
>   ui/css/theme-default/list.css   |  4 +-
>   ui/js/src/kimchi.guest_main.js  | 95 ++++++++++++++++++++++++++++++++++++++++-
>   ui/pages/guest.html.tmpl        |  3 ++
>   4 files changed, 109 insertions(+), 3 deletions(-)
>
> diff --git a/ui/css/theme-default/button.css b/ui/css/theme-default/button.css
> index 0df53a6..08845a8 100644
> --- a/ui/css/theme-default/button.css
> +++ b/ui/css/theme-default/button.css
> @@ -226,6 +226,16 @@
>                   center no-repeat;
>   }
>
> +.icon.pause {
> +    background: url(../images/theme-default/icon-pause.png) center
> +                center no-repeat;
> +}
> +
> +.icon.resume {
> +    background: url(../images/theme-default/icon-resume.png) center
> +                center no-repeat;
> +}
> +
>   .icon.search {
>       background: url(../images/theme-default/icon-search.png) no-repeat
>                   center center;
> diff --git a/ui/css/theme-default/list.css b/ui/css/theme-default/list.css
> index e51912d..6b8993b 100644
> --- a/ui/css/theme-default/list.css
> +++ b/ui/css/theme-default/list.css
> @@ -149,8 +149,8 @@
>   }
>
>   .guest-actions {
> -    width: 125px;
> -    min-width: 125px;
> +    width: 160px;
> +    min-width: 160px;
>   }
>
>   .guest-handle {
> diff --git a/ui/js/src/kimchi.guest_main.js b/ui/js/src/kimchi.guest_main.js
> index 260e907..d4f4916 100644
> --- a/ui/js/src/kimchi.guest_main.js
> +++ b/ui/js/src/kimchi.guest_main.js
> @@ -15,6 +15,7 @@
>    * See the License for the specific language governing permissions and
>    * limitations under the License.
>    */
> +
>   kimchi.sampleGuestObject = {
>       "name": "",
>       "uuid": "",
> @@ -65,6 +66,62 @@ kimchi.vmstart = function(event) {
>       }
>   };
Please remove all comments from the code, except comments that will 
explain some code interaction

> +//Socorro
> +kimchi.vmpause = function(event) {
> +    var button=$(this);
> +    if (!button.hasClass('loading')) {
> +        button.addClass('loading');
> +        var vm=$(this).closest('li[name=guest]');
> +        var vm_id=vm.attr("id");
> +	//Socorro - change this to kimchi.pauseVM but where is this defined? -- in kimchi.api.js -- need to get latest one from Aline if it's already checked in
> +	//Socorro
> +	alert('Before entering .pauseVM - Pause button pushed');
> +	vmPausedBool=true;
> +        //kimchi.pauseVM(vm_id, function(result) {
> +            //button.removeClass('loading');
> +            //kimchi.listVmsAuto();
> +   	    //Socorro
> +	    //alert('Pause button pushed');
> +            //}, function(err) {
> +                //button.removeClass('loading');
> +                //kimchi.message.error(err.responseJSON.reason);
> +            //}
> +        //);
> +    } else {
> +        event.preventDefault();
> +        event.stopPropagation();
> +        return;
> +    }
> +};
> +
> +//Socorro
> +kimchi.vmresume = function(event) {
> +    var button=$(this);
> +    if (!button.hasClass('loading')) {
> +        button.addClass('loading');
> +        var vm=$(this).closest('li[name=guest]');
> +        var vm_id=vm.attr("id");
> +	//Socorro - change this to kimchi.resumeVM but where is this defined?  -- in kimchi.api.js -- need to get latest one from Aline if it's already checked in
> +	//Socorro
> +	alert('Before entering .resumeVM - Resume button pushed');
> +        //kimchi.resumeVM(vm_id, function(result) {
> +            //button.removeClass('loading');
> +            //kimchi.listVmsAuto();
> +            //Socorro
> +	    alert('Resume button pushed');
> +            //}, function(err) {
> +                //button.removeClass('loading');
> +                //kimchi.message.error(err.responseJSON.reason);
> +            //}
> +        //);
> +    } else {
> +        event.preventDefault();
> +        event.stopPropagation();
> +        return;
> +    }
> +};
> +
> +
>   kimchi.vmpoweroff = function(event) {
>       var button=$(this);
>       if (!button.hasClass('loading')) {
> @@ -268,6 +325,9 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu) {
>
>       //Setup the VM list entry
>       var vmRunningBool=(vmObject.state=="running");
> +//Socorro
> +var vmPausedBool=false; //(vmObject.state=="paused");
> +var vmResumedBool=true; //(vmObject.state=="resumed");
>       var vmPersistent = (vmObject.persistent == true);
>       result.attr('id',vmObject.name);
>       result.data(vmObject);
> @@ -301,12 +361,24 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu) {
>           if (vmRunningBool) {
>               liveTile.off("click", kimchi.vmstart);
>               liveTile.on("click", kimchi.openVmConsole);
> -        }
> +//Socorro - add pause/resume scenario
> +	    if (vmPausedBool) {
> +	        liveTile.off("click", kimchi.vmpause);
> +	        liveTile.on("click", kimchi.vmresume);
> +	    }
> +	    else if (vmResumedBool) {
> +	        liveTile.off("click", kimchi.vmresume);
> +	        liveTile.on("click", kimchi.vmpause);
> +	    }  	
> +//end Socorro
> +	}
>           else {
>               liveTile.off("click", kimchi.openVmConsole);
>               liveTile.on("click", kimchi.vmstart);
>               liveTile.hover(function(event){$(this).find('.overlay').show()}, function(event){$(this).find('.overlay').hide()});
>           }
> +
> +
>       }
>
>
> @@ -326,14 +398,32 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu) {
>       guestActions.find(".running-disabled").prop("disabled", vmRunningBool);
>       guestActions.find(".non-persistent-disabled").prop("disabled", !vmPersistent);
>       guestActions.find(".reset-disabled").prop("disabled", !vmRunningBool || !vmPersistent);
> +//Socorro -- disable pause initially - no need to do it for resume since it's either one or the other showing, not both
> +    guestActions.find(".pause-hidden").prop("disabled", !vmRunningBool || !vmPersistent);
>
>       if (vmRunningBool) {
>           guestActions.find(".running-hidden").hide();
> +        //Socorro -- since VM is running, assuming it is playing as well
> +        guestActions.find(".resume-hidden").hide();
> +	// Check if 'paused'
> +	if (vmPausedBool) {
> +	    guestActions.find(".pause-hidden").hide();
> +	}
>       }
>       else {
>           guestActions.find(".shutoff-hidden").hide();
> +	//Socorro
> +	guestActions.find(".resume-hidden").hide();
> +        guestActions.find(".pause-hidden").hide();
>       }
>
> +//Socorro
> +   //if (vmPausedBool) {
> +        //guestActions.find(".pause-hidden").hide();
> +   //} else if (vmResumedBool) {
> +	// Socorro -- add hiding of Resume button here
> +   //}
> +
>       var consoleActions=guestActions.find("[name=vm-console]");
>
>       if ((vmObject.graphics['type'] == 'vnc') || (vmObject.graphics['type'] == 'spice')) {
> @@ -348,6 +438,9 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu) {
>       if(!(vmObject.isCloning || vmObject.isCreating)){
>           guestActions.find("[name=vm-start]").on({click : kimchi.vmstart});
>           guestActions.find("[name=vm-poweroff]").on({click : kimchi.vmpoweroff});
> +//Socorro Pause-Resume
> +guestActions.find("[name=vm-pause]").on({click : kimchi.vmpause});
> +guestActions.find("[name=vm-resume]").on({click : kimchi.vmresume});
>           if (vmRunningBool) {  //If the guest is not running, do not enable reset
>               guestActions.find("[name=vm-reset]").on({click : kimchi.vmreset});
>           }
> diff --git a/ui/pages/guest.html.tmpl b/ui/pages/guest.html.tmpl
> index 8896ac5..d2ebef0 100644
> --- a/ui/pages/guest.html.tmpl
> +++ b/ui/pages/guest.html.tmpl
> @@ -53,6 +53,9 @@
>                       <button class="btn reset-disabled" name="vm-reset" href="javascript:void(0);" title="$_("Reset")"><span class="icon reset"></span></button>
>                       <button class="btn running-hidden" name="vm-start" href="javascript:void(0);" title="$_("Start")"><span class="icon power-down"></span></button>
>                       <button class="btn shutoff-hidden" name="vm-poweroff" href="javascript:void(0);" title="$_("Power Off")"><span class="icon power-up"></span></button>
> +<button class="btn pause-hidden" name="vm-pause" href="javascript:void(0);" title="$_("Pause")"><span class="icon pause"></span></button>
> +<button class="btn resume-hidden" name="vm-pause" href="javascript:void(0);" title="$_("Resume")"><span class="icon resume"></span></button>
> +
>                   </div>
>                   <div class="bottom">
>                       <div name="actionmenu" class="btn dropdown popable vm-action" style="width: 70px">




More information about the Kimchi-devel mailing list