Skip to content

Commit

Permalink
role members filter fix; abstract role search items labels/help clean…
Browse files Browse the repository at this point in the history
…up and fix
  • Loading branch information
Kateryna Honchar committed Apr 28, 2022
1 parent d833f59 commit 53ca4a3
Show file tree
Hide file tree
Showing 8 changed files with 125 additions and 75 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
import com.evolveum.midpoint.gui.impl.page.admin.abstractrole.component.MemberOperationsHelper;
import com.evolveum.midpoint.prism.PrismConstants;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismReferenceDefinition;
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterExit;
import com.evolveum.midpoint.schema.constants.ExpressionConstants;
Expand All @@ -22,6 +24,7 @@
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;

import javax.xml.namespace.QName;
import java.util.Collections;
Expand All @@ -31,6 +34,8 @@ public abstract class AbstractRoleSearchItemWrapper extends AbstractSearchItemWr

private static final Trace LOGGER = TraceManager.getTrace(AbstractRoleSearchItemWrapper.class);
private SearchConfigurationWrapper searchConfig;
protected String name;
protected String help;

public static final String F_SEARCH_CONFIG = "searchConfig";

Expand Down Expand Up @@ -155,7 +160,30 @@ private TenantSearchItemWrapper getTenantSearchItemWrapper() {
return null;
}

// public void setSearchConfig(SearchConfigurationWrapper searchConfig) {
// this.searchConfig = searchConfig;
// }
@Override
public String getName() {
return StringUtils.isNotEmpty(name) ? name : getNameResourceKey();
}

public void setName(String name) {
this.name = name;
}

@Override
public String getHelp() {
return StringUtils.isNotEmpty(help) ? help : getHelpResourceKey();
}
public void setHelp(String help) {
this.help = help;
}

protected abstract String getNameResourceKey();
protected abstract String getHelpResourceKey();

protected PrismReferenceDefinition getReferenceDefinition(ItemName refName) {
return PrismContext.get().getSchemaRegistry()
.findContainerDefinitionByCompileTimeClass(AssignmentType.class)
.findReferenceDefinition(refName);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -40,22 +40,15 @@ public DisplayableValue<Boolean> getDefaultValue() {
return new SearchValue<>(Boolean.FALSE);
}


@Override
public String getName() {
// if (getSearchConfig().getConfig().getIndirectConfiguration() == null
// || getSearchConfig().getConfig().getIndirectConfiguration().getDisplay() == null) {
return "abstractRoleMemberPanel.indirectMembers";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getIndirectConfiguration().getDisplay().getLabel());
protected String getNameResourceKey() {
return "abstractRoleMemberPanel.indirectMembers";
}

@Override
public String getHelp() {
// if (getSearchConfig().getConfig().getIndirectConfiguration() == null
// || getSearchConfig().getConfig().getIndirectConfiguration().getDisplay() == null) {
return "abstractRoleMemberPanel.indirectMembers.tooltip";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getIndirectConfiguration().getDisplay().getHelp());
protected String getHelpResourceKey() {
return "abstractRoleMemberPanel.indirectMembers.tooltip";
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
import java.util.List;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;

import org.apache.wicket.Component;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
Expand All @@ -26,7 +29,7 @@ public ProjectSearchItemPanel(String id, IModel<ProjectSearchItemWrapper> search

@Override
protected Component initSearchItemField() {
PrismReferenceDefinition projectRefDef = getProjectRefDef();
PrismReferenceDefinition projectRefDef = getModelObject().getProjectRefDef();
ReferenceValueSearchPanel searchItemField = new ReferenceValueSearchPanel(ID_SEARCH_ITEM_FIELD,
new PropertyModel<>(getModel(), ProjectSearchItemWrapper.F_SEARCH_CONFIG + "." + SearchConfigurationWrapper.F_PROJECT),
projectRefDef) {
Expand All @@ -41,8 +44,5 @@ protected List<QName> getAllowedRelations() {
return searchItemField;
}

protected PrismReferenceDefinition getProjectRefDef() {
return null; //this part is taken from ProjectSearchItem, it is not clear why we return null here
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,18 @@
package com.evolveum.midpoint.gui.impl.component.search;

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismReferenceDefinition;
import com.evolveum.midpoint.util.DisplayableValue;
import com.evolveum.midpoint.web.component.search.SearchValue;

import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;

import com.evolveum.midpoint.xml.ns._public.common.common_3.SearchBoxModeType;

import org.apache.commons.lang3.StringUtils;

public class ProjectSearchItemWrapper extends AbstractRoleSearchItemWrapper{

public ProjectSearchItemWrapper(SearchConfigurationWrapper searchConfig) {
Expand Down Expand Up @@ -41,26 +46,25 @@ public DisplayableValue<ObjectReferenceType> getDefaultValue() {
}

@Override
public String getName() {
// if (getSearchConfig().getConfig().getProjectConfiguration() == null
// || getSearchConfig().getConfig().getProjectConfiguration().getDisplay() == null) {
return "abstractRoleMemberPanel.project";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getProjectConfiguration().getDisplay().getLabel());
protected String getNameResourceKey() {
return "abstractRoleMemberPanel.project";
}

@Override
protected String getHelpResourceKey() {
return "";
}

@Override
public String getHelp() {
// if (getSearchConfig().getConfig().getProjectConfiguration() == null
// || getSearchConfig().getConfig().getProjectConfiguration().getDisplay() == null) {
return "";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getProjectConfiguration().getDisplay().getHelp());
// String help = projectRefDef.getHelp();
// if (StringUtils.isNotEmpty(help)) {
// return getPageBase().createStringResource(help);
// }
// return projectRefDef.getDocumentation();
if (StringUtils.isNotEmpty(help)) {
return help;
}
String help = getProjectRefDef().getHelp();
if (StringUtils.isNotEmpty(help)) {
return help;
}
return getProjectRefDef().getDocumentation();
}

@Override
Expand All @@ -72,4 +76,8 @@ public String getTitle() {
public boolean isApplyFilter(SearchBoxModeType searchBoxMode) {
return true;
}

public PrismReferenceDefinition getProjectRefDef() {
return getReferenceDefinition(AssignmentType.F_ORG_REF);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@

import org.apache.commons.collections4.CollectionUtils;

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.util.DisplayableValue;
import com.evolveum.midpoint.web.component.search.SearchValue;

Expand Down Expand Up @@ -43,20 +42,13 @@ public DisplayableValue<QName> getDefaultValue() {
}

@Override
public String getName() {
// if (getSearchConfig().getRelationConfiguration().getDisplay() == null) {
return "relationDropDownChoicePanel.relation";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getRelationConfiguration().getDisplay().getLabel());
protected String getNameResourceKey() {
return "relationDropDownChoicePanel.relation";
}

@Override
public String getHelp() {
// if (getSearchConfig().getConfig().getRelationConfiguration() == null
// || getSearchConfig().getConfig().getRelationConfiguration().getDisplay() == null) {
return "relationDropDownChoicePanel.tooltip.relation";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getRelationConfiguration().getDisplay().getHelp());
protected String getHelpResourceKey() {
return "relationDropDownChoicePanel.tooltip.relation";
}

@Override
Expand All @@ -66,6 +58,6 @@ public String getTitle() {

@Override
public boolean isApplyFilter(SearchBoxModeType searchBoxMode) {
return !getSearchConfig().getDefaultScope().equals(SearchBoxScopeType.SUBTREE);
return !SearchBoxScopeType.SUBTREE.equals(getSearchConfig().getDefaultScope());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,21 +39,13 @@ public DisplayableValue<SearchBoxScopeType> getDefaultValue() {
}

@Override
public String getName() {
// if (getSearchConfig().getConfig().getScopeConfiguration() == null
// || getSearchConfig().getConfig().getScopeConfiguration().getDisplay() == null) {
return "abstractRoleMemberPanel.searchScope";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getScopeConfiguration().getDisplay().getLabel());
protected String getNameResourceKey() {
return "abstractRoleMemberPanel.searchScope";
}

@Override
public String getHelp() {
// if (getSearchConfig().getConfig().getScopeConfiguration() == null
// || getSearchConfig().getConfig().getScopeConfiguration().getDisplay() == null) {
return "abstractRoleMemberPanel.searchScope.tooltip";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getScopeConfiguration().getDisplay().getHelp());
protected String getHelpResourceKey() {
return "abstractRoleMemberPanel.searchScope.tooltip";
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -460,21 +460,46 @@ public static void createAbstractRoleSearchItemWrapperList(SearchConfigurationWr
searchConfigWrapper.getItemsList().add(new ObjectTypeSearchItemWrapper(config.getObjectTypeConfiguration()));
}
if (config.getRelationConfiguration() != null) {
RelationSearchItemWrapper relation = new RelationSearchItemWrapper(searchConfigWrapper);
if (config.getRelationConfiguration().getDisplay() != null) {
relation.setName(WebComponentUtil.getTranslatedPolyString(config.getRelationConfiguration().getDisplay().getLabel()));
relation.setHelp(WebComponentUtil.getTranslatedPolyString(config.getRelationConfiguration().getDisplay().getHelp()));
}
searchConfigWrapper.getItemsList().add(new RelationSearchItemWrapper(searchConfigWrapper));
}

if (config.getIndirectConfiguration() != null) {
searchConfigWrapper.getItemsList().add(new IndirectSearchItemWrapper(searchConfigWrapper));
IndirectSearchItemWrapper indirect = new IndirectSearchItemWrapper(searchConfigWrapper);
if (config.getIndirectConfiguration().getDisplay() != null) {
indirect.setName(WebComponentUtil.getTranslatedPolyString(config.getIndirectConfiguration().getDisplay().getLabel()));
indirect.setHelp(WebComponentUtil.getTranslatedPolyString(config.getIndirectConfiguration().getDisplay().getHelp()));
}
searchConfigWrapper.getItemsList().add(indirect);
}

if (config.getScopeConfiguration() != null) {
searchConfigWrapper.getItemsList().add(new ScopeSearchItemWrapper(searchConfigWrapper));
ScopeSearchItemWrapper scope = new ScopeSearchItemWrapper(searchConfigWrapper);
if (config.getScopeConfiguration().getDisplay() != null) {
scope.setName(WebComponentUtil.getTranslatedPolyString(config.getScopeConfiguration().getDisplay().getLabel()));
scope.setHelp(WebComponentUtil.getTranslatedPolyString(config.getScopeConfiguration().getDisplay().getHelp()));
}
searchConfigWrapper.getItemsList().add(scope);
}
if (config.getProjectConfiguration() != null) {
searchConfigWrapper.getItemsList().add(new ProjectSearchItemWrapper(searchConfigWrapper));
ProjectSearchItemWrapper project = new ProjectSearchItemWrapper(searchConfigWrapper);
if (config.getProjectConfiguration().getDisplay() != null) {
project.setName(WebComponentUtil.getTranslatedPolyString(config.getProjectConfiguration().getDisplay().getLabel()));
project.setHelp(WebComponentUtil.getTranslatedPolyString(config.getProjectConfiguration().getDisplay().getHelp()));
}
searchConfigWrapper.getItemsList().add(project);
}
if (config.getTenantConfiguration() != null) {
searchConfigWrapper.getItemsList().add(new TenantSearchItemWrapper(searchConfigWrapper));
TenantSearchItemWrapper tenant = new TenantSearchItemWrapper(searchConfigWrapper);
if (config.getTenantConfiguration().getDisplay() != null) {
tenant.setName(WebComponentUtil.getTranslatedPolyString(config.getTenantConfiguration().getDisplay().getLabel()));
tenant.setHelp(WebComponentUtil.getTranslatedPolyString(config.getTenantConfiguration().getDisplay().getHelp()));
}
searchConfigWrapper.getItemsList().add(tenant);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,14 @@
package com.evolveum.midpoint.gui.impl.component.search;

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.PrismReferenceDefinition;
import com.evolveum.midpoint.util.DisplayableValue;
import com.evolveum.midpoint.web.component.search.SearchValue;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SearchBoxScopeType;

import org.apache.commons.lang3.StringUtils;

public class TenantSearchItemWrapper extends AbstractRoleSearchItemWrapper {

public TenantSearchItemWrapper(SearchConfigurationWrapper searchConfig) {
Expand Down Expand Up @@ -38,21 +42,25 @@ public DisplayableValue<SearchBoxScopeType> getDefaultValue() {
}

@Override
public String getName() {
// if (getSearchConfig().getConfig().getTenantConfiguration() == null
// || getSearchConfig().getConfig().getTenantConfiguration().getDisplay() == null) {
return "abstractRoleMemberPanel.tenant";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getTenantConfiguration().getDisplay().getLabel());
protected String getNameResourceKey() {
return "abstractRoleMemberPanel.tenant";
}

@Override
protected String getHelpResourceKey() {
return "";
}

@Override
public String getHelp() {
// if (getSearchConfig().getConfig().getTenantConfiguration() == null
// || getSearchConfig().getConfig().getTenantConfiguration().getDisplay() == null) {
return "";
// }
// return WebComponentUtil.getTranslatedPolyString(getSearchConfig().getConfig().getTenantConfiguration().getDisplay().getHelp());
if (StringUtils.isNotEmpty(help)) {
return help;
}
String help = getTenantDefinition().getHelp();
if (StringUtils.isNotEmpty(help)) {
return help;
}
return getTenantDefinition().getDocumentation();
}

@Override
Expand All @@ -65,4 +73,8 @@ public boolean isApplyFilter() {
return SearchBoxScopeType.SUBTREE.equals(getSearchConfig().getDefaultScope());
}

public PrismReferenceDefinition getTenantDefinition() {
return getReferenceDefinition(AssignmentType.F_TENANT_REF);
}

}

0 comments on commit 53ca4a3

Please sign in to comment.