diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.css b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.css
index 096757598a..1cc89bc0ef 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.css
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.css
@@ -23,3 +23,7 @@
.dropdown-widget__invalid .mdl-textfield__error {
visibility: visible !important;
}
+
+.analytics-row__entry {
+ cursor: pointer;
+}
\ No newline at end of file
diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.html b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.html
index f487b87cc1..19ada1ae97 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.html
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.html
@@ -41,7 +41,17 @@
+
+
+ {{label | translate}} |
+
+
{{row | translate }} |
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 9c1939f669..09413f5013 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
@@ -151,7 +151,7 @@ describe('AnalyticsComponent', () => {
expect(res[0].datasets[0].data[1]).toEqual(1);
expect(res[1]).toBeDefined();
- expect(res[1].type).toEqual('table');
+ expect(res[1].type).toEqual('masterDetailTable');
expect(res[1].datasets).toBeDefined();
expect(res[1].datasets.length).toEqual(2);
expect(res[1].datasets[0][0]).toEqual('fake 1 user task');
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 5fb04a512e..186fe8f8f4 100644
--- a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts
+++ b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts
@@ -51,6 +51,8 @@ export class AnalyticsComponent implements OnChanges {
reports: Chart[];
+ showDetails: boolean = false;
+
public barChartOptions: any = {
responsive: true,
scales: {
@@ -114,4 +116,12 @@ export class AnalyticsComponent implements OnChanges {
public onEditReport(name: string) {
this.editReport.emit(name);
}
+
+ toggleDetailsTable() {
+ this.showDetails = !this.showDetails;
+ }
+
+ isShowDetails(): boolean {
+ return this.showDetails;
+ }
}
diff --git a/ng2-components/ng2-activiti-analytics/src/models/chart.model.ts b/ng2-components/ng2-activiti-analytics/src/models/chart.model.ts
index 43783266c0..5eaa1b3898 100644
--- a/ng2-components/ng2-activiti-analytics/src/models/chart.model.ts
+++ b/ng2-components/ng2-activiti-analytics/src/models/chart.model.ts
@@ -49,6 +49,9 @@ export class Chart {
case 'processDefinitionHeatMap':
chartType = 'HeatMap';
break;
+ case 'masterDetailTable':
+ chartType = 'masterDetailTable';
+ break;
default:
chartType = 'table';
break;
@@ -191,6 +194,22 @@ export class TableChart extends Chart {
}
}
+export class DetailsTableChart extends TableChart {
+ detailsTable: any;
+ showDetails: boolean = false;
+
+ constructor(obj?: any) {
+ super(obj);
+ if (obj.detailTables) {
+ this.detailsTable = new TableChart(obj.detailTables[0]);
+ }
+ }
+
+ hasDetailsTable() {
+ return this.detailsTable ? true : false;
+ }
+}
+
export class HeatMapChart extends Chart {
avgTimePercentages: string;
avgTimeValues: string;
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 7623a98593..672f85b644 100644
--- a/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts
+++ b/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts
@@ -20,7 +20,7 @@ import { Observable } from 'rxjs/Rx';
import { Response } from '@angular/http';
import { AlfrescoApiService } from 'ng2-alfresco-core';
import { ReportParametersModel, ParameterValueModel } from '../models/report.model';
-import { Chart, PieChart, TableChart, BarChart, HeatMapChart, MultiBarChart } from '../models/chart.model';
+import { Chart, PieChart, TableChart, BarChart, HeatMapChart, MultiBarChart, DetailsTableChart } from '../models/chart.model';
@Injectable()
export class AnalyticsService {
@@ -158,7 +158,7 @@ export class AnalyticsService {
} else if (chartData.type === 'processDefinitionHeatMap') {
elements.push(new HeatMapChart(chartData));
} else if (chartData.type === 'masterDetailTable') {
- elements.push(new TableChart(chartData));
+ elements.push(new DetailsTableChart(chartData));
} else if (chartData.type === 'barChart') {
elements.push(new BarChart(chartData));
} else if (chartData.type === 'multiBarChart') {