#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> <span><h5>Report List</h5></span>
<hr> <hr>
<analytics-report-list <analytics-report-list
[appId]="appId"
(reportClick)="onReportClick($event)" (reportClick)="onReportClick($event)"
#analyticsreportlist> #analyticsreportlist>
</analytics-report-list> </analytics-report-list>

View File

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

View File

@ -20,7 +20,15 @@ import { Observable } from 'rxjs/Rx';
import { Response } from '@angular/http'; import { Response } from '@angular/http';
import { AlfrescoApiService, LogService } from 'ng2-alfresco-core'; import { AlfrescoApiService, LogService } from 'ng2-alfresco-core';
import { ReportParametersModel, ParameterValueModel } from '../models/report.model'; 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() @Injectable()
export class AnalyticsService { export class AnalyticsService {
@ -33,18 +41,28 @@ export class AnalyticsService {
* Retrive all the Deployed app * Retrive all the Deployed app
* @returns {Observable<any>} * @returns {Observable<any>}
*/ */
getReportList(): Observable<any> { getReportList(appId: string): Observable<any> {
return Observable.fromPromise(this.apiService.getInstance().activiti.reportApi.getReportList()) return Observable.fromPromise(this.apiService.getInstance().activiti.reportApi.getReportList())
.map((res: any) => { .map((res: any) => {
let reports: ReportParametersModel[] = []; let reports: ReportParametersModel[] = [];
res.forEach((report: ReportParametersModel) => { res.forEach((report: ReportParametersModel) => {
let reportModel = new ReportParametersModel(report); let reportModel = new ReportParametersModel(report);
reports.push(reportModel); if (this.isReportValid(appId, report)) {
reports.push(reportModel);
}
}); });
return reports; return reports;
}).catch(err => this.handleError(err)); }).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> { getReportParams(reportId: string): Observable<any> {
return Observable.fromPromise(this.apiService.getInstance().activiti.reportApi.getReportParams(reportId)) return Observable.fromPromise(this.apiService.getInstance().activiti.reportApi.getReportParams(reportId))
.map((res: any) => { .map((res: any) => {
@ -126,7 +144,7 @@ export class AnalyticsService {
} }
getProcessDefinitionsValues(appId: string): Observable<any> { getProcessDefinitionsValues(appId: string): Observable<any> {
let options = { 'appDefinitionId': appId}; let options = { 'appDefinitionId': appId };
return Observable.fromPromise(this.apiService.getInstance().activiti.processDefinitionsApi.getProcessDefinitions(options)) return Observable.fromPromise(this.apiService.getInstance().activiti.processDefinitionsApi.getProcessDefinitions(options))
.map((res: any) => { .map((res: any) => {
let paramOptions: ParameterValueModel[] = []; let paramOptions: ParameterValueModel[] = [];