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.

 CreateBrick will be enabled only when there is a free device(Device
with canCreateBrick flag true) selected and there is no used
device (Device with canCreateBrick false) selected.

 Only selected devices will be shown in the create brick dialog
instead of all available devices.

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


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/96/40196/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 ea1a38d..faefb42 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
@@ -132,30 +132,9 @@
         lvModel.setHashName("create_brick"); //$NON-NLS-1$
         
lvModel.startProgress(ConstantsManager.getInstance().getConstants().fetchingDataMessage());
         setWindow(lvModel);
-
-        AsyncQuery asyncQueryForDeviceList = new AsyncQuery();
-        asyncQueryForDeviceList.setModel(lvModel);
-        asyncQueryForDeviceList.asyncCallback = new INewAsyncCallback() {
-
-            @Override
-            public void onSuccess(Object model, Object returnValue) {
-                lvModel.stopProgress();
-                CreateBrickModel lvModel = (CreateBrickModel) model;
-                List<StorageDevice> devices = (List<StorageDevice>) 
returnValue;
-                final List<StorageDevice> eligibleDevices = new ArrayList<>();
-
-                for (StorageDevice device : devices) {
-                    if (device.getCanCreateBrick()) {
-                        eligibleDevices.add(device);
-                    }
-                }
-                lvModel.getStorageDevices().setItems(eligibleDevices);
-                if (getSelectedItems() != null) {
-                    lvModel.setSelectedDevices(getSelectedItems());
-                }
-            }
-        };
-        
AsyncDataProvider.getInstance().getStorageDevices(asyncQueryForDeviceList, 
host.getId());
+        List<StorageDevice> selectedDevices = getSelectedItems();
+        lvModel.getStorageDevices().setItems(selectedDevices);
+        lvModel.setSelectedDevices(selectedDevices);
 
         AsyncQuery asyncQueryForDefaultMountPoint = new AsyncQuery();
         asyncQueryForDefaultMountPoint.setModel(lvModel);
@@ -186,14 +165,47 @@
                 .runAction(VdcActionType.SyncStorageDevices, new 
VdsActionParameters(getEntity().getId()));
     }
 
+    @Override
+    protected void onSelectedItemChanged() {
+        super.onSelectedItemChanged();
+        updateActionAvailability();
+    }
+
+    @Override
+    protected void selectedItemsChanged()
+    {
+        super.selectedItemsChanged();
+        updateActionAvailability();
+    }
+
     private void updateActionAvailability() {
         VDS vds = getEntity();
-        if (vds != null) {
-            
getSyncStorageDevicesCommand().setIsExecutionAllowed(vds.getStatus() == 
VDSStatus.Up);
-            getCreateBrickCommand().setIsExecutionAllowed(vds.getStatus() == 
VDSStatus.Up);
+        if (vds != null && vds.getStatus() == VDSStatus.Up) {
+            getSyncStorageDevicesCommand().setIsExecutionAllowed(true);
+            getCreateBrickCommand().setIsExecutionAllowed(canCreateBrick());
+        } else {
+            getSyncStorageDevicesCommand().setIsExecutionAllowed(false);
+            getCreateBrickCommand().setIsExecutionAllowed(false);
         }
     }
 
+    private boolean canCreateBrick(){
+        boolean canCreateBrick = false;
+        List<StorageDevice> selectedDevices = getSelectedItems();
+        if (selectedDevices != null) {
+            for (StorageDevice device : selectedDevices) {
+                if (device.getCanCreateBrick()) {
+                    canCreateBrick = true;
+                } else {
+                    canCreateBrick = false;
+                    break;
+                }
+            }
+        }
+
+        return canCreateBrick;
+
+    }
     private void onCreateBrick() {
         CreateBrickModel lvModel = (CreateBrickModel) getWindow();
         if (lvModel == null) {


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iecaff8f5863bd3107ba109e6f1f9d695d8ee67aa
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.5-gluster
Gerrit-Owner: Ramesh N <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to