Daniel Erez has uploaded a new change for review. Change subject: webadmin: enable Edit button for non-active block SDs (#850733) ......................................................................
webadmin: enable Edit button for non-active block SDs (#850733) https://bugzilla.redhat.com/850733 Storage main-tab: Enabling 'Edit' button when a non-active block storage domain is selected - the 'Edit Domain' dialog should be opened in view-only mode (merely for displaying domain's information). Change-Id: I2bfe64fe10ebe1ddbdd5d8df475b176db5cd9794 Signed-off-by: Daniel Erez <de...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.ui.xml M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiTargetToLunView.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java 6 files changed, 76 insertions(+), 27 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/7592/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.java index 31b7e2f..2fca961 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.java @@ -16,6 +16,7 @@ import org.ovirt.engine.ui.uicommonweb.models.storage.SanStorageModelBase; import com.google.gwt.core.client.GWT; +import com.google.gwt.dom.client.Style.Visibility; import com.google.gwt.editor.client.SimpleBeanEditorDriver; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; @@ -31,6 +32,7 @@ import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.AbstractImagePrototype; import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ToggleButton; import com.google.gwt.user.client.ui.VerticalPanel; @@ -49,6 +51,9 @@ @UiField WidgetStyle style; + + @UiField + HorizontalPanel discoverTargetsLabelPanel; @UiField @Ignore @@ -217,6 +222,11 @@ }); } + public void setEnabled(boolean enabled) { + Visibility visibility = enabled ? Visibility.VISIBLE : Visibility.HIDDEN; + discoverTargetsLabelPanel.getElement().getStyle().setVisibility(visibility); + } + @Override public SanStorageModelBase flush() { return Driver.driver.flush(); diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.ui.xml b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.ui.xml index 4589853..ffa9473 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.ui.xml +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiDiscoverTargetsView.ui.xml @@ -100,7 +100,7 @@ </ui:style> <g:FlowPanel> - <g:HorizontalPanel addStyleNames="{style.discoverTargetsLabelPanel}"> + <g:HorizontalPanel ui:field="discoverTargetsLabelPanel" addStyleNames="{style.discoverTargetsLabelPanel}"> <g:ToggleButton ui:field="discoverTargetsImageButton" addStyleNames="{style.discoverTargetsImageButton}" /> </g:HorizontalPanel> <g:VerticalPanel ui:field="discoverTargetsPanel" addStyleNames="{style.collapsedDiscoverTargetsPanel}"> diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiTargetToLunView.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiTargetToLunView.java index 60a2100..b14ab44 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiTargetToLunView.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/storage/IscsiTargetToLunView.java @@ -99,6 +99,9 @@ // Add view widgets to panel targetsToLunsDiscoverPanel.add(iscsiDiscoverTargetsView); targetsListPanel.add(sanStorageTargetToLunList); + + // Disable Discover widget in view-only mode + iscsiDiscoverTargetsView.setEnabled(object.getContainer().getIsChangable()); } @Override diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java index 94c35c1..5868980 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/SanStorageModel.java @@ -123,6 +123,10 @@ { super.UpdateInternal(); + if (!getContainer().isStorageActive()) { + return; + } + VDS host = (VDS) getContainer().getHost().getSelectedItem(); if (host == null) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java index 3f3097d..47b9cee 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageListModel.java @@ -349,6 +349,12 @@ model.getDataCenter().setIsChangable(false); model.getFormat().setIsChangable(false); + boolean isStorageActive = model.isStorageActive(); + model.getName().setIsChangable(isStorageActive); + model.getHost().setIsChangable(isStorageActive); + model.getAvailableStorageItems().setIsChangable(isStorageActive); + model.setIsChangable(isStorageActive); + IStorageModel item = null; switch (storage.getstorage_type()) { case NFS: @@ -389,17 +395,24 @@ } } - UICommand command; - command = new UICommand("OnSave", this); //$NON-NLS-1$ - command.setTitle(ConstantsManager.getInstance().getConstants().ok()); - command.setIsDefault(true); - model.getCommands().add(command); + if (isStorageActive) { + command = new UICommand("OnSave", this); //$NON-NLS-1$ + command.setTitle(ConstantsManager.getInstance().getConstants().ok()); + command.setIsDefault(true); + model.getCommands().add(command); - command = new UICommand("Cancel", this); //$NON-NLS-1$ - command.setTitle(ConstantsManager.getInstance().getConstants().cancel()); - command.setIsCancel(true); - model.getCommands().add(command); + command = new UICommand("Cancel", this); //$NON-NLS-1$ + command.setTitle(ConstantsManager.getInstance().getConstants().cancel()); + command.setIsCancel(true); + model.getCommands().add(command); + } + else { + command = new UICommand("Cancel", this); //$NON-NLS-1$ + command.setTitle(ConstantsManager.getInstance().getConstants().close()); + command.setIsCancel(true); + model.getCommands().add(command); + } } private IStorageModel PrepareNfsStorageForEdit(storage_domains storage) @@ -502,29 +515,33 @@ return model; } - private void PrepareSanStorageForEdit(SanStorageModel model) + private void PrepareSanStorageForEdit(final SanStorageModel model) { StorageModel storageModel = (StorageModel) getWindow(); - final SanStorageModel sanStorageModel = model; - storageModel.getHost().getSelectedItemChangedEvent().addListener(new IEventListener() { - @Override - public void eventRaised(Event ev, Object sender, EventArgs args) { - PostPrepareSanStorageForEdit(sanStorageModel); - } - }); + storage_domains storage = (storage_domains) getSelectedItem(); + boolean isStorageActive = storageModel.isStorageActive(); + + if (isStorageActive) { + storageModel.getHost().getSelectedItemChangedEvent().addListener(new IEventListener() { + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + PostPrepareSanStorageForEdit(model, true); + } + }); + } + else { + PostPrepareSanStorageForEdit(model, false); + } } - private void PostPrepareSanStorageForEdit(SanStorageModel model) + private void PostPrepareSanStorageForEdit(SanStorageModel model, boolean isStorageActive) { StorageModel storageModel = (StorageModel) getWindow(); storage_domains storage = (storage_domains) getSelectedItem(); model.setStorageDomain(storage); VDS host = (VDS) storageModel.getHost().getSelectedItem(); - - if (host == null) { - return; - } + Guid hostId = host != null && isStorageActive ? host.getId() : null; AsyncDataProvider.GetLunsByVgId(new AsyncQuery(model, new INewAsyncCallback() { @Override @@ -533,7 +550,7 @@ ArrayList<LUNs> lunList = (ArrayList<LUNs>) returnValue; sanStorageModel.ApplyData(lunList, true); } - }), storage.getstorage(), host.getId()); + }, storageModel.getHash()), storage.getstorage(), hostId); } private void ImportDomain() @@ -1035,9 +1052,7 @@ getNewDomainCommand().setIsAvailable(true); - getEditCommand().setIsExecutionAllowed(item != null - && items.size() == 1 - && (item.getstorage_domain_shared_status() == StorageDomainSharedStatus.Active || item.getstorage_domain_shared_status() == StorageDomainSharedStatus.Mixed)); + getEditCommand().setIsExecutionAllowed(items.size() == 1 && isEditAvailable(item)); getRemoveCommand().setIsExecutionAllowed(items.size() == 1 && Linq.FindAllStorageDomainsBySharedStatus(items, StorageDomainSharedStatus.Unattached).size() == items.size()); @@ -1052,6 +1067,18 @@ getRemoveCommand().setIsAvailable(isAvailable); } + private boolean isEditAvailable(storage_domains storageDomain) { + if (storageDomain == null) { + return false; + } + + boolean isActive = storageDomain.getstorage_domain_shared_status() == StorageDomainSharedStatus.Active + || storageDomain.getstorage_domain_shared_status() == StorageDomainSharedStatus.Mixed; + boolean isBlockStorage = storageDomain.getstorage_type().isBlockDomain(); + + return isBlockStorage ? true : isActive; + } + @Override public void ExecuteCommand(UICommand command) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java index f714d9b..c7bb088 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/StorageModel.java @@ -719,4 +719,9 @@ { privateSystemTreeSelectedItem = value; } + + public boolean isStorageActive() { + return getStorage().getstorage_domain_shared_status() == StorageDomainSharedStatus.Active + || getStorage().getstorage_domain_shared_status() == StorageDomainSharedStatus.Mixed; + } } -- To view, visit http://gerrit.ovirt.org/7592 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2bfe64fe10ebe1ddbdd5d8df475b176db5cd9794 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Daniel Erez <de...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches