Roy Golan has uploaded a new change for review.

Change subject: core: fix issue with search on OSs
......................................................................

core: fix issue with search on OSs

* fix the search validation of template
* on UI load - set the search dependencies once the cache population is done - 
prevents null list of OSs
* make the auto-completion case insensitive
* show the full list when the input is blank

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1003804
Change-Id: I9434189173939ba595862a40483d8da5107228b2
Signed-off-by: Roy Golan <rgo...@redhat.com>
---
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/OsValueAutoCompleter.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmTemplateConditionFieldAutoCompleter.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
4 files changed, 16 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/43/20743/1

diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/OsValueAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/OsValueAutoCompleter.java
index a3fe8db..f74c2f1 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/OsValueAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/OsValueAutoCompleter.java
@@ -6,7 +6,6 @@
 
 public class OsValueAutoCompleter implements IConditionValueAutoCompleter {
 
-    private static String[] EMPTY_COMPLETION_LIST = new String[]{};
     private Map<Integer, String> map;
 
     public OsValueAutoCompleter(Map<Integer, String> vmCompletionMap) {
@@ -16,7 +15,7 @@
     @Override
     public String convertFieldEnumValueToActualValue(String fieldValue) {
         for (Map.Entry<Integer, String> e : map.entrySet()) {
-            if (fieldValue.startsWith(e.getValue())) {
+            if (fieldValue.toLowerCase().startsWith(e.getValue())) {
                 return e.getKey().toString();
             }
         }
@@ -26,11 +25,11 @@
     @Override
     public String[] getCompletion(String wordPart) {
         if (wordPart == null || wordPart.isEmpty()) {
-            return EMPTY_COMPLETION_LIST;
+            return map.values().toArray(new String[]{});
         }
         List<String> list = new ArrayList<String>();
         for (String osName : map.values()) {
-            if (osName.startsWith(wordPart)) {
+            if (osName.contains(wordPart)) {
                 list.add(osName);
             }
         }
@@ -39,7 +38,13 @@
 
     @Override
     public boolean validate(String text) {
-        return true;
+        text = text.trim().toLowerCase();
+        for (String os : map.values()) {
+            if (os.equals(text)) {
+                return true;
+            }
+        }
+        return false;
     }
 
     @Override
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmTemplateConditionFieldAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmTemplateConditionFieldAutoCompleter.java
index 55b620a..e7d6544 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmTemplateConditionFieldAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/VmTemplateConditionFieldAutoCompleter.java
@@ -27,7 +27,7 @@
         getTypeDictionary().put("NAME", String.class);
         getTypeDictionary().put("COMMENT", String.class);
         getTypeDictionary().put("DOMAIN", String.class);
-        getTypeDictionary().put("OS", Integer.class);
+        getTypeDictionary().put("OS", String.class);
         getTypeDictionary().put("CREATIONDATE", java.util.Date.class);
         getTypeDictionary().put("CHILDCOUNT", Integer.class);
         getTypeDictionary().put("MEM", Integer.class);
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
index 028ee82..2025044 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/system/BaseApplicationInit.java
@@ -1,8 +1,6 @@
 package org.ovirt.engine.ui.common.system;
 
 import org.ovirt.engine.core.common.users.VdcUser;
-import org.ovirt.engine.core.common.utils.SimpleDependecyInjector;
-import org.ovirt.engine.core.searchbackend.OsValueAutoCompleter;
 import org.ovirt.engine.ui.common.auth.AutoLoginData;
 import org.ovirt.engine.ui.common.auth.CurrentUser;
 import org.ovirt.engine.ui.common.auth.CurrentUser.LogoutHandler;
@@ -12,7 +10,6 @@
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.uicommonweb.ITypeResolver;
 import org.ovirt.engine.ui.uicommonweb.TypeResolver;
-import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicommonweb.models.LoginModel;
 import org.ovirt.engine.ui.uicompat.Event;
 import org.ovirt.engine.ui.uicompat.EventArgs;
@@ -139,8 +136,6 @@
 
         Frontend.setFilterQueries(filterFrontendQueries());
 
-        // Initialize specific UI dependencies for search
-        SimpleDependecyInjector.getInstance().bind(new 
OsValueAutoCompleter(AsyncDataProvider.getOsUniqueOsNames()));
     }
 
     /**
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
index 1677314..c23061f 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
@@ -115,6 +115,8 @@
 import 
org.ovirt.engine.core.common.queries.gluster.GlusterServiceQueryParameters;
 import 
org.ovirt.engine.core.common.queries.gluster.GlusterVolumeAdvancedDetailsParameters;
 import 
org.ovirt.engine.core.common.queries.gluster.GlusterVolumeQueriesParameters;
+import org.ovirt.engine.core.common.utils.Pair;
+import org.ovirt.engine.core.common.utils.SimpleDependecyInjector;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.IntegerCompat;
 import org.ovirt.engine.core.compat.KeyValuePairCompat;
@@ -122,6 +124,7 @@
 import org.ovirt.engine.core.compat.RpmVersion;
 import org.ovirt.engine.core.compat.StringHelper;
 import org.ovirt.engine.core.compat.Version;
+import org.ovirt.engine.core.searchbackend.OsValueAutoCompleter;
 import org.ovirt.engine.ui.frontend.AsyncQuery;
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.IAsyncConverter;
@@ -3061,6 +3064,8 @@
             @Override
             public void onSuccess(Object model, Object returnValue) {
                 uniqueOsNames = (HashMap<Integer, String>) 
((VdcQueryReturnValue) returnValue).getReturnValue();
+                // Initialize specific UI dependencies for search
+                SimpleDependecyInjector.getInstance().bind(new 
OsValueAutoCompleter(uniqueOsNames));
             }
         };
         Frontend.RunQuery(VdcQueryType.OsRepository, new 
OsQueryParameters(OsRepositoryVerb.GetUniqueOsNames), callback);


-- 
To view, visit http://gerrit.ovirt.org/20743
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9434189173939ba595862a40483d8da5107228b2
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Roy Golan <rgo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to