[Kimchi-devel] [PATCH 2/2] Allow admin user change permission settings when VM is running

Aline Manera alinefm at linux.vnet.ibm.com
Thu Aug 21 18:30:38 UTC 2014


Some comments:

1) When VM is running, the edit dialog blinks when it is open to fill 
the input boxes. (ie, in a first moment the input boxes are displayed 
empty and after some seconds it is filled)
     From my understanding it should not happen as the data will be 
always displayed, the difference is if it is enabled or disabled for 
edition.
     Could you check it and maybe do some improvements?

2) There is a different behavior in  Storage tab to Network tab.
      In the Storage tab the disks (that can not be edited) are listed 
without any icon BUT in the Network tab, there is an edit icon disabled.
      I suggest to remove the icon when edition is not allowed.


On 08/21/2014 08:38 AM, Wen Wang wrote:
> Functions changed:
> 1) Enable "Edit" whether VM is running or off
> 2) Disable edit function of "General", "Storage", "Interface" except
> "replace" of the cdrom under "Storage".
>
> Signed-off-by: Wen Wang <wenwang at linux.vnet.ibm.com>
> ---
>   ui/js/src/kimchi.guest_edit_main.js |   54 ++++++++++++++++++++++++-----------
>   ui/js/src/kimchi.guest_main.js      |    1 -
>   ui/pages/guest-edit.html.tmpl       |    2 +-
>   3 files changed, 38 insertions(+), 19 deletions(-)
>
> diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js
> index 01d8045..ab63bb2 100644
> --- a/ui/js/src/kimchi.guest_edit_main.js
> +++ b/ui/js/src/kimchi.guest_edit_main.js
> @@ -19,7 +19,12 @@ kimchi.guest_edit_main = function() {
>       var buttonContainer = $('#action-button-container');
>       $('#guest-edit-tabs').tabs({
>           beforeActivate: function(event, ui) {
> -            var display_list = ['form-guest-edit-general', 'form-guest-edit-permission']
> +            var display_list = null;
> +            if(kimchi.thisVMState === "running") {
> +                display_list = ['form-guest-edit-permission'];
> +            } else {
> +                display_list = ['form-guest-edit-general', 'form-guest-edit-permission'];
> +            }
>               $(buttonContainer).addClass('hidden');
>               var deactivated = ui['newPanel'];
>               if(display_list.indexOf($(deactivated).attr('id')) >= 0) {
> @@ -52,12 +57,17 @@ kimchi.guest_edit_main = function() {
>                   text: false
>               });
>
> -            $('.detach', container).button({
> -                icons: {
> -                    primary: 'ui-icon-trash'
> -                },
> -                text: false
> -            });
> +            if(kimchi.thisVMState != "running") {
> +                $('.detach', container).button({
> +                    icons: {
> +                        primary: 'ui-icon-trash'
> +                    },
> +                    text: false
> +                });
> +
> +            } else {
> +                $('.detach', container).remove();
> +            }
>
>               $('.save', container).button({
>                   icons: {
> @@ -170,6 +180,9 @@ kimchi.guest_edit_main = function() {
>               var itemNode = $.parseHTML(kimchi.substitute($('#interface-tmpl').html(),data));
>               $(".body", "#form-guest-edit-interface").append(itemNode);
>               $("select", itemNode).append(networkOptions);
> +            if(kimchi.thisVMState === "running") {
> +                $("#form-guest-edit-interface .delete").remove();
> +            }
>               if(data.network!==""){
>                   $("select", itemNode).val(data.network);
>               }
> @@ -340,18 +353,25 @@ kimchi.guest_edit_main = function() {
>       var initContent = function(guest) {
>           guest['icon'] = guest['icon'] || 'images/icon-vm.png';
>           $('#form-guest-edit-general').fillWithObject(guest);
> +        kimchi.thisVMState = guest['state'];
>
>           refreshCDROMs();
> -
> -        $('#guest-edit-attach-cdrom-button').button({
> -            icons: {
> -                primary: "ui-icon-plusthick"
> -            },
> -            text: false
> -        }).click(function(event) {
> -            event.preventDefault();
> -            kimchi.window.open("guest-storage-add.html");
> -        });
> +        if(kimchi.thisVMState === "running") {
> +            $("#form-guest-edit-general input").prop("disabled", "disabled");
> +            $("#guest-edit-attach-cdrom-button").remove();
> +            $("#form-guest-edit-interface .header button").remove();
> +        } else {
> +            $('#guest-edit-attach-cdrom-button').button({
> +                icons: {
> +                    primary: "ui-icon-plusthick"
> +                },
> +                text: false
> +            }).click(function(event) {
> +                event.preventDefault();
> +                kimchi.window.open("guest-storage-add.html");
> +            });
> +            $("#action-button-container").removeClass("hidden");
> +        }
>
>           var onAttached = function(params) {
>               refreshCDROMs();
> diff --git a/ui/js/src/kimchi.guest_main.js b/ui/js/src/kimchi.guest_main.js
> index 320847e..5cbdb40 100644
> --- a/ui/js/src/kimchi.guest_main.js
> +++ b/ui/js/src/kimchi.guest_main.js
> @@ -253,7 +253,6 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu) {
>       //Setup the VM Actions
>       var guestActions=result.find("div[name=guest-actions]");
>       guestActions.find(".shutoff-disabled").prop('disabled', !vmRunningBool );
> -    guestActions.find(".running-disabled").prop('disabled', vmRunningBool );
>
>       if (vmRunningBool) {
>           guestActions.find(".running-hidden").hide();
> diff --git a/ui/pages/guest-edit.html.tmpl b/ui/pages/guest-edit.html.tmpl
> index ed7ddeb..47615be 100644
> --- a/ui/pages/guest-edit.html.tmpl
> +++ b/ui/pages/guest-edit.html.tmpl
> @@ -145,7 +145,7 @@
>           </div>
>       </div>
>       <footer>
> -        <div id="action-button-container" class="btn-group">
> +        <div id="action-button-container" class="btn-group hidden">
>               <button id="guest-edit-button-save" class="btn-normal">
>                   <span class="text">$_("Save")</span>
>               </button>




More information about the Kimchi-devel mailing list