diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.css b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.html b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.html new file mode 100644 index 0000000000..c5a70dea46 --- /dev/null +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.html @@ -0,0 +1,10 @@ + \ No newline at end of file diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.ts new file mode 100644 index 0000000000..103e77b41e --- /dev/null +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-list.component.ts @@ -0,0 +1,91 @@ +/*! + * @license + * Copyright 2016 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Component, EventEmitter, OnInit, Output } from '@angular/core'; +import { AlfrescoAuthenticationService } from 'ng2-alfresco-core'; +import { AnalyticsService } from '../services/analytics.service'; +import { ReportModel } from '../models/report.model'; +import { Observer } from 'rxjs/Observer'; +import { Observable } from 'rxjs/Observable'; + + +@Component({ + moduleId: module.id, + selector: 'analytics-report-list', + templateUrl: './analytics-report-list.component.html', + styleUrls: ['./analytics-report-list.component.css'] +}) +export class AnalyticsReportListComponent implements OnInit { + + @Output() + reportClick: EventEmitter = new EventEmitter(); + + @Output() + onSuccess = new EventEmitter(); + + @Output() + onError = new EventEmitter(); + + private reportObserver: Observer; + report$: Observable; + + currentReport: any; + + reports: ReportModel[] = []; + + constructor(private auth: AlfrescoAuthenticationService, + private analyticsService: AnalyticsService) { + + this.report$ = new Observable(observer => this.reportObserver = observer).share(); + } + + ngOnInit() { + this.report$.subscribe((report: ReportModel) => { + this.reports.push(report); + }); + + this.getReportListByAppId(); + } + + + getReportListByAppId() { + this.analyticsService.getReportList().subscribe( + (res: ReportModel[]) => { + this.reports = res; + this.onSuccess.emit(res); + }, + (err: any) => { + this.onError.emit(err); + console.log(err); + }, + () => console.log('Reports loaded') + ); + } + + isReportsEmpty(): boolean { + return this.reports === undefined || (this.reports && this.reports.length === 0); + } + + /** + * Select the current report + * @param report + */ + public selectReport(report: any) { + this.currentReport = report; + this.reportClick.emit(report); + } +}