Skip to content

Commit

Permalink
fix for running of dashboard report
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Jul 10, 2019
1 parent f70ba0b commit b368ca8
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 17 deletions.
Expand Up @@ -40,6 +40,7 @@
import com.evolveum.midpoint.web.page.admin.reports.component.RunReportPopupPanel;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportEngineSelectionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportParameterType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportType;

Expand Down Expand Up @@ -193,28 +194,38 @@ public boolean isHeaderMenuItem(){
return menu;

}

private void runConfirmPerformed(AjaxRequestTarget target, ReportType reportType, PrismContainer<ReportParameterType> reportParam,
Task task, OperationResult result) {
try {

protected void runReportPerformed(AjaxRequestTarget target, ReportType report) {
getReportManager().runReport(reportType.asPrismObject(), reportParam, task, result);
} catch (Exception ex) {
result.recordFatalError(ex);
} finally {
result.computeStatusIfUnknown();
}

showResult(result);
target.add(getFeedbackPanel(), get(createComponentPath(ID_MAIN_FORM)));
hideMainPopup(target);

}

protected void runReportPerformed(AjaxRequestTarget target, ReportType report) {
OperationResult result = new OperationResult(OPERATION_RUN_REPORT);
Task task = createSimpleTask(OPERATION_RUN_REPORT);
if(report.getReportEngine() != null && report.getReportEngine().equals(ReportEngineSelectionType.DASHBOARD)) {
runConfirmPerformed(target, report, null, task, result);
return;
}

RunReportPopupPanel runReportPopupPanel = new RunReportPopupPanel(getMainPopupBodyId(), report) {

private static final long serialVersionUID = 1L;

protected void runConfirmPerformed(AjaxRequestTarget target, ReportType reportType, PrismContainer<ReportParameterType> reportParam) {
OperationResult result = new OperationResult(OPERATION_RUN_REPORT);
try {

Task task = createSimpleTask(OPERATION_RUN_REPORT);

getReportManager().runReport(reportType.asPrismObject(), reportParam, task, result);
} catch (Exception ex) {
result.recordFatalError(ex);
} finally {
result.computeStatusIfUnknown();
}

showResult(result);
target.add(getFeedbackPanel(), get(createComponentPath(ID_MAIN_FORM)));
PageReports.this.runConfirmPerformed(target, reportType, reportParam, task, result);
hideMainPopup(target);

};
Expand Down
Expand Up @@ -134,7 +134,11 @@ private boolean isRaw(Collection<SelectorOptions<GetOperationOptions>> options)

@Override
public void runReport(PrismObject<ReportType> object, PrismContainer<ReportParameterType> paramContainer, Task task, OperationResult parentResult) {
task.setHandlerUri(ReportJasperCreateTaskHandler.REPORT_CREATE_TASK_URI);
if(isDashboarReport(object)) {
task.setHandlerUri(ReportHTMLCreateTaskHandler.REPORT_HTML_CREATE_TASK_URI);
} else {
task.setHandlerUri(ReportJasperCreateTaskHandler.REPORT_CREATE_TASK_URI);
}
task.setObjectRef(object.getOid(), ReportType.COMPLEX_TYPE);
try {
if (paramContainer != null && !paramContainer.isEmpty()){
Expand All @@ -150,7 +154,16 @@ public void runReport(PrismObject<ReportType> object, PrismContainer<ReportParam
taskManager.switchToBackground(task, parentResult);
parentResult.setBackgroundTaskOid(task.getOid());
}
/**

private boolean isDashboarReport(PrismObject<ReportType> object) {
if(object.getRealValue() != null && object.getRealValue().getReportEngine() != null
&& object.getRealValue().getReportEngine().equals(ReportEngineSelectionType.DASHBOARD)) {
return true;
}
return false;
}

/**
* Transforms change:
* 1/ ReportOutputType DELETE to MODIFY some attribute to mark it for deletion.
* 2/ ReportType ADD and MODIFY should compute jasper design and styles if necessary
Expand Down

0 comments on commit b368ca8

Please sign in to comment.