Skip to content

Commit

Permalink
MID-6101 Change archetype popup window - filter fix
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Mar 11, 2020
1 parent 79d47fb commit 871c903
Showing 1 changed file with 15 additions and 2 deletions.
Expand Up @@ -32,6 +32,7 @@
import com.evolveum.midpoint.web.security.util.SecurityUtils;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.Page;
Expand Down Expand Up @@ -407,7 +408,7 @@ public int getRefreshInterval() {
}

protected void initOperationalButtons(RepeatingView repeatingView){
if (getObjectArchetypeRef() != null) {
if (getObjectArchetypeRef() != null && CollectionUtils.isNotEmpty(getArchetypeOidsListToAssign())) {
AjaxButton changeArchetype = new AjaxButton(repeatingView.newChildId(), createStringResource("PageAdminObjectDetails.button.changeArchetype")) {
@Override
public void onClick(AjaxRequestTarget target) {
Expand Down Expand Up @@ -526,7 +527,7 @@ protected ObjectQuery addFilterToContentQuery(ObjectQuery query){
if (query == null) {
query = getPrismContext().queryFactory().createQuery();
}
List<String> archetypeOidsList = getFilteredArchetypeOidsList();
List<String> archetypeOidsList = getArchetypeOidsListToAssign();
ObjectFilter filter = getPrismContext().queryFor(ArchetypeType.class)
.id(archetypeOidsList.toArray(new String[0]))
.buildFilter();
Expand All @@ -545,6 +546,18 @@ protected ObjectQuery addFilterToContentQuery(ObjectQuery query){

}

private List<String> getArchetypeOidsListToAssign(){
List<String> archetypeOidsList = getFilteredArchetypeOidsList();

ObjectReferenceType archetypeRef = getObjectArchetypeRef();
if (archetypeRef != null && StringUtils.isNotEmpty(archetypeRef.getOid())){
if (archetypeOidsList.contains(archetypeRef.getOid())){
archetypeOidsList.remove(archetypeRef.getOid());
}
}
return archetypeOidsList;
}

private List<String> getFilteredArchetypeOidsList(){
OperationResult result = new OperationResult(OPERATION_LOAD_FILTERED_ARCHETYPES);
PrismObject obj = getObjectWrapper().getObject();
Expand Down

0 comments on commit 871c903

Please sign in to comment.