diff --git a/ng2-components/ng2-activiti-analytics/src/assets/analyticsParamsReportComponent.mock.ts b/ng2-components/ng2-activiti-analytics/src/assets/analyticsParamsReportComponent.mock.ts index 07d44ade6a..87361903b0 100644 --- a/ng2-components/ng2-activiti-analytics/src/assets/analyticsParamsReportComponent.mock.ts +++ b/ng2-components/ng2-activiti-analytics/src/assets/analyticsParamsReportComponent.mock.ts @@ -139,6 +139,13 @@ export var reportDefParamTask = { 'definition': '{ "parameters" :[{"id":"taskName","name":null,"nameKey":null,"type":"task","value":null,"dependsOn":"processDefinitionId"}]}' }; +export var reportNoParameterDefinitions = { + 'id': 2006, + 'name': 'Fake Task service level agreement', + 'created': '2016-10-05T15:39:40.222+0000', + 'definition': '{ "parameters" : []}' +}; + export var reportDefParamTaskOptions = ['Fake task name 1', 'Fake task name 2']; export var fieldProcessDef = new ReportParameterDetailsModel( diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.ts index 9625ada99a..3905b9c28e 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.ts +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-generator.component.ts @@ -81,6 +81,9 @@ export class AnalyticsGeneratorComponent implements OnChanges { } public generateReport(reportId, reportParamQuery) { + if (reportParamQuery === undefined || reportParamQuery === null) { + reportParamQuery = {}; + } this.analyticsService.getReportsByParams(reportId, reportParamQuery).subscribe( (res: Chart[]) => { this.reports = res; diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts index d1feea555e..9130750726 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.spec.ts @@ -342,6 +342,24 @@ describe('AnalyticsReportParametersComponent', () => { }); + it('Should create an empty valid form when there are no parameters definitions', () => { + component.onSuccess.subscribe((res) => { + expect(component.reportForm).toBeDefined(); + expect(component.reportForm.valid).toEqual(true); + expect(component.reportForm.controls).toEqual({}); + }); + + let reportId = 1; + let change = new SimpleChange(null, reportId); + component.ngOnChanges({ 'reportId': change }); + + jasmine.Ajax.requests.mostRecent().respondWith({ + status: 200, + contentType: 'json', + responseText: analyticParamsMock.reportNoParameterDefinitions + }); + }); + it('Should load the task list when a process definition is selected', () => { component.onSuccessReportParams.subscribe((res) => { expect(res).toBeDefined(); diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts index b7c5e45386..9a34269c97 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts @@ -195,6 +195,7 @@ export class AnalyticsReportParametersComponent implements OnInit, OnChanges, On if (this.reportParameters.hasParameters()) { this.onSuccessReportParams.emit(res); } else { + this.reportForm = this.formBuilder.group({}); this.onSuccess.emit(); } },