diff --git a/demo-shell-ng2/app/components/activiti/activiti-demo.component.html b/demo-shell-ng2/app/components/activiti/activiti-demo.component.html
index a9a9a45019..eb25883a76 100644
--- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.html
+++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.html
@@ -69,7 +69,7 @@
diff --git a/ng2-components/ng2-activiti-analytics/src/assets/analyticsComponent.mock.ts b/ng2-components/ng2-activiti-analytics/src/assets/analyticsComponent.mock.ts
index 6994e2e761..606fca6c11 100644
--- a/ng2-components/ng2-activiti-analytics/src/assets/analyticsComponent.mock.ts
+++ b/ng2-components/ng2-activiti-analytics/src/assets/analyticsComponent.mock.ts
@@ -69,28 +69,45 @@ export var reportDefParamProcessDef = {
'definition': '{ "parameters" :[{"id":"processDefinitionId","name":null,"nameKey":null,"type":"processDefinition","value":null,"dependsOn":null}]}'
};
-export var reportDefParamProcessDefOptions = [
- {
- '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': [
+ {
+ '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 reportDefParamProcessDefOptionsApp = {
+ 'size': 2, 'total': 2, 'start': 2, 'data': [
+ {
+ '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
+ }
+ ]
+};
export var reportDefParamTask = {
'id': 2006,
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.spec.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.spec.ts
index ee662468e9..6882cb02a4 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.spec.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.spec.ts
@@ -33,8 +33,8 @@ import { DebugElement, SimpleChange } from '@angular/core';
import {
reportDefParamCheck, reportDefParamDateRange, chartProcessDefOverview, chartTaskOverview, fieldDateRange,
fieldDateRangeInterval, fieldDuration, fieldNumber, fieldProcessDef, fieldStatus, fieldTask, fieldTypeFiltering,
- reportDefParamDuration, reportDefParamNumber, reportDefParamTaskOptions, reportDefParamStatus,
- reportDefParamRangeInterval, reportDefParamProcessDef, reportDefParamProcessDefOptions, reportDefParamTask
+ reportDefParamDuration, reportDefParamNumber, reportDefParamTaskOptions, reportDefParamStatus, reportDefParamRangeInterval,
+ reportDefParamProcessDef, reportDefParamProcessDefOptions, reportDefParamProcessDefOptionsApp, reportDefParamTask
} from '../assets/analyticsComponent.mock';
export const ANALYTICS_DIRECTIVES: any[] = [
@@ -255,7 +255,9 @@ describe('Test ng2-activiti-analytics Report ', () => {
});
});
- it('Should render a dropdown with all the process definition when the definition parameter type is \'processDefinition\' ', (done) => {
+ it('Should render a dropdown with all the process definition when the definition parameter type is \'processDefinition\' and the' +
+ ' reportId change' +
+ ' ', (done) => {
fixture.detectChanges();
component.onSuccessParamOpt.subscribe(() => {
@@ -289,6 +291,41 @@ describe('Test ng2-activiti-analytics Report ', () => {
});
+ it('Should render a dropdown with all the process definition when the definition parameter type is \'processDefinition\' and the' +
+ ' appId change' +
+ ' ', (done) => {
+ fixture.detectChanges();
+
+ component.onSuccessParamOpt.subscribe(() => {
+ fixture.detectChanges();
+ let dropDown: any = element.querySelector('#select-processDefinitionId');
+ expect(dropDown).toBeDefined();
+ expect(dropDown.length).toEqual(3);
+ expect(dropDown[0].innerHTML).toEqual('Choose One');
+ expect(dropDown[1].innerHTML).toEqual('Fake Process Test 1 Name (v 1) ');
+ expect(dropDown[2].innerHTML).toEqual('Fake Process Test 1 Name (v 2) ');
+ done();
+ });
+
+ let appId = 1;
+ component.appId = appId;
+ let change = new SimpleChange(null, appId);
+ component.ngOnChanges({ 'appId': change });
+
+ jasmine.Ajax.requests.first().respondWith({
+ status: 200,
+ contentType: 'json',
+ responseText: reportDefParamProcessDef
+ });
+
+ jasmine.Ajax.requests.mostRecent().respondWith({
+ status: 200,
+ contentType: 'json',
+ responseText: reportDefParamProcessDefOptionsApp
+ });
+
+ });
+
it('Should render the Process definition overview report ', (done) => {
fixture.detectChanges();
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts
index 2363677531..4cf8214e26 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts
@@ -33,6 +33,9 @@ export class AnalyticsComponent implements OnInit, OnChanges {
@ViewChild('processDefinition')
processDefinition: any;
+ @Input()
+ appId: string;
+
@Input()
reportId: string;
@@ -85,13 +88,13 @@ export class AnalyticsComponent implements OnInit, OnChanges {
this.dropDownSub = this.onDropdownChanged.subscribe((field) => {
let paramDependOn: ReportParameterModel = this.reportDetails.definition.parameters.find(p => p.dependsOn === field.id);
if (paramDependOn) {
- this.retrieveParameterOptions(this.reportDetails.definition.parameters, this.reportId, field.value);
+ this.retrieveParameterOptions(this.reportDetails.definition.parameters, this.appId, this.reportId, field.value);
}
});
this.paramOpts = this.onSuccessParamsReport.subscribe((report: ReportModel) => {
if (report.hasParameters()) {
- this.retrieveParameterOptions(report.definition.parameters);
+ this.retrieveParameterOptions(report.definition.parameters, this.appId);
}
});
}
@@ -102,6 +105,12 @@ export class AnalyticsComponent implements OnInit, OnChanges {
this.getParamsReports(reportId.currentValue);
return;
}
+
+ let appId = changes['appId'];
+ if (appId && (appId.currentValue || appId.currentValue === null)) {
+ this.getParamsReports(this.reportId);
+ return;
+ }
}
public getParamsReports(reportId: string) {
@@ -119,9 +128,9 @@ export class AnalyticsComponent implements OnInit, OnChanges {
);
}
- private retrieveParameterOptions(parameters: ReportParameterModel[], reportId?: string, processDefinitionId?: string) {
+ private retrieveParameterOptions(parameters: ReportParameterModel[], appId: string, reportId?: string, processDefinitionId?: string) {
parameters.forEach((param) => {
- this.analyticsService.getParamValuesByType(param.type, this.reportId, processDefinitionId).subscribe(
+ this.analyticsService.getParamValuesByType(param.type, appId, reportId, processDefinitionId).subscribe(
(opts: ParameterValueModel[]) => {
param.options = opts;
this.onSuccessParamOpt.emit(opts);
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 b51182e18d..fbef18f7ee 100644
--- a/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts
+++ b/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts
@@ -64,11 +64,11 @@ export class AnalyticsService {
}).catch(this.handleError);
}
- getParamValuesByType(type: string, reportId?: string, processDefinitionId?: string) {
+ getParamValuesByType(type: string, appId: string, reportId?: string, processDefinitionId?: string) {
if (type === 'status') {
return this.getProcessStatusValues();
} else if (type === 'processDefinition') {
- return this.getProcessDefinitionsValues();
+ return this.getProcessDefinitionsValues(appId);
} else if (type === 'dateInterval') {
return this.getDateIntervalValues();
} else if (type === 'task') {
@@ -109,8 +109,8 @@ export class AnalyticsService {
});
}
- getProcessDefinitionsValues(appId?: string): Observable {
- let url = `${this.alfrescoSettingsService.getBPMApiBaseUrl()}/app/rest/reporting/process-definitions`;
+ getProcessDefinitionsValues(appId: string): Observable {
+ let url = `${this.alfrescoSettingsService.getBPMApiBaseUrl()}/app/rest/process-definitions`;
let params: URLSearchParams;
if (appId) {
params = new URLSearchParams();
@@ -122,7 +122,7 @@ export class AnalyticsService {
.map((res: any) => {
let paramOptions: ParameterValueModel[] = [];
let body = res.json();
- body.forEach((opt) => {
+ body.data.forEach((opt) => {
paramOptions.push(new ParameterValueModel(opt));
});
return paramOptions;