Sergey Gotliv has uploaded a new change for review.

Change subject: webadmin: Allow editing de-attached disk in UI
......................................................................

webadmin: Allow editing de-attached disk in UI

"Edit" button under VM => Disks is disabled after disk was deattached
from VM. It should be enabled as it was before 3.3.

Change-Id: Ia128fe1dbe74be608d27737146d575c52e131c56
Bug-Url: https://bugzilla.redhat.com/988061
Signed-off-by: Sergey Gotliv <[email protected]>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
3 files changed, 23 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/17292/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
index d777652..b4b717e 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/AbstractDiskModel.java
@@ -295,6 +295,10 @@
 
     protected abstract LunDisk getLunDisk();
 
+    protected boolean isEditEnabled() {
+        return (getVm() != null && getVm().isDown()) || 
!getDisk().getPlugged();
+    }
+
     @Override
     public void initialize() {
         super.initialize();
@@ -458,7 +462,7 @@
                 ConfigurationValues.ShareableDiskEnabled, 
datacenter.getcompatibility_version().getValue());
 
         
getIsShareable().setChangeProhibitionReason(CONSTANTS.shareableDiskNotSupported());
-        getIsShareable().setIsChangable(isShareableDiskEnabled && getVm() != 
null && getVm().isDown());
+        getIsShareable().setIsChangable(isShareableDiskEnabled && 
isEditEnabled());
     }
 
     private void updateDirectLunDiskEnabled(StoragePool datacenter) {
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
index 238f903..f299147 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/EditDiskModel.java
@@ -146,7 +146,7 @@
         getVolumeType().setIsChangable(false);
         getSize().setIsChangable(false);
 
-        if (getVm() == null || !getVm().isDown()) {
+        if (!isEditEnabled()) {
             getDescription().setIsChangable(false);
             getAlias().setIsChangable(false);
             getIsShareable().setIsChangable(false);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
index 162db25..9af840c 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmDiskListModel.java
@@ -547,20 +547,15 @@
     private void updateActionAvailability()
     {
         Disk disk = (Disk) getSelectedItem();
-        boolean isDiskLocked = disk != null && disk.getDiskStorageType() == 
DiskStorageType.IMAGE &&
-                ((DiskImage) disk).getImageStatus() == ImageStatus.LOCKED;
 
         getNewCommand().setIsExecutionAllowed(true);
 
-        boolean isExtendImageSizeSupportedAndEnabled = 
isExtendImageSizeSupported() && isExtendImageSizeEnabled();
-        getEditCommand().setIsExecutionAllowed(getSelectedItem() != null && 
getSelectedItems() != null
-                && getSelectedItems().size() == 1 && disk.getPlugged() && 
!isDiskLocked &&
-                (isVmDown() || isExtendImageSizeSupportedAndEnabled));
+        getEditCommand().setIsExecutionAllowed(disk != null && 
isSingleDiskSelected() && !isDiskLocked(disk) &&
+                (isVmDown() || !disk.getPlugged() || 
(isExtendImageSizeSupported() && isExtendImageSizeEnabled())));
 
-        getRemoveCommand().setIsExecutionAllowed(getSelectedItems() != null && 
getSelectedItems().size() > 0
-                && isRemoveCommandAvailable());
+        getRemoveCommand().setIsExecutionAllowed(atLeastOneDiskSelected() && 
isRemoveCommandAvailable());
 
-        getMoveCommand().setIsExecutionAllowed(getSelectedItems() != null && 
getSelectedItems().size() > 0
+        getMoveCommand().setIsExecutionAllowed(atLeastOneDiskSelected()
                 && (isMoveCommandAvailable() || isLiveMoveCommandAvailable()));
 
         updateGetAlignmentCommandAvailability();
@@ -580,6 +575,19 @@
         return vm != null && vm.getStatus() == VMStatus.Down;
     }
 
+    private boolean isDiskLocked(Disk disk) {
+        return disk != null && disk.getDiskStorageType() == 
DiskStorageType.IMAGE &&
+                ((DiskImage) disk).getImageStatus() == ImageStatus.LOCKED;
+    }
+
+    private boolean isSingleDiskSelected() {
+        return getSelectedItems() != null && getSelectedItems().size() == 1;
+    }
+
+    private boolean atLeastOneDiskSelected() {
+        return getSelectedItems() != null && getSelectedItems().size() > 0;
+    }
+
     public boolean isHotPlugAvailable() {
         VM vm = getEntity();
         return vm != null && (vm.getStatus() == VMStatus.Up ||


-- 
To view, visit http://gerrit.ovirt.org/17292
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia128fe1dbe74be608d27737146d575c52e131c56
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Sergey Gotliv <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to