#1657 - Added filter by name when clicking on specific app (#1794)

This commit is contained in:
Vito 2017-03-30 10:15:32 -07:00 committed by Denys Vuika
parent 952df8d81c
commit 2cc124bb87
3 changed files with 31 additions and 9 deletions

View File

@ -132,6 +132,7 @@
<span><h5>Report List</h5></span>
<hr>
<analytics-report-list
[appId]="appId"
(reportClick)="onReportClick($event)"
#analyticsreportlist>
</analytics-report-list>

View File

@ -35,6 +35,9 @@ export class AnalyticsReportListComponent implements OnInit {
@Input()
layoutType: string = AnalyticsReportListComponent.LAYOUT_LIST;
@Input()
appId: string;
@Output()
reportClick: EventEmitter<ReportParametersModel> = new EventEmitter<ReportParametersModel>();
@ -59,7 +62,7 @@ export class AnalyticsReportListComponent implements OnInit {
ngOnInit() {
this.initObserver();
this.getReportList();
this.getReportList(this.appId);
}
initObserver() {
@ -73,14 +76,14 @@ export class AnalyticsReportListComponent implements OnInit {
*/
reload() {
this.reset();
this.getReportList();
this.getReportList(this.appId);
}
/**
* Get the report list
*/
getReportList() {
this.analyticsService.getReportList().subscribe(
getReportList(appId: string) {
this.analyticsService.getReportList(appId).subscribe(
(res: ReportParametersModel[]) => {
if (res && res.length === 0) {
this.createDefaultReports();
@ -104,7 +107,7 @@ export class AnalyticsReportListComponent implements OnInit {
createDefaultReports() {
this.analyticsService.createDefaultReports().subscribe(
() => {
this.analyticsService.getReportList().subscribe(
this.analyticsService.getReportList(this.appId).subscribe(
(response: ReportParametersModel[]) => {
response.forEach((report) => {
this.reportObserver.next(report);

View File

@ -20,7 +20,15 @@ import { Observable } from 'rxjs/Rx';
import { Response } from '@angular/http';
import { AlfrescoApiService, LogService } from 'ng2-alfresco-core';
import { ReportParametersModel, ParameterValueModel } from '../models/report.model';
import { Chart, PieChart, TableChart, BarChart, HeatMapChart, MultiBarChart, DetailsTableChart } from '../models/chart.model';
import {
Chart,
PieChart,
TableChart,
BarChart,
HeatMapChart,
MultiBarChart,
DetailsTableChart
} from '../models/chart.model';
@Injectable()
export class AnalyticsService {
@ -33,18 +41,28 @@ export class AnalyticsService {
* Retrive all the Deployed app
* @returns {Observable<any>}
*/
getReportList(): Observable<any> {
getReportList(appId: string): Observable<any> {
return Observable.fromPromise(this.apiService.getInstance().activiti.reportApi.getReportList())
.map((res: any) => {
let reports: ReportParametersModel[] = [];
res.forEach((report: ReportParametersModel) => {
let reportModel = new ReportParametersModel(report);
reports.push(reportModel);
if (this.isReportValid(appId, report)) {
reports.push(reportModel);
}
});
return reports;
}).catch(err => this.handleError(err));
}
private isReportValid(appId: string, report: ReportParametersModel) {
let isValid: boolean = true;
if (appId && appId !== '0' && report.name.includes('Process definition overview')) {
isValid = false;
}
return isValid;
}
getReportParams(reportId: string): Observable<any> {
return Observable.fromPromise(this.apiService.getInstance().activiti.reportApi.getReportParams(reportId))
.map((res: any) => {
@ -126,7 +144,7 @@ export class AnalyticsService {
}
getProcessDefinitionsValues(appId: string): Observable<any> {
let options = { 'appDefinitionId': appId};
let options = { 'appDefinitionId': appId };
return Observable.fromPromise(this.apiService.getInstance().activiti.processDefinitionsApi.getProcessDefinitions(options))
.map((res: any) => {
let paramOptions: ParameterValueModel[] = [];