Skip to content

Commit

Permalink
Merge branch 'feature/task-improvements' into feature/new-report-tasks
Browse files Browse the repository at this point in the history
# Conflicts:
#	model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ActivityDistributedExportSupport.java
#	model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicReportExportActivityExecutionSpecifics.java
#	model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ClassicReportImportActivityExecution.java
#	model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataAggregationActivityExecutionSpecifics.java
#	model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/activity/ReportDataCreationActivityExecutionSpecifics.java
#	model/report-impl/src/main/java/com/evolveum/midpoint/report/impl/controller/fileformat/CollectionBasedExportController.java
  • Loading branch information
mederly committed Aug 6, 2021
2 parents 92364a3 + 3b4cea4 commit 0e3aca3
Show file tree
Hide file tree
Showing 338 changed files with 8,347 additions and 4,860 deletions.
7 changes: 4 additions & 3 deletions custom/pom.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0"?>
<!--
~ Copyright (c) 2010-2017 Evolveum and contributors
~ Copyright (C) 2010-2021 Evolveum and contributors
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
Expand Down
2 changes: 1 addition & 1 deletion dist/javadoc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
Expand Down
2 changes: 1 addition & 1 deletion dist/midpoint-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
Expand Down
7 changes: 4 additions & 3 deletions dist/pom.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0"?>
<!--
~ Copyright (c) 2010-2019 Evolveum and contributors
~ Copyright (C) 2010-2021 Evolveum and contributors
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
Expand Down
4 changes: 3 additions & 1 deletion gui/admin-gui/pom.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
<?xml version="1.0"?>
<!--
~ Copyright (C) 2010-2021 Evolveum and contributors
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ public class GuiStyleConstants {

public static final String CLASS_OBJECT_COLLECTION_ICON = "fa fa-filter";

public static final String CLASS_OBJECT_TEMPLATE_ICON = "fa fa-file-text";

public static final String CLASS_REPORT_ICON = "fa fa-pie-chart";

public static final String CLASS_ICON_STYLE = "icon-style-"; //some icon styles start with this string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,25 @@

import com.evolveum.midpoint.gui.api.util.WebDisplayTypeUtil;
import com.evolveum.midpoint.gui.impl.util.ObjectCollectionViewUtil;
import com.evolveum.midpoint.model.api.ModelExecuteOptions;
import com.evolveum.midpoint.model.common.util.DefaultColumnUtils;

import com.evolveum.midpoint.prism.delta.ChangeType;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.MiscUtil;
import com.evolveum.midpoint.util.logging.LoggingUtils;
import com.evolveum.midpoint.web.component.*;

import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem;
import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction;
import com.evolveum.midpoint.web.page.admin.users.PageUsers;
import com.evolveum.midpoint.web.page.admin.users.component.ExecuteChangeOptionsDto;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
Expand Down Expand Up @@ -62,12 +76,25 @@ public abstract class MainObjectListPanel<O extends ObjectType> extends ObjectLi

private static final Trace LOGGER = TraceManager.getTrace(MainObjectListPanel.class);

private static final String DOT_CLASS = PageUsers.class.getName() + ".";
private static final String OPERATION_DELETE_OBJECTS = DOT_CLASS + "deleteObjects";
private static final String OPERATION_DELETE_OBJECT = DOT_CLASS + "deleteObject";

private LoadableModel<ExecuteChangeOptionsDto> executeOptionsModel;

public MainObjectListPanel(String id, Class<O> type) {
this(id, type, null);
}

public MainObjectListPanel(String id, Class<O> type, Collection<SelectorOptions<GetOperationOptions>> options) {
super(id, type, options);
executeOptionsModel = new LoadableModel<>(false) {

@Override
protected ExecuteChangeOptionsDto load() {
return ExecuteChangeOptionsDto.createFromSystemConfiguration();
}
};
}

@Override
Expand Down Expand Up @@ -426,4 +453,113 @@ protected List<CompiledObjectCollectionView> getNewObjectInfluencesList() {
return getAllApplicableArchetypeViews();
}

private void deleteConfirmedPerformed(AjaxRequestTarget target, O objectToDelete) {
List<O> objects = isAnythingSelected(target, objectToDelete);

if (objects.isEmpty()) {
return;
}

OperationResult result = new OperationResult(OPERATION_DELETE_OBJECTS);
for (O object : objects) {
OperationResult subResult = result.createSubresult(OPERATION_DELETE_OBJECT);
try {
Task task = getPageBase().createSimpleTask(OPERATION_DELETE_OBJECT);

ObjectDelta delta = getPrismContext().deltaFactory().object().create(UserType.class, ChangeType.DELETE);
delta.setOid(object.getOid());

ExecuteChangeOptionsDto executeOptions = getExecuteOptions();
ModelExecuteOptions options = executeOptions.createOptions(getPrismContext());
LOGGER.debug("Using options {}.", executeOptions);
getPageBase().getModelService().executeChanges(MiscUtil.createCollection(delta), options, task,
subResult);
subResult.computeStatus();
} catch (Exception ex) {
subResult.recomputeStatus();
subResult.recordFatalError(getString("PageUsers.message.delete.fatalError"), ex);
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't delete user", ex);
}
}
result.computeStatusComposite();
clearCache();

getPageBase().showResult(result);
target.add(getFeedbackPanel());
refreshTable(target);
clearCache();
}

public ExecuteChangeOptionsDto getExecuteOptions() {
return executeOptionsModel.getObject();
}

/**
* This method check selection in table. If selectedObject != null than it
* returns only this object.
*/
public List<O> isAnythingSelected(AjaxRequestTarget target, O selectedObject) {
List<O> users;
if (selectedObject != null) {
users = new ArrayList<>();
users.add(selectedObject);
} else {
users = getSelectedRealObjects();
if (users.isEmpty() && StringUtils.isNotEmpty(getNothingSelectedMessage())) {
warn(getNothingSelectedMessage());
target.add(getFeedbackPanel());
}
}

return users;
}

protected String getNothingSelectedMessage() {
return null;
}

public IModel<String> getConfirmationMessageModel(ColumnMenuAction action, String actionName){
if (action.getRowModel() == null) {
return createStringResource(getConfirmMessageKeyForSingleObject(),
actionName, getSelectedObjectsCount() );
} else {
return createStringResource(getConfirmMessageKeyForMultiObject(),
actionName, ((ObjectType)((SelectableBean)action.getRowModel().getObject()).getValue()).getName());
}
}

protected String getConfirmMessageKeyForSingleObject() {
return null;
}

protected String getConfirmMessageKeyForMultiObject() {
return null;
}

public InlineMenuItem createDeleteInlineMenu() {
return new InlineMenuItem(createStringResource("MainObjectListPanel.menu.delete")) {
private static final long serialVersionUID = 1L;

@Override
public InlineMenuItemAction initAction() {
return new ColumnMenuAction<SelectableBean<O>>() {
@Override
public void onClick(AjaxRequestTarget target) {
if (getRowModel() == null) {
deleteConfirmedPerformed(target, null);
} else {
SelectableBean<O> rowDto = getRowModel().getObject();
deleteConfirmedPerformed(target, rowDto.getValue());
}
}
};
}

@Override
public IModel<String> getConfirmationMessageModel(){
String actionName = createStringResource("MainObjectListPanel.message.deleteAction").getString();
return MainObjectListPanel.this.getConfirmationMessageModel((ColumnMenuAction) getAction(), actionName);
}
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ public boolean isVisible() {

@Override
public void onClick(AjaxRequestTarget target) {
showHideAll(true, OperationResultPanel.this.getModelObject(), target);
showHideAll(true, target);
}
};
showAll.add(new VisibleEnableBehaviour() {
Expand All @@ -215,7 +215,7 @@ public boolean isVisible() {

@Override
public void onClick(AjaxRequestTarget target) {
showHideAll(false, OperationResultPanel.this.getModel().getObject(), target);
showHideAll(false, target);
}
};
hideAll.add(new VisibleEnableBehaviour() {
Expand Down Expand Up @@ -293,7 +293,7 @@ private Label createMessage() {
}

String resourceKey = OPERATION_RESOURCE_KEY_PREFIX + result.getOperation();
return page.getString(resourceKey, null, resourceKey);
return page.getString(resourceKey, null, result.getOperation());
});

message.setOutputMarkupId(true);
Expand Down Expand Up @@ -340,7 +340,7 @@ protected Object load() {
OpResult result = getModelObject();

String resourceKey = OPERATION_RESOURCE_KEY_PREFIX + result.getOperation();
return getPage().getString(resourceKey, null, resourceKey);
return getPage().getString(resourceKey, null, result.getOperation());
}
});
operation.setOutputMarkupId(true);
Expand Down Expand Up @@ -577,9 +577,9 @@ public boolean isVisible() {

}

private void showHideAll(final boolean show, OpResult opresult, AjaxRequestTarget target) {
opresult.setShowMoreAll(show);
opresult.setAlreadyShown(false); // hack to be able to expand/collapse OpResult after rendered.
private void showHideAll(final boolean show, AjaxRequestTarget target) {
getModelObject().setShowMoreAll(show);
getModelObject().setAlreadyShown(false); // hack to be able to expand/collapse OpResult after rendered.
target.add(OperationResultPanel.this);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<body>
<wicket:panel>
<div wicket:id="operationResultsPanel" />
<a class="btn btn-default btn-sm pull-right" wicket:id="ok" />
</wicket:panel>
</body>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,33 @@
package com.evolveum.midpoint.gui.api.component.result;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.model.ReadOnlyModel;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.dialog.ChooseFocusTypeAndRelationDialogPanel;
import com.evolveum.midpoint.web.component.dialog.Popupable;

import com.evolveum.midpoint.web.component.form.DropDownFormGroup;
import com.evolveum.midpoint.web.component.input.ListMultipleChoicePanel;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;

import javax.xml.namespace.QName;
import java.util.Collection;

/**
* @author honchar
*/
public class OperationResultPopupPanel extends BasePanel<OperationResult> implements Popupable {
private static final long serialVersionUID = 1L;

private static final String ID_OPERATION_RESULTS_PANEL = "operationResultsPanel";
private static final String ID_BUTTON_OK = "ok";

public OperationResultPopupPanel(String id, IModel<OperationResult> model){
super(id, model);
Expand All @@ -36,16 +47,32 @@ protected void onInitialize(){
createResultModel());
operationResultPanel.setOutputMarkupId(true);
add(operationResultPanel);

AjaxButton okButton = new AjaxButton(ID_BUTTON_OK, createStringResource("Button.ok")) {

private static final long serialVersionUID = 1L;

@Override
public void onClick(AjaxRequestTarget target) {
getPageBase().hideMainPopup(target);
}
};
okButton.setOutputMarkupId(true);
add(okButton);
}

private IModel<OpResult> createResultModel() {
return new ReadOnlyModel<>(() -> {

if (getModelObject() == null) {
return null;
return new LoadableModel<OpResult>() {
private static final long serialVersionUID = 1L;

@Override
protected OpResult load() {
if (getModelObject() == null) {
return null;
}
return OpResult.getOpResult(getPageBase(), getModelObject());
}
return OpResult.getOpResult(getPageBase(), getModelObject());
});
};
}

@Override
Expand Down

0 comments on commit 0e3aca3

Please sign in to comment.