Skip to content

Commit

Permalink
MID-7767: fix for using archetype on choose member popup
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Apr 20, 2022
1 parent 2d553fd commit 0b61db5
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,11 @@ protected ObjectTypes getObjectType(){
protected T getAbstractRoleTypeObject(){
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}

@Override
protected List<ObjectReferenceType> getArchetypeRefList() {
return ChooseMemberPopup.this.getArchetypeRefList();
}
};
}

Expand Down Expand Up @@ -201,6 +206,11 @@ protected ObjectTypes getObjectType(){
protected T getAbstractRoleTypeObject(){
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}

@Override
protected List<ObjectReferenceType> getArchetypeRefList() {
return ChooseMemberPopup.this.getArchetypeRefList();
}
};
}

Expand Down Expand Up @@ -242,6 +252,11 @@ protected List<OrgType> getPreselectedObjects(){
return selectedOrgsList;
}

@Override
protected List<ObjectReferenceType> getArchetypeRefList() {
return ChooseMemberPopup.this.getArchetypeRefList();
}

};
}

Expand Down Expand Up @@ -277,6 +292,11 @@ protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableB
protected List<OrgType> getPreselectedObjects(){
return selectedOrgsList;
}

@Override
protected List<ObjectReferenceType> getArchetypeRefList() {
return ChooseMemberPopup.this.getArchetypeRefList();
}
};
}

Expand Down Expand Up @@ -312,6 +332,10 @@ protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableB
tabLabelPanelUpdate(target);
}

@Override
protected List<ObjectReferenceType> getArchetypeRefList() {
return ChooseMemberPopup.this.getArchetypeRefList();
}
};
}

Expand All @@ -324,6 +348,10 @@ public String getCount() {
return tabs;
}

protected List<ObjectReferenceType> getArchetypeRefList() {
return null;
}

protected List<QName> getAvailableObjectTypes(){
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.page.admin.roles.AvailableRelationDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
Expand Down Expand Up @@ -57,6 +58,11 @@ protected void onSelectionPerformed(AjaxRequestTarget target, IModel<SelectableB
protected OrgType getAbstractRoleTypeObject(){
return ChooseOrgMemberPopup.this.getAssignmentTargetRefObject();
}

@Override
protected List<ObjectReferenceType> getArchetypeRefList() {
return ChooseOrgMemberPopup.this.getArchetypeRefList();
}
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ protected void buttonClickPerformed(AjaxRequestTarget target, AssignmentObjectRe
AvailableRelationDto avariableRelations = new AvailableRelationDto(relations, getSupportedRelations().getDefaultRelation());
List<QName> objectTypes = relation != null && !CollectionUtils.isEmpty(relation.getObjectTypes()) ?
relation.getObjectTypes() : null;
assignMembers(target, avariableRelations, objectTypes, relation == null);
assignMembers(target, avariableRelations, objectTypes, relation == null, relation == null ? null : relation.getArchetypeRefs());
}

@Override
Expand Down Expand Up @@ -531,9 +531,9 @@ private AssignmentCandidatesSpecification loadCandidateSpecification(){
}

protected void assignMembers(AjaxRequestTarget target, AvailableRelationDto availableRelationList,
List<QName> objectTypes, boolean isOrgTreePanelVisible) {
List<QName> objectTypes, boolean isOrgTreePanelVisible, List<ObjectReferenceType> archetypeRefs) {
MemberOperationsHelper.assignMembers(getPageBase(), getModelObject(), target, availableRelationList,
objectTypes, isOrgTreePanelVisible);
objectTypes, archetypeRefs, isOrgTreePanelVisible);
}

private void unassignMembersPerformed(AjaxRequestTarget target) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,12 +171,12 @@ private static <R extends AbstractRoleType> void recomputeOrDeleteMembersPerform

public static <O extends ObjectType, R extends AbstractRoleType> void assignMembers(PageBase pageBase, R targetRefObject, AjaxRequestTarget target,
AvailableRelationDto availableRelationList, List<QName> objectTypes) {
assignMembers(pageBase, targetRefObject, target, availableRelationList, objectTypes, true);
assignMembers(pageBase, targetRefObject, target, availableRelationList, objectTypes, null, true);

}

public static <O extends ObjectType, R extends AbstractRoleType> void assignMembers(PageBase pageBase, R targetRefObject, AjaxRequestTarget target,
AvailableRelationDto availableRelationList, List<QName> objectTypes, boolean isOrgTreePanelVisible) {
AvailableRelationDto availableRelationList, List<QName> objectTypes, List<ObjectReferenceType> archetypeRefs, boolean isOrgTreePanelVisible) {

ChooseMemberPopup<O, R> browser = new ChooseMemberPopup<O, R>(pageBase.getMainPopupBodyId(), availableRelationList) {
private static final long serialVersionUID = 1L;
Expand All @@ -195,13 +195,18 @@ protected List<QName> getAvailableObjectTypes(){
protected boolean isOrgTreeVisible(){
return isOrgTreePanelVisible;
}

@Override
protected List<ObjectReferenceType> getArchetypeRefList() {
return archetypeRefs;
}
};
browser.setOutputMarkupId(true);
pageBase.showMainPopup(browser, target);
}

public static <O extends ObjectType> void assignOrgMembers(PageBase pageBase, OrgType targetRefObject, AjaxRequestTarget target,
AvailableRelationDto availableRelationList, List<QName> objectTypes) {
AvailableRelationDto availableRelationList, List<QName> objectTypes, List<ObjectReferenceType> archetypeRefs) {
ChooseOrgMemberPopup<O> browser = new ChooseOrgMemberPopup<O>(pageBase.getMainPopupBodyId(), availableRelationList) {

private static final long serialVersionUID = 1L;
Expand All @@ -215,6 +220,11 @@ protected OrgType getAssignmentTargetRefObject(){
protected List<QName> getAvailableObjectTypes(){
return objectTypes;
}

@Override
protected List<ObjectReferenceType> getArchetypeRefList() {
return archetypeRefs;
}
};

browser.setOutputMarkupId(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import javax.xml.namespace.QName;

import com.evolveum.midpoint.prism.PrismConstants;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.web.session.MemberPanelStorage;
import com.evolveum.midpoint.web.session.PageStorage;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
Expand Down Expand Up @@ -92,8 +91,8 @@ protected SearchBoxScopeType getOrgSearchScope() {

@Override
protected void assignMembers(AjaxRequestTarget target, AvailableRelationDto availableRelationList,
List<QName> objectTypes, boolean isOrgTreePanelVisible) {
MemberOperationsHelper.assignOrgMembers(getPageBase(), getModelObject(), target, availableRelationList, objectTypes);
List<QName> objectTypes, boolean isOrgTreePanelVisible, List<ObjectReferenceType> archetypeRefs) {
MemberOperationsHelper.assignOrgMembers(getPageBase(), getModelObject(), target, availableRelationList, objectTypes, archetypeRefs);
}

// @Override
Expand Down

0 comments on commit 0b61db5

Please sign in to comment.