Ramesh N has uploaded a new change for review.

Change subject: webadmin: fix action availability for create brick
......................................................................

webadmin: fix action availability for create brick

  Enable/Disable create brick action based on the selection of
storage devices.

Change-Id: Iecaff8f5863bd3107ba109e6f1f9d695d8ee67aa
Bug-Url: https://bugzilla.redhat.com/1208125
Signed-off-by: Ramesh Nachimuthu <rnach...@redhat.com>
---
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/HostGlusterStorageDevicesListModel.java
1 file changed, 41 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/39820/1

diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/HostGlusterStorageDevicesListModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/HostGlusterStorageDevicesListModel.java
index 7296ba7..812ca81 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/HostGlusterStorageDevicesListModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/HostGlusterStorageDevicesListModel.java
@@ -186,14 +186,49 @@
                 .runAction(VdcActionType.SyncStorageDevices, new 
VdsActionParameters(getEntity().getId()));
     }
 
-    private void updateActionAvailability() {
-        VDS vds = getEntity();
-        if (vds != null) {
-            
getSyncStorageDevicesCommand().setIsExecutionAllowed(vds.getStatus() == 
VDSStatus.Up);
-            getCreateBrickCommand().setIsExecutionAllowed(vds.getStatus() == 
VDSStatus.Up);
-        }
+    @Override
+    protected void onSelectedItemChanged() {
+        super.onSelectedItemChanged();
+        updateActionAvailability();
     }
 
+    @Override
+    protected void selectedItemsChanged()
+    {
+        super.selectedItemsChanged();
+        updateActionAvailability();
+    }
+
+    private void updateActionAvailability() {
+        VDS vds = getEntity();
+        boolean createBrickAllowed = false;
+        boolean syncStorageDeviceAllowed = false;
+        if (vds != null && vds.getStatus() == VDSStatus.Up) {
+            syncStorageDeviceAllowed = true;
+            createBrickAllowed = !getItems().isEmpty() && canCreateBrick();
+            if (createBrickAllowed && !getSelectedItems().isEmpty()) {
+                for (StorageDevice device : getSelectedItems()) {
+                    if (device.getCanCreateBrick()) {
+                        createBrickAllowed = false;
+                        break;
+                    }
+
+                }
+            }
+        }
+
+        
getSyncStorageDevicesCommand().setIsExecutionAllowed(syncStorageDeviceAllowed);
+        getCreateBrickCommand().setIsExecutionAllowed(createBrickAllowed);
+    }
+
+    private boolean canCreateBrick(){
+        for (StorageDevice device : getItems()) {
+            if (device.getCanCreateBrick()) {
+                return true;
+            }
+        }
+        return false;
+    }
     private void onCreateBrick() {
         CreateBrickModel lvModel = (CreateBrickModel) getWindow();
         if (lvModel == null) {


-- 
To view, visit https://gerrit.ovirt.org/39820
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iecaff8f5863bd3107ba109e6f1f9d695d8ee67aa
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ramesh N <rnach...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to