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
