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