diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java index 166594ad17c..2fbf1f02140 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java @@ -232,7 +232,7 @@ protected String getSearchByNameParameterValue() { protected Search createSearch() { return SearchFactory.createSearch(type.getClassDefinition(), isCollectionViewPanelForCompiledView() ? getCollectionNameParameterValue().toString() : null, - null, getPageBase(), true); + getFixedSearchItems(), null, getPageBase(), true); } private BoxedTablePanel> createTable() { @@ -784,6 +784,12 @@ protected boolean isCollectionViewPanelForWidget() { return false; } + protected List getFixedSearchItems() { + List fixedSearchItems = new ArrayList<>(); + fixedSearchItems.add(ObjectType.F_NAME); + return fixedSearchItems; + } + protected boolean isCollectionViewPanelForCompiledView() { return getCollectionNameParameterValue() != null && getCollectionNameParameterValue().toString() != null; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java index 0facdf7666f..f32153f1ca3 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchFactory.java @@ -10,7 +10,7 @@ import java.lang.reflect.Modifier; import java.util.*; -import org.apache.cxf.common.util.CollectionUtils; +import org.apache.commons.collections.CollectionUtils; import com.evolveum.midpoint.gui.api.page.PageBase; import com.evolveum.midpoint.gui.api.util.ModelServiceLocator; @@ -72,6 +72,7 @@ public class SearchFactory { ItemPath.create(RoleType.F_ROLE_TYPE))); SEARCHABLE_OBJECTS.put(ServiceType.class, Arrays.asList( ItemPath.create(ServiceType.F_NAME), + ItemPath.create(RoleType.F_DISPLAY_NAME), ItemPath.create(ServiceType.F_SERVICE_TYPE), ItemPath.create(ServiceType.F_URL))); SEARCHABLE_OBJECTS.put(ConnectorHostType.class, Arrays.asList( @@ -180,11 +181,11 @@ public static Search createSearch(Class type, ModelSer public static Search createSearch( Class type, ResourceShadowDiscriminator discriminator, ModelServiceLocator modelServiceLocator, boolean useDefsFromSuperclass) { - return createSearch(type, null, discriminator, modelServiceLocator, useDefsFromSuperclass); + return createSearch(type, null, null, discriminator, modelServiceLocator, useDefsFromSuperclass); } public static Search createSearch( - Class type, String collectionViewName, ResourceShadowDiscriminator discriminator, + Class type, String collectionViewName, List fixedSearchItems, ResourceShadowDiscriminator discriminator, ModelServiceLocator modelServiceLocator, boolean useDefsFromSuperclass) { PrismObjectDefinition objectDef = findObjectDefinition(type, discriminator, modelServiceLocator); @@ -214,11 +215,17 @@ public static Search createSearch( } }); } else { - PrismPropertyDefinition def = objDef.findPropertyDefinition(ObjectType.F_NAME); - SearchItem item = search.addItem(def); - if (item != null) { - item.setFixed(true); + if (CollectionUtils.isEmpty(fixedSearchItems)) { + fixedSearchItems = new ArrayList<>(); + fixedSearchItems.add(ObjectType.F_NAME); } + fixedSearchItems.forEach(searchItemPath -> { + PrismPropertyDefinition def = objDef.findPropertyDefinition(searchItemPath); + SearchItem item = search.addItem(def); + if (item != null) { + item.setFixed(true); + } + }); } search.setCanConfigure(isAllowToConfigureSearchItems(modelServiceLocator, type, collectionViewName)); return search; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminObjectList.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminObjectList.java index ae7baff66ef..fec45fb1cc5 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminObjectList.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/PageAdminObjectList.java @@ -6,8 +6,19 @@ */ package com.evolveum.midpoint.web.page.admin; +import java.util.Collection; +import java.util.List; + +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; +import org.apache.wicket.extensions.markup.html.repeater.util.SortParam; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.model.IModel; +import org.apache.wicket.request.mapper.parameter.PageParameters; + import com.evolveum.midpoint.gui.api.component.MainObjectListPanel; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.prism.query.ObjectOrdering; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.schema.GetOperationOptions; @@ -20,15 +31,6 @@ import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; -import org.apache.wicket.extensions.markup.html.repeater.util.SortParam; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.model.IModel; -import org.apache.wicket.request.mapper.parameter.PageParameters; - -import java.util.Collection; -import java.util.List; /** * Created by honchar @@ -132,6 +134,11 @@ protected IColumn, String> createCheckboxColumn() { protected boolean getNewObjectGenericButtonVisibility() { return PageAdminObjectList.this.getNewObjectGenericButtonVisibility(); } + + @Override + protected List getFixedSearchItems() { + return PageAdminObjectList.this.getFixedSearchItems(); + } }; userListPanel.setAdditionalBoxCssClasses(WebComponentUtil.getBoxCssClasses(WebComponentUtil.classToQName(getPrismContext(), getType()))); @@ -159,6 +166,9 @@ protected boolean isCreateNewObjectEnabled(){ return true; } + protected List getFixedSearchItems() { + return null; + } protected ObjectQuery addCustomFilterToContentQuery(ObjectQuery query){ return query; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java index 1290dce31ff..87732f3ff72 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java @@ -8,6 +8,7 @@ package com.evolveum.midpoint.web.page.admin.roles; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.security.api.AuthorizationConstants; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; @@ -19,7 +20,6 @@ import com.evolveum.midpoint.web.component.search.Search; import com.evolveum.midpoint.web.component.util.FocusListInlineMenuHelper; import com.evolveum.midpoint.web.component.util.SelectableBean; -import com.evolveum.midpoint.web.component.util.SelectableBeanImpl; import com.evolveum.midpoint.web.page.admin.PageAdminObjectList; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; @@ -30,6 +30,7 @@ import org.apache.wicket.model.IModel; import org.apache.wicket.request.mapper.parameter.PageParameters; +import java.util.ArrayList; import java.util.List; /** @@ -111,4 +112,13 @@ private boolean isShowConfirmationDialog(ColumnMenuAction action){ return action.getRowModel() != null || getObjectListPanel().getSelectedObjectsCount() > 0; } + + @Override + protected List getFixedSearchItems() { + List fixedSearchItems = new ArrayList<>(); + fixedSearchItems.add(ObjectType.F_NAME); + fixedSearchItems.add(AbstractRoleType.F_DISPLAY_NAME); + fixedSearchItems.add(AbstractRoleType.F_IDENTIFIER); + return fixedSearchItems; + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/services/PageServices.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/services/PageServices.java index 302798684ce..d3b21d50b5d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/services/PageServices.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/services/PageServices.java @@ -8,6 +8,7 @@ package com.evolveum.midpoint.web.page.admin.services; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; +import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.security.api.AuthorizationConstants; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; @@ -19,17 +20,20 @@ import com.evolveum.midpoint.web.component.search.Search; import com.evolveum.midpoint.web.component.util.FocusListInlineMenuHelper; import com.evolveum.midpoint.web.component.util.SelectableBean; -import com.evolveum.midpoint.web.component.util.SelectableBeanImpl; import com.evolveum.midpoint.web.page.admin.PageAdminObjectList; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; +import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.model.IModel; import org.apache.wicket.request.mapper.parameter.PageParameters; +import java.util.ArrayList; import java.util.List; @@ -120,4 +124,13 @@ private boolean isShowConfirmationDialog(ColumnMenuAction action){ getObjectListPanel().getSelectedObjectsCount() > 0; } + @Override + protected List getFixedSearchItems() { + List fixedSearchItems = new ArrayList<>(); + fixedSearchItems.add(ObjectType.F_NAME); + fixedSearchItems.add(AbstractRoleType.F_DISPLAY_NAME); + fixedSearchItems.add(AbstractRoleType.F_IDENTIFIER); + return fixedSearchItems; + } + } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java index 8031bae3b80..18b44435c6d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java @@ -8,18 +8,14 @@ package com.evolveum.midpoint.web.page.admin.users; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.List; import com.evolveum.midpoint.gui.api.component.ObjectBrowserPanel; import com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder; import com.evolveum.midpoint.gui.impl.component.icon.IconCssStyle; -import com.evolveum.midpoint.model.api.authentication.CompiledObjectCollectionView; import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.prism.query.ObjectFilter; -import com.evolveum.midpoint.schema.constants.ObjectTypes; -import com.evolveum.midpoint.schema.util.TaskTypeUtil; import com.evolveum.midpoint.util.MiscUtil; import com.evolveum.midpoint.util.exception.ObjectNotFoundException; import com.evolveum.midpoint.util.exception.SchemaException; @@ -27,19 +23,11 @@ import com.evolveum.midpoint.web.component.data.column.*; import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; -import com.evolveum.midpoint.web.component.search.SearchFactory; -import com.evolveum.midpoint.web.component.search.SearchItem; -import com.evolveum.midpoint.web.component.search.SearchValue; import com.evolveum.midpoint.web.component.util.FocusListInlineMenuHelper; import com.evolveum.midpoint.web.component.util.SelectableBeanImpl; import com.evolveum.midpoint.web.page.admin.PageAdminObjectList; -import com.evolveum.midpoint.web.page.admin.configuration.dto.DebugSearchDto; -import com.evolveum.midpoint.web.page.admin.server.TaskTablePanel; -import com.evolveum.midpoint.web.session.PageStorage; -import com.evolveum.midpoint.web.session.SessionStorage; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.apache.commons.lang3.StringUtils; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; @@ -68,7 +56,6 @@ import com.evolveum.midpoint.web.application.AuthorizationAction; import com.evolveum.midpoint.web.application.PageDescriptor; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; -import com.evolveum.midpoint.web.component.search.Search; import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.page.admin.users.component.ExecuteChangeOptionsDto; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; @@ -396,6 +383,16 @@ protected UserProfileStorage.TableId getTableId(){ return TableId.TABLE_USERS; } + @Override + protected List getFixedSearchItems() { + List fixedSearchItems = new ArrayList<>(); + fixedSearchItems.add(UserType.F_NAME); + fixedSearchItems.add(UserType.F_GIVEN_NAME); + fixedSearchItems.add(UserType.F_FAMILY_NAME); + fixedSearchItems.add(UserType.F_EMAIL_ADDRESS); + return fixedSearchItems; + } + private MainObjectListPanel getTable() { return (MainObjectListPanel) get(createComponentPath(ID_MAIN_FORM, ID_TABLE)); }