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(a)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>
>