Yair Zaslavsky has uploaded a new change for review. Change subject: aaa: disabling "go" search button when there are no namespaces ......................................................................
aaa: disabling "go" search button when there are no namespaces Change-Id: I4eb1ed2648f3dccc39af9adf409d8c0ec73b2a6f Topic: AAA Signed-off-by: Yair Zaslavsky <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAvailableNamespacesQuery.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/permissions/AbstractPermissionsPopupPresenterWidget.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java 4 files changed, 57 insertions(+), 26 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/74/32474/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAvailableNamespacesQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAvailableNamespacesQuery.java index 35104f8..b27d9c7 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAvailableNamespacesQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetAvailableNamespacesQuery.java @@ -1,6 +1,5 @@ package org.ovirt.engine.core.bll; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -28,7 +27,7 @@ protected void executeQueryCommand() { HashMap<String, List<String>> namespacesMap = new HashMap<>(); for (ExtensionProxy authz: EngineExtensionsManager.getInstance().getExtensionsByService(Authz.class.getName())) { - for (String namespace : authz.getContext().get(Authz.ContextKeys.AVAILABLE_NAMESPACES, Arrays.asList("*"))) { + for (String namespace : authz.getContext().get(Authz.ContextKeys.AVAILABLE_NAMESPACES, Collections.<String>emptyList())) { MultiValueMapUtils.addToMap(AuthzUtils.getName(authz), namespace, namespacesMap); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/permissions/AbstractPermissionsPopupPresenterWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/permissions/AbstractPermissionsPopupPresenterWidget.java index c077684..9c1ed91 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/permissions/AbstractPermissionsPopupPresenterWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/permissions/AbstractPermissionsPopupPresenterWidget.java @@ -107,6 +107,24 @@ } })); + model.getProfile().getSelectedItemChangedEvent().addListener(new IEventListener() { + + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + model.populateNamespaces(); + } + }); + + model.getNamespace().getItemsChangedEvent().addListener(new IEventListener() { + + @Override + public void eventRaised(Event ev, Object sender, EventArgs args) { + getView().getSearchButton() + .getCommand() + .setIsExecutionAllowed(model.availableNamespaces()); + } + }); + model.getIsRoleListHiddenModel().getPropertyChangedEvent().addListener(new IEventListener() { @Override public void eventRaised(Event ev, Object sender, EventArgs args) { diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java index 0da873a..9c11099 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Linq.java @@ -600,11 +600,12 @@ public static <TSource> TSource firstOrDefault(Iterable<TSource> source) { - for (TSource item : source) - { - return item; + if (source != null) { + for (TSource item : source) + { + return item; + } } - return null; } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java index fa1e187..6d56315 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/users/AdElementListModel.java @@ -30,7 +30,6 @@ import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; -import org.ovirt.engine.ui.uicompat.IEventListener; import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs; public class AdElementListModel extends SearchableListModel @@ -48,7 +47,7 @@ private Iterable privateExcludeItems; - private HashMap<String, List<String>> namespacesMap; + private HashMap<String, List<String>> namespacesMap = new HashMap<String, List<String>>(); public Iterable getExcludeItems() { @@ -153,6 +152,8 @@ private boolean isEveryoneSelected; + private List<ProfileEntry> profileEntries; + public boolean getIsEveryoneSelected() { return isEveryoneSelected; @@ -193,25 +194,17 @@ @Override public void onSuccess(Object model, Object result) { - populateProfiles((List<ProfileEntry>) result); - getProfile().getSelectedItemChangedEvent().addListener(new IEventListener() { + setProfileEntries((List<ProfileEntry>) result); + AsyncDataProvider.getAAANamespaces(new AsyncQuery(this, new INewAsyncCallback() { + @Override - public void eventRaised(Event ev, Object sender, EventArgs args) { - populateNamespaces(); + public void onSuccess(Object model, Object result) { + namespacesMap = (HashMap<String, List<String>>) result; + populateProfiles(getProfileEntries()); } - }); + })); } - })); - AsyncDataProvider.getAAANamespaces(new AsyncQuery(this, new INewAsyncCallback() { - - @Override - public void onSuccess(Object model, Object result) { - if (getProfile().getSelectedItem() != null) { - namespacesMap = (HashMap<String, List<String>>) result; - populateNamespaces(); - } - } })); AsyncDataProvider.getRoleList(new AsyncQuery(this, new INewAsyncCallback() { @@ -226,13 +219,24 @@ protected void populateProfiles(List<ProfileEntry> profiles) { getProfile().setItems(profiles); - getProfile().setSelectedItem(Linq.firstOrDefault(profiles)); + getProfile().setSelectedItem(Linq.firstOrDefault(getProfile().getItems())); } - protected void populateNamespaces() { + public void populateNamespaces() { if (namespacesMap != null) { - getNamespace().setItems(namespacesMap.get(((ProfileEntry) getProfile().getSelectedItem()).getAuthz())); + getNamespace().setItems(getAuthzNamespaces()); + getNamespace().setSelectedItem(Linq.firstOrDefault(getNamespace().getItems())); + } + } + + protected void setProfileEntries(List<ProfileEntry> value) { + profileEntries = value; + } + + protected List<ProfileEntry> getProfileEntries() { + return profileEntries; + } protected void populateRoles(List<Role> roles){ @@ -451,6 +455,10 @@ } } + public boolean availableNamespaces() { + return getAuthzNamespaces() != null && !getAuthzNamespaces().isEmpty(); + } + @Override protected String getListName() { return "AdElementListModel"; //$NON-NLS-1$ @@ -475,4 +483,9 @@ return false; } + private List<String> getAuthzNamespaces() { + ProfileEntry profileEntry = (ProfileEntry) getProfile().getSelectedItem(); + return profileEntry != null ? namespacesMap.get(profileEntry.getAuthz()) : Collections.<String> emptyList(); + } + } -- To view, visit http://gerrit.ovirt.org/32474 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4eb1ed2648f3dccc39af9adf409d8c0ec73b2a6f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Yair Zaslavsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
