Skip to content

Commit

Permalink
MID-4086 fix
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Oct 1, 2017
1 parent b71dc2f commit bcad901
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 18 deletions.
Expand Up @@ -278,5 +278,9 @@ private List<String> getObjectOidsList(List<PrismObject<FocusType>> objectList){
return oidsList;
}

@Override
protected boolean isGovernance(){
return true;
}

}
Expand Up @@ -33,7 +33,7 @@
<label><wicket:message key="roleMemberPanel.project" /></label>
<span wicket:id="project" />
</div>
<div class="form-group">
<div wicket:id="indirectMembersContainer" class="form-group">
<label><wicket:message key="roleMemberPanel.indirectMembers" /></label>
<span wicket:id="indirectMembers" />
</div>
Expand Down
Expand Up @@ -16,7 +16,6 @@
package com.evolveum.midpoint.web.page.admin.roles;

import com.evolveum.midpoint.gui.api.component.MainObjectListPanel;
import com.evolveum.midpoint.gui.api.component.ObjectBrowserPanel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
Expand All @@ -31,7 +30,6 @@
import com.evolveum.midpoint.prism.query.TypeFilter;
import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.prism.query.builder.S_AtomicFilterExit;
import com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.util.ObjectTypeUtil;
Expand All @@ -43,22 +41,17 @@
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.assignment.RelationTypes;
import com.evolveum.midpoint.web.component.data.column.CheckBoxPanel;
import com.evolveum.midpoint.web.component.input.ObjectTypeChoiceRenderer;
import com.evolveum.midpoint.web.component.input.QNameChoiceRenderer;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.ChooseTypePanel;
import com.evolveum.midpoint.web.page.admin.dto.ObjectViewDto;
import com.evolveum.midpoint.web.page.admin.users.component.AbstractRoleMemberPanel;
import com.evolveum.midpoint.web.session.UserProfileStorage.TableId;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import org.apache.wicket.Component;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
Expand All @@ -81,6 +74,7 @@ public class RoleMemberPanel<T extends AbstractRoleType> extends AbstractRoleMem
private static final String ID_OBJECT_TYPE = "type";
private static final String ID_TENANT = "tenant";
private static final String ID_PROJECT = "project";
private static final String ID_INDIRECT_MEMBERS_CONTAINER = "indirectMembersContainer";
private static final String ID_INDIRECT_MEMBERS = "indirectMembers";

public RoleMemberPanel(String id, IModel<T> model, PageBase pageBase) {
Expand All @@ -91,10 +85,18 @@ public RoleMemberPanel(String id, IModel<T> model, List<RelationTypes> relations
super(id, TableId.ROLE_MEMEBER_PANEL, model, relations, pageBase);
}

private boolean indirectMembersContainerVisibility() {
return isRole() && !isGovernance();
}

protected boolean isRole() {
return true;
}

protected boolean isGovernance(){
return false;
}

protected PrismContext getPrismContext() {
return getPageBase().getPrismContext();
}
Expand Down Expand Up @@ -194,8 +196,8 @@ private ObjectQuery getActionQuery(QueryScope scope) {

protected ObjectQuery createAllMemberQuery() {
return QueryBuilder.queryFor(FocusType.class, getPrismContext())
.item(FocusType.F_ASSIGNMENT, AssignmentType.F_TARGET_REF)
.ref(createReferenceValuesList()).build();
.item(FocusType.F_ROLE_MEMBERSHIP_REF).ref(createReferenceValuesList())
.build();
}

private List<PrismReferenceValue> createReferenceValuesList() {
Expand Down Expand Up @@ -260,8 +262,6 @@ public boolean isVisible() {
});

ChooseTypePanel<OrgType> project = createParameterPanel(ID_PROJECT, false);
// DropDownChoice<OrgType> project = createDropDown(ID_PROJECT, new Model(),
// createProjectList(), new ObjectTypeChoiceRenderer<OrgType>());
add(project);

project.add(new VisibleEnableBehaviour() {
Expand All @@ -273,16 +273,20 @@ public boolean isVisible() {
return isRole();
}
});


WebMarkupContainer indirectMembersContainer = new WebMarkupContainer(ID_INDIRECT_MEMBERS_CONTAINER);
indirectMembersContainer.setOutputMarkupId(true);
indirectMembersContainer.add(new VisibleBehaviour(this::indirectMembersContainerVisibility));
add(indirectMembersContainer);

CheckBoxPanel includeIndirectMembers = new CheckBoxPanel(ID_INDIRECT_MEMBERS, new Model<Boolean>(false)) {
private static final long serialVersionUID = 1L;

public void onUpdate(AjaxRequestTarget target) {
refreshTable(target);
}
};
add(includeIndirectMembers);
includeIndirectMembers.add(new VisibleBehaviour(this::isRole)); // TODO shouldn't we hide also the label?
indirectMembersContainer.add(includeIndirectMembers);

}

Expand Down Expand Up @@ -386,7 +390,7 @@ protected void recomputeMembersPerformed(QueryScope scope, AjaxRequestTarget tar

@Override
protected ObjectQuery createContentQuery() {
boolean indirect = ((CheckBoxPanel) get(createComponentPath(ID_INDIRECT_MEMBERS))).getValue();
boolean indirect = ((CheckBoxPanel) get(createComponentPath(ID_INDIRECT_MEMBERS_CONTAINER, ID_INDIRECT_MEMBERS))).getValue();

return indirect ? createAllMemberQuery() : createDirectMemberQuery();

Expand Down

0 comments on commit bcad901

Please sign in to comment.