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 626996af3b..07d44ade6a 100644 --- a/ng2-components/ng2-activiti-analytics/src/assets/analyticsParamsReportComponent.mock.ts +++ b/ng2-components/ng2-activiti-analytics/src/assets/analyticsParamsReportComponent.mock.ts @@ -69,6 +69,29 @@ export var reportDefParamProcessDef = { 'definition': '{ "parameters" :[{"id":"processDefinitionId","name":null,"nameKey":null,"type":"processDefinition","value":null,"dependsOn":null}]}' }; +export var reportDefParamProcessDefOptionsNoApp = [ + { + 'id': 'FakeProcessTest 1:1:1', + 'name': 'Fake Process Test 1 Name ', + 'version': 1 + }, + { + 'id': 'FakeProcessTest 1:2:1', + 'name': 'Fake Process Test 1 Name ', + 'version': 2 + }, + { + 'id': 'FakeProcessTest 2:1:1', + 'name': 'Fake Process Test 2 Name ', + 'version': 1 + }, + { + 'id': 'FakeProcessTest 3:1:1', + 'name': 'Fake Process Test 3 Name ', + 'version': 1 + } +]; + export var reportDefParamProcessDefOptions = { 'size': 4, 'total': 4, 'start': 0, 'data': [ { 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 9302b32f01..bb435e61cc 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 @@ -293,7 +293,7 @@ describe('Test ng2-analytics-report-parameters Report Parameters ', () => { jasmine.Ajax.requests.mostRecent().respondWith({ status: 200, contentType: 'json', - responseText: analyticParamsMock.reportDefParamProcessDefOptions + responseText: analyticParamsMock.reportDefParamProcessDefOptionsNoApp }); }); 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 f31fcb0f18..f1768acc42 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 @@ -182,7 +182,7 @@ export class AnalyticsReportParametersComponent implements OnInit, OnChanges { } public convertNumber(value: string): number { - return parseInt(value, 10); + return value != null ? parseInt(value, 10) : 0; } convertFormValuesToReportParamQuery(values: any): ReportQuery { diff --git a/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts b/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts index 867fe2c47d..ea7eb28496 100644 --- a/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts +++ b/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts @@ -68,7 +68,11 @@ export class AnalyticsService { if (type === 'status') { return this.getProcessStatusValues(); } else if (type === 'processDefinition') { - return this.getProcessDefinitionsValues(appId); + if (appId === null || appId === undefined) { + return this.getProcessDefinitionsValuesNoApp(); + } else { + return this.getProcessDefinitionsValues(appId); + } } else if (type === 'dateInterval') { return this.getDateIntervalValues(); } else if (type === 'task') { @@ -122,13 +126,26 @@ export class AnalyticsService { }); } + getProcessDefinitionsValuesNoApp(): Observable { + let url = `${this.alfrescoSettingsService.getBPMApiBaseUrl()}/app/rest/reporting/process-definitions`; + let options = this.getRequestOptions(); + return this.http + .get(url, options) + .map((res: any) => { + let paramOptions: ParameterValueModel[] = []; + let body = res.json(); + body.forEach((opt) => { + paramOptions.push(new ParameterValueModel(opt)); + }); + return paramOptions; + }).catch(this.handleError); + } + getProcessDefinitionsValues(appId: string): Observable { let url = `${this.alfrescoSettingsService.getBPMApiBaseUrl()}/app/rest/process-definitions`; let params: URLSearchParams; - if (appId) { - params = new URLSearchParams(); - params.set('appDefinitionId', appId); - } + params = new URLSearchParams(); + params.set('appDefinitionId', appId); let options = this.getRequestOptions(params); return this.http .get(url, options)