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 8469fd7fb2..0d08e2376e 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.html +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.html @@ -92,10 +92,17 @@
- + +
- + +
diff --git a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts index f01360662b..5ae153cb8e 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts @@ -30,6 +30,7 @@ import { ActivitiStartProcessInstance, ProcessInstance } from 'ng2-activiti-processlist'; +import { AnalyticsReportListComponent } from 'ng2-activiti-analytics'; import { ActivatedRoute } from '@angular/router'; import { Subscription } from 'rxjs/Rx'; import { @@ -75,6 +76,9 @@ export class ActivitiDemoComponent implements AfterViewInit { @ViewChild(ActivitiStartProcessInstance) activitiStartProcess: ActivitiStartProcessInstance; + @ViewChild(AnalyticsReportListComponent) + analyticsreportlist: AnalyticsReportListComponent; + @Input() appId: number; @@ -183,6 +187,10 @@ export class ActivitiDemoComponent implements AfterViewInit { this.currentProcessInstanceId = processInstanceId; } + onEditReport(name: string) { + this.analyticsreportlist.reload(); + } + navigateStartProcess() { this.currentProcessInstanceId = currentProcessIdNew; } 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 index 979d8ad0b1..47ce38c21b 100644 --- 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 @@ -57,13 +57,21 @@ export class AnalyticsReportListComponent implements OnInit { this.reports.push(report); }); - this.getReportListByAppId(); + this.getReportList(); } /** - * Get the report list by app id + * Reload the component */ - getReportListByAppId() { + reload() { + this.reset(); + this.getReportList(); + } + + /** + * Get the report list + */ + getReportList() { this.analyticsService.getReportList().subscribe( (res: ReportParametersModel[]) => { if (res && res.length === 0) { @@ -108,6 +116,15 @@ export class AnalyticsReportListComponent implements OnInit { return this.reports === undefined || (this.reports && this.reports.length === 0); } + /** + * Reset the list + */ + private reset() { + if (!this.isReportsEmpty()) { + this.reports = []; + } + } + /** * Select the current report * @param report diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.css b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.css index ae995ca854..aae39eab91 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.css +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.css @@ -21,3 +21,7 @@ .dropdown-widget__invalid .mdl-textfield__error { visibility: visible !important; } + +.large { + font-size: x-large; +} diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.html b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.html index f48bbb8bc0..ba7950517c 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.html +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.html @@ -1,7 +1,18 @@
-

{{reportParameters.name}}

+
+ +
+

{{reportParameters.name}}

diff --git a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts index cf16698e80..45bc29cc9a 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics-report-parameters.component.ts @@ -47,6 +47,9 @@ export class AnalyticsReportParametersComponent implements OnInit, OnChanges { @Output() onError = new EventEmitter(); + @Output() + onEdit = new EventEmitter(); + @Output() onFormValueChanged = new EventEmitter(); @@ -63,6 +66,7 @@ export class AnalyticsReportParametersComponent implements OnInit, OnChanges { private dropDownSub; private reportParamsSub; private paramOpts; + private isEditable: boolean = false; constructor(private translate: AlfrescoTranslationService, private analyticsService: AnalyticsService, @@ -210,4 +214,25 @@ export class AnalyticsReportParametersComponent implements OnInit, OnChanges { this.reportParamsSub.unsubscribe(); } } + + public editEnable() { + this.isEditable = true; + } + + public editDisable() { + this.isEditable = false; + } + + public editTitle() { + this.reportParamsSub = this.analyticsService.updateReport(this.reportParameters.id, this.reportParameters.name).subscribe( + (res: ReportParametersModel) => { + this.editDisable(); + this.onEdit.emit(this.reportParameters.name); + }, + (err: any) => { + console.log(err); + this.onError.emit(err); + } + ); + } } 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 a6b2f5ef26..a52b7480c7 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.html +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.html @@ -1,6 +1,9 @@
+ (onFormValueChanged)="reset()" + (onSuccess)="showReport($event)" + (onEdit)="onEditReport($event)"> +
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 3d12832940..008e12cbbf 100644 --- a/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts +++ b/ng2-components/ng2-activiti-analytics/src/components/analytics.component.ts @@ -41,12 +41,15 @@ export class AnalyticsComponent implements OnChanges { @Output() onSuccess = new EventEmitter(); + @Output() + editReport = new EventEmitter(); + @Output() onError = new EventEmitter(); reportParamQuery = new ReportQuery(); - reports: any[]; + reports: Chart[]; public barChartOptions: any = { responsive: true, @@ -107,4 +110,8 @@ export class AnalyticsComponent implements OnChanges { let clone = JSON.parse(JSON.stringify(report)); report.datasets = clone.datasets; } + + public onEditReport(name: string) { + this.editReport.emit(name); + } } 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 d9fc0b94cd..f1ccd7c731 100644 --- a/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts +++ b/ng2-components/ng2-activiti-analytics/src/services/analytics.service.ts @@ -178,6 +178,13 @@ export class AnalyticsService { .catch(this.handleError); } + public updateReport(reportId: number, name: string): Observable { + return Observable.fromPromise(this.apiService.getInstance().activiti.reportApi.updateReport(reportId, name)) + .map((res: any) => { + console.log('upload'); + }).catch(this.handleError); + } + private handleError(error: Response) { console.error(error); return Observable.throw(error.json().error || 'Server error');