/*! * @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, Input, Output, EventEmitter } from '@angular/core'; import { AlfrescoTranslationService, LogService } from 'ng2-alfresco-core'; import { ProcessInstance } from '../models/process-instance.model'; import { DatePipe } from '@angular/common'; declare let componentHandler: any; @Component({ selector: 'adf-process-instance-header, activiti-process-instance-header', templateUrl: './activiti-process-instance-header.component.html', styleUrls: ['./activiti-process-instance-header.component.css'] }) export class ActivitiProcessInstanceHeader { @Input() showDiagram: boolean = true; @Input() processInstance: ProcessInstance; @Output() onError: EventEmitter = new EventEmitter(); @Output() showProcessDiagram: EventEmitter = new EventEmitter(); constructor(private translate: AlfrescoTranslationService, private logService: LogService) { if (translate) { translate.addTranslationFolder('ng2-activiti-processlist', 'assets/ng2-activiti-processlist'); } } getStartedByFullName(): string { if (this.processInstance && this.processInstance.startedBy) { return (this.processInstance.startedBy.firstName && this.processInstance.startedBy.firstName !== 'null' ? this.processInstance.startedBy.firstName + ' ' : '') + this.processInstance.startedBy.lastName; } return ''; } getFormatDate(value, format: string) { let datePipe = new DatePipe('en-US'); try { return datePipe.transform(value, format); } catch (err) { this.logService.error(`ProcessListInstanceHeader: error parsing date ${value} to format ${format}`); } } isRunning(): boolean { return this.processInstance && !this.processInstance.ended; } isDiagramDisabled(): boolean { return !this.isRunning() ? true : undefined; } showDiagramEvent() { this.showProcessDiagram.emit({value: this.processInstance.id}); } isShowDiagram(): boolean { return this.showDiagram; } }