[Kimchi-devel] [PATCH 2/2] Allow admin user change permission settings when VM is running
Aline Manera
alinefm at linux.vnet.ibm.com
Fri Aug 22 14:23:33 UTC 2014
On 08/22/2014 03:03 AM, Wen Wang wrote:
>
> On 8/22/2014 2:30 AM, Aline Manera wrote:
>>
>> 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?
> I have tried to rebase for the investigation. By adding no code just
> enable the "Edit" button when VM is running, the time-delay still
> exists. So this should probably not be the problem that front-end
> cause. Could you please help with the investigation in the back-end?
> Could it be the problem caused by retrieving information delay when VM
> is running?
Yeap. Seems the usual time responding for requests.
We can discuss how to handle it better for next release.
>>
>> 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.
>>
> I have fixed this in V2
>>
>> 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