[Kimchi-devel] [PATCH 2/2] Allow admin user change permission settings when VM is running
Wen Wang
wenwang at linux.vnet.ibm.com
Mon Aug 25 01:37:31 UTC 2014
On 8/22/2014 10:23 PM, Aline Manera wrote:
>
> 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.
Agreed.
>
>>>
>>> 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