Skip to content

Commit

Permalink
fix showing of reportParam in report tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Aug 31, 2021
1 parent c765d51 commit 788b9af
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* 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.
*/
package com.evolveum.midpoint.gui.impl.factory.wrapper;

import com.evolveum.midpoint.gui.api.factory.wrapper.WrapperContext;
import com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerWrapper;
import com.evolveum.midpoint.gui.impl.prism.wrapper.PrismContainerValueWrapperImpl;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.component.prism.ValueStatus;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportParameterType;

import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
public class ReportParamWrapperFactoryImpl extends PrismContainerWrapperFactoryImpl<ReportParameterType> {

@Override
public boolean match(ItemDefinition<?> def) {
return super.match(def) && QNameUtil.match(def.getTypeName(), ReportParameterType.COMPLEX_TYPE);
}

@Override
public int getOrder() {
return super.getOrder() - 10;
}

@Override
protected List<? extends ItemDefinition> getItemDefinitions(
PrismContainerWrapper<ReportParameterType> parent, PrismContainerValue<ReportParameterType> value) {
List<ItemDefinition> defs = new ArrayList<>();
if (parent != null
&& parent.getItem() != null) {
for (Item<?, ?> item : parent.getItem().getValue().getItems()) {
defs.add(item.getDefinition());
}
}
return defs;
}

@Override
public PrismContainerWrapper<ReportParameterType> createWrapper(PrismContainerValueWrapper<?> parent, ItemDefinition<?> def, WrapperContext context) throws SchemaException {
PrismContainerWrapper<ReportParameterType> container = super.createWrapper(parent, def, context);
container.setReadOnly(true);
return container;
}

@Override
protected ItemWrapper<?, ?> createChildWrapper(ItemDefinition<?> def, PrismContainerValueWrapper<?> containerValueWrapper, WrapperContext context) throws SchemaException {
ItemWrapper<?, ?> wrapper = super.createChildWrapper(def, containerValueWrapper, context);
wrapper.setReadOnly(true);
return wrapper;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ protected Panel createSummaryPanel(String id, LoadableModel<ReportType> summaryM
}

@Override
protected OperationalButtonsPanel createButtonsPanel(String id, LoadableModel<PrismObjectWrapper<ReportType>> wrapperModel) {
protected OperationalButtonsPanel<ReportType> createButtonsPanel(String id, LoadableModel<PrismObjectWrapper<ReportType>> wrapperModel) {
return new ReportOperationalButtonsPanel(id, wrapperModel) {
@Override
protected Boolean isEditObject() {
Expand All @@ -98,7 +98,7 @@ protected Component getTableBox() {
}

@Override
protected ReportObjectsListPanel getReportTable() {
protected ReportObjectsListPanel<?> getReportTable() {
return PageReport.this.getReportTable();
}

Expand Down Expand Up @@ -126,7 +126,7 @@ private void initLayout() {
tableContainer.setOutputMarkupId(true);
add(tableContainer);

ReportObjectsListPanel reportTable = new ReportObjectsListPanel(ID_REPORT_TABLE, Model.of(getModelObjectType()));
ReportObjectsListPanel<?> reportTable = new ReportObjectsListPanel<>(ID_REPORT_TABLE, Model.of(getModelObjectType()));
reportTable.setOutputMarkupId(true);

WebMarkupContainer tableBox = new WebMarkupContainer(ID_TABLE_BOX);
Expand Down Expand Up @@ -195,8 +195,8 @@ public void saveAndRunPerformed(AjaxRequestTarget target) {
savePerformed(target);
}

private ReportObjectsListPanel getReportTable() {
return (ReportObjectsListPanel) get(createComponentPath(ID_TABLE_CONTAINER, ID_TABLE_BOX, ID_REPORT_TABLE));
private ReportObjectsListPanel<?> getReportTable() {
return (ReportObjectsListPanel<?>) get(createComponentPath(ID_TABLE_CONTAINER, ID_TABLE_BOX, ID_REPORT_TABLE));
}

private Component getTableBox() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1931,20 +1931,29 @@
Exports report of any containerable (either from audit or from the repository).
Supports multithreading but not bucketing (multi-node mode).
</xsd:documentation>
<xsd:appinfo>
<a:displayName>WorkDefinitionsType.reportExport</a:displayName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="reportImport" type="tns:ClassicReportImportWorkDefinitionType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Imports a report. Supports multithreading.
</xsd:documentation>
<xsd:appinfo>
<a:displayName>WorkDefinitionsType.reportImport</a:displayName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="distributedReportExport" type="tns:DistributedReportExportWorkDefinitionType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
Exports report of repository objects. Supports bucketing (multi-node mode) and multithreading.
</xsd:documentation>
<xsd:appinfo>
<a:displayName>WorkDefinitionsType.distributedReportExport</a:displayName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="iterativeScripting" type="tns:IterativeScriptingWorkDefinitionType" minOccurs="0">
Expand Down Expand Up @@ -6491,6 +6500,7 @@
</xsd:documentation>
<xsd:appinfo>
<a:objectReferenceTargetType>tns:ReportType</a:objectReferenceTargetType>
<a:displayName>AbstractReportWorkDefinitionType.reportRef</a:displayName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
Expand Down Expand Up @@ -6567,6 +6577,7 @@
</xsd:documentation>
<xsd:appinfo>
<a:objectReferenceTargetType>tns:ReportDataType</a:objectReferenceTargetType>
<a:displayName>AbstractReportWorkDefinitionType.reportDataRef</a:displayName>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
Expand Down

0 comments on commit 788b9af

Please sign in to comment.