Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Sep 16, 2019
2 parents db6a321 + 1187bed commit c6d9b44
Show file tree
Hide file tree
Showing 94 changed files with 948 additions and 5,027 deletions.
Expand Up @@ -33,6 +33,7 @@
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.roles.AvailableRelationDto;
import com.evolveum.midpoint.web.page.admin.roles.MemberOperationsHelper;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.midpoint.xml.ns._public.model.scripting_3.ActionExpressionType;
Expand Down Expand Up @@ -68,9 +69,9 @@ public abstract class ChooseMemberPopup<O extends ObjectType, T extends Abstract
private static final String ID_FORM = "form";

private List<OrgType> selectedOrgsList = new ArrayList<>();
protected List<QName> availableRelationList;
protected AvailableRelationDto availableRelationList;

public ChooseMemberPopup(String id, List<QName> availableRelationList){
public ChooseMemberPopup(String id, AvailableRelationDto availableRelationList){
super(id);
this.availableRelationList = availableRelationList;
}
Expand Down
Expand Up @@ -16,6 +16,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.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
Expand All @@ -30,7 +31,7 @@
public abstract class ChooseOrgMemberPopup<O extends ObjectType> extends ChooseMemberPopup<O, OrgType> {
private static final long serialVersionUID = 1L;

public ChooseOrgMemberPopup(String id, List<QName> availableRelationList){
public ChooseOrgMemberPopup(String id, AvailableRelationDto availableRelationList){
super(id, availableRelationList);
}

Expand Down
Expand Up @@ -16,6 +16,7 @@
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.input.RelationDropDownChoicePanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.roles.AvailableRelationDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.collections.CollectionUtils;
import org.apache.wicket.markup.html.WebMarkupContainer;
Expand All @@ -37,9 +38,9 @@ public abstract class MemberPopupTabPanel<O extends ObjectType> extends Abstract
private static final String ID_RELATION = "relation";

private PageBase pageBase;
private List<QName> supportedRelationList = new ArrayList<>();
private AvailableRelationDto supportedRelationList = new AvailableRelationDto();

public MemberPopupTabPanel(String id, List<QName> supportedRelationList){
public MemberPopupTabPanel(String id, AvailableRelationDto supportedRelationList){
super(id);
this.supportedRelationList = supportedRelationList;
}
Expand All @@ -59,17 +60,18 @@ protected void initParametersPanel(Fragment parametersPanel){

@Override
public boolean isVisible(){
return CollectionUtils.isNotEmpty(supportedRelationList);
return CollectionUtils.isNotEmpty(supportedRelationList.getAvailableRelationList());
}

@Override
public boolean isEnabled(){
return CollectionUtils.isNotEmpty(supportedRelationList) && supportedRelationList.size() > 1;
return CollectionUtils.isNotEmpty(supportedRelationList.getAvailableRelationList())
&& supportedRelationList.getAvailableRelationList().size() > 1;
}
});
parametersPanel.add(relationContainer);

relationContainer.add(new RelationDropDownChoicePanel(ID_RELATION, null, supportedRelationList, false));
relationContainer.add(new RelationDropDownChoicePanel(ID_RELATION, supportedRelationList.getDefaultRelation(), supportedRelationList.getAvailableRelationList(), false));
}

protected ObjectDelta prepareDelta(){
Expand Down
Expand Up @@ -14,6 +14,7 @@
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.input.DropDownChoicePanel;
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 org.apache.wicket.ajax.AjaxRequestTarget;
Expand Down Expand Up @@ -41,7 +42,7 @@ public abstract class MultiTypesMemberPopupTabPanel<O extends ObjectType> extend

private ObjectTypes defaultObjectType = ObjectTypes.OBJECT_COLLECTION;

public MultiTypesMemberPopupTabPanel(String id, List<QName> supportedRelationsList){
public MultiTypesMemberPopupTabPanel(String id, AvailableRelationDto supportedRelationsList){
super(id, supportedRelationsList);
}

Expand Down
Expand Up @@ -11,6 +11,7 @@
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.component.util.TreeSelectableBean;
import com.evolveum.midpoint.web.page.admin.orgs.OrgTreeAssignablePanel;
import com.evolveum.midpoint.web.page.admin.roles.AvailableRelationDto;
import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.model.IModel;
Expand All @@ -29,7 +30,7 @@ public abstract class OrgTreeMemberPopupTabPanel extends MemberPopupTabPanel<Org

private static final String ID_ORG_TREE_VIEW_PANEL = "orgTreeViewPanel";

public OrgTreeMemberPopupTabPanel(String id, List<QName> availableRelationList){
public OrgTreeMemberPopupTabPanel(String id, AvailableRelationDto availableRelationList){
super(id, availableRelationList);
}

Expand Down
Expand Up @@ -2715,6 +2715,13 @@ public static List<QName> getCategoryRelationChoices(AreaCategoryType category,
return relationsList;
}

public static QName getCategoryDefaultRelation(AreaCategoryType category){
if (AreaCategoryType.GOVERNANCE.equals(category)) {
return RelationTypes.APPROVER.getRelation();
}
return null;
}

public static List<QName> getAllRelations(ModelServiceLocator pageBase) {
List<RelationDefinitionType> allRelationDefinitions = getRelationDefinitions(pageBase);
List<QName> allRelationsQName = new ArrayList<>(allRelationDefinitions.size());
Expand Down
Expand Up @@ -208,15 +208,15 @@ public List<ObjectReferenceType> load() {
}
PrismContainerValue associationValue = (PrismContainerValue)((PrismContainerValueWrapper) associationValueWrapper).getNewValue();
ResourceObjectAssociationType assoc = (ResourceObjectAssociationType) associationValue.asContainerable();
if (assoc == null || assoc.getOutbound() == null || assoc.getOutbound().getExpression() == null
|| (ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression(),
ConstructionAssociationPanel.this.getPageBase().getPrismContext()) == null
&& !ValueStatus.ADDED.equals(((PrismContainerValueWrapper) associationValueWrapper).getStatus()))) {
if (assoc.getOutbound() == null || assoc.getOutbound().getExpression() == null
|| ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression(),
ConstructionAssociationPanel.this.getPageBase().getPrismContext()) == null && !ValueStatus.ADDED
.equals(associationValueWrapper.getStatus())) {
return;
}
QName assocRef = ItemPathTypeUtil.asSingleNameOrFailNullSafe(assoc.getRef());
if ((defName != null && defName.equals(assocRef))
|| (assocRef == null && ValueStatus.ADDED.equals(((PrismContainerValueWrapper) associationValueWrapper).getStatus()))) {
|| (assocRef == null && ValueStatus.ADDED.equals(associationValueWrapper.getStatus()))) {
shadowsList.addAll(ExpressionUtil.getShadowRefValue(assoc.getOutbound().getExpression(),
ConstructionAssociationPanel.this.getPageBase().getPrismContext()));
}
Expand Down
Expand Up @@ -654,7 +654,7 @@ public IModel<String> getDataModel(IModel<PrismContainerValueWrapper<CaseWorkIte
return columns;
}

public static List<IColumn<SelectableBean<CaseType>, String>> getDefaultCaseColumns(PageBase pageBase) {
public static List<IColumn<SelectableBean<CaseType>, String>> getDefaultCaseColumns(PageBase pageBase, boolean isDashboard) {

List<IColumn<SelectableBean<CaseType>, String>> columns = new ArrayList<IColumn<SelectableBean<CaseType>, String>>();

Expand All @@ -678,36 +678,38 @@ public String getObject() {
}
};
columns.add(column);

column = new AbstractColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.actors")){
@Override
public void populateItem(Item<ICellPopulator<SelectableBean<CaseType>>> item, String componentId, IModel<SelectableBean<CaseType>> rowModel) {
item.add(new Label(componentId, new IModel<String>() {
@Override
public String getObject() {
String actors = null;
SelectableBean<CaseType> caseModel = rowModel.getObject();
if (caseModel != null) {
CaseType caseIntance = caseModel.getValue();
if (caseIntance != null) {
List<CaseWorkItemType> caseWorkItemTypes = caseIntance.getWorkItem();
List<String> actorsList = new ArrayList<String>();
for (CaseWorkItemType caseWorkItem : caseWorkItemTypes) {
List<ObjectReferenceType> assignees = caseWorkItem.getAssigneeRef();
for (ObjectReferenceType actor : assignees) {
actorsList.add(WebComponentUtil.getEffectiveName(actor, AbstractRoleType.F_DISPLAY_NAME, pageBase,
pageBase.getClass().getSimpleName() + "." + "loadCaseActorsNames"));

if (!isDashboard) {
column = new AbstractColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.actors")){
@Override
public void populateItem(Item<ICellPopulator<SelectableBean<CaseType>>> item, String componentId, IModel<SelectableBean<CaseType>> rowModel) {
item.add(new Label(componentId, new IModel<String>() {
@Override
public String getObject() {
String actors = null;
SelectableBean<CaseType> caseModel = rowModel.getObject();
if (caseModel != null) {
CaseType caseIntance = caseModel.getValue();
if (caseIntance != null) {
List<CaseWorkItemType> caseWorkItemTypes = caseIntance.getWorkItem();
List<String> actorsList = new ArrayList<String>();
for (CaseWorkItemType caseWorkItem : caseWorkItemTypes) {
List<ObjectReferenceType> assignees = caseWorkItem.getAssigneeRef();
for (ObjectReferenceType actor : assignees) {
actorsList.add(WebComponentUtil.getEffectiveName(actor, AbstractRoleType.F_DISPLAY_NAME, pageBase,
pageBase.getClass().getSimpleName() + "." + "loadCaseActorsNames"));
}
}
actors = String.join(", ", actorsList);
}
actors = String.join(", ", actorsList);
}
return actors;
}
return actors;
}
}));
}
};
columns.add(column);
}));
}
};
columns.add(column);
}

column = new AbstractColumn<SelectableBean<CaseType>, String>(
createStringResource("pageCases.table.openTimestamp"),
Expand Down Expand Up @@ -736,56 +738,76 @@ public String getObject() {
}
}));
}

@Override
public String getCssClass() {
return isDashboard ? "col-sm-2 col-lg-1" : super.getCssClass();
}
};
columns.add(column);

column = new PropertyColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.closeTimestamp"), CaseType.F_CLOSE_TIMESTAMP.getLocalPart(), "value.closeTimestamp") {
@Override
public void populateItem(Item<ICellPopulator<SelectableBean<CaseType>>> cellItem,
String componentId, final IModel<SelectableBean<CaseType>> rowModel) {
CaseType object = rowModel.getObject().getValue();
XMLGregorianCalendar closedCal = object != null ? object.getCloseTimestamp() : null;
final Date closed;
if (closedCal != null) {
closed = closedCal.toGregorianCalendar().getTime();
cellItem.add(AttributeModifier.replace("title", WebComponentUtil.getLocalizedDate(closed, DateLabelComponent.LONG_MEDIUM_STYLE)));
cellItem.add(new TooltipBehavior());
} else {
closed = null;
}
cellItem.add(new Label(componentId, new IModel<String>() {
@Override
public String getObject() {
return WebComponentUtil.getShortDateTimeFormattedValue(closed, pageBase);
if (!isDashboard) {
column = new PropertyColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.closeTimestamp"), CaseType.F_CLOSE_TIMESTAMP.getLocalPart(), "value.closeTimestamp") {
@Override
public void populateItem(Item<ICellPopulator<SelectableBean<CaseType>>> cellItem,
String componentId, final IModel<SelectableBean<CaseType>> rowModel) {
CaseType object = rowModel.getObject().getValue();
XMLGregorianCalendar closedCal = object != null ? object.getCloseTimestamp() : null;
final Date closed;
if (closedCal != null) {
closed = closedCal.toGregorianCalendar().getTime();
cellItem.add(AttributeModifier.replace("title", WebComponentUtil.getLocalizedDate(closed, DateLabelComponent.LONG_MEDIUM_STYLE)));
cellItem.add(new TooltipBehavior());
} else {
closed = null;
}
}));
cellItem.add(new Label(componentId, new IModel<String>() {
@Override
public String getObject() {
return WebComponentUtil.getShortDateTimeFormattedValue(closed, pageBase);
}
}));
}

@Override
public String getCssClass() {
return isDashboard ? "col-sm-2 col-lg-1" : super.getCssClass();
}
};
columns.add(column);
}

column = new PropertyColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.state"), CaseType.F_STATE.getLocalPart(), "value.state"){
@Override
public String getCssClass() {
return isDashboard ? "col-md-1 col-sm-2" : super.getCssClass();
}
};
columns.add(column);

column = new PropertyColumn<SelectableBean<CaseType>, String>(createStringResource("pageCases.table.state"), CaseType.F_STATE.getLocalPart(), "value.state");
columns.add(column);
if (!isDashboard) {
column = new AbstractExportableColumn<SelectableBean<CaseType>, String>(
createStringResource("pageCases.table.workitems")) {

column = new AbstractExportableColumn<SelectableBean<CaseType>, String>(
createStringResource("pageCases.table.workitems")) {

@Override
public void populateItem(Item<ICellPopulator<SelectableBean<CaseType>>> cellItem,
String componentId, IModel<SelectableBean<CaseType>> model) {
cellItem.add(new Label(componentId,
model.getObject().getValue() != null && model.getObject().getValue().getWorkItem() != null ?
model.getObject().getValue().getWorkItem().size() : null));
}
@Override
public void populateItem(Item<ICellPopulator<SelectableBean<CaseType>>> cellItem,
String componentId, IModel<SelectableBean<CaseType>> model) {
cellItem.add(new Label(componentId,
model.getObject().getValue() != null && model.getObject().getValue().getWorkItem() != null ?
model.getObject().getValue().getWorkItem().size() : null));
}

@Override
public IModel<String> getDataModel(IModel<SelectableBean<CaseType>> rowModel) {
return Model.of(rowModel.getObject().getValue() != null && rowModel.getObject().getValue().getWorkItem() != null ?
Integer.toString(rowModel.getObject().getValue().getWorkItem().size()) : "");
}
@Override
public IModel<String> getDataModel(IModel<SelectableBean<CaseType>> rowModel) {
return Model.of(rowModel.getObject().getValue() != null && rowModel.getObject().getValue().getWorkItem() != null ?
Integer.toString(rowModel.getObject().getValue().getWorkItem().size()) : "");
}


};
columns.add(column);
};
columns.add(column);
}

return columns;
}

Expand Down

0 comments on commit c6d9b44

Please sign in to comment.