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

Reply via email to