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 41bfb72f31..988b262764 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.html +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.html @@ -33,6 +33,7 @@
Process Filters +
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 95ed87e8dd..b30933a0c0 100644 --- a/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts +++ b/demo-shell-ng2/app/components/activiti/activiti-demo.component.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { Component, AfterViewChecked, ViewChild } from '@angular/core'; +import { Component, AfterViewChecked, ViewChild, Input } from '@angular/core'; import { ALFRESCO_TASKLIST_DIRECTIVES } from 'ng2-activiti-tasklist'; import { ACTIVITI_PROCESSLIST_DIRECTIVES } from 'ng2-activiti-processlist'; import { ActivitiForm } from 'ng2-activiti-form'; @@ -55,6 +55,9 @@ export class ActivitiDemoComponent implements AfterViewChecked { taskFilter: any; processFilter: any; + @Input() + appId: string; + setChoice($event) { this.currentChoice = $event.target.value; } diff --git a/ng2-components/ng2-activiti-processlist/src/components/activiti-start-process.component.css b/ng2-components/ng2-activiti-processlist/src/components/activiti-start-process.component.css new file mode 100644 index 0000000000..7e9e64291f --- /dev/null +++ b/ng2-components/ng2-activiti-processlist/src/components/activiti-start-process.component.css @@ -0,0 +1,11 @@ +:host { + width: 100%; +} + +.activiti-label { + font-weight: bolder; +} + +.material-icons:hover { + color: rgb(255, 152, 0); +} diff --git a/ng2-components/ng2-activiti-processlist/src/components/activiti-start-process.component.html b/ng2-components/ng2-activiti-processlist/src/components/activiti-start-process.component.html new file mode 100644 index 0000000000..542d026bf8 --- /dev/null +++ b/ng2-components/ng2-activiti-processlist/src/components/activiti-start-process.component.html @@ -0,0 +1,23 @@ + + + +

Start Process

+
+
+ + +
+
+ + +
+
+
+ + +
+
diff --git a/ng2-components/ng2-activiti-processlist/src/components/activiti-start-process.component.ts b/ng2-components/ng2-activiti-processlist/src/components/activiti-start-process.component.ts new file mode 100644 index 0000000000..a42f6a9126 --- /dev/null +++ b/ng2-components/ng2-activiti-processlist/src/components/activiti-start-process.component.ts @@ -0,0 +1,102 @@ +/*! + * @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, OnInit, ViewChild } from '@angular/core'; +import { AlfrescoTranslationService, AlfrescoAuthenticationService, AlfrescoPipeTranslate } from 'ng2-alfresco-core'; +import { ActivitiProcessService } from './../services/activiti-process.service'; + +declare let componentHandler: any; +declare let __moduleName: string; + +@Component({ + selector: 'activiti-start-process', + moduleId: __moduleName, + templateUrl: './activiti-start-process.component.html', + styleUrls: ['./activiti-start-process.component.css'], + providers: [ActivitiProcessService], + pipes: [ AlfrescoPipeTranslate ] + +}) +export class ActivitiStartProcessButton implements OnInit { + + @Input() + appId: string; + + @ViewChild('dialog') + dialog: any; + + processDefinitions: any[] = []; + + name: string; + processDefinition: string; + + /** + * Constructor + * @param auth + * @param translate + * @param activitiProcess + */ + constructor(private auth: AlfrescoAuthenticationService, + private translate: AlfrescoTranslationService, + private activitiProcess: ActivitiProcessService) { + + if (translate) { + translate.addTranslationFolder('node_modules/ng2-activiti-processlist/src'); + } + } + + ngOnInit() { + this.load(this.appId); + } + + public load(appId: string) { + this.activitiProcess.getProcessDefinitions(this.appId).subscribe( + (res: any[]) => { + this.processDefinitions = res; + }, + (err) => { + console.log(err); + } + ); + } + + public showDialog() { + if (this.dialog) { + this.dialog.nativeElement.showModal(); + } + } + + public startProcess() { + if (this.processDefinition && this.name) { + this.activitiProcess.startProcess(this.processDefinition, this.name).subscribe( + (res: any) => { + console.log('Created process', res); + this.cancel(); + }, + (err) => { + console.log(err); + } + ); + } + } + + public cancel() { + if (this.dialog) { + this.dialog.nativeElement.close(); + } + } +} diff --git a/ng2-components/ng2-activiti-processlist/src/services/activiti-process.service.ts b/ng2-components/ng2-activiti-processlist/src/services/activiti-process.service.ts index 751fb04252..9f5926172e 100644 --- a/ng2-components/ng2-activiti-processlist/src/services/activiti-process.service.ts +++ b/ng2-components/ng2-activiti-processlist/src/services/activiti-process.service.ts @@ -135,6 +135,16 @@ export class ActivitiProcessService { .catch(this.handleError); } + startProcess(processDefinitionId: string, name: string) { + let startRequest: any = {}; + startRequest.name = name; + startRequest.processDefinitionId = processDefinitionId; + return Observable.fromPromise( + this.authService.getAlfrescoApi().activiti.processApi.startNewProcessInstance(startRequest) + ) + .catch(this.handleError); + } + cancelProcess(processInstanceId: string) { return Observable.fromPromise( this.authService.getAlfrescoApi().activiti.processApi.deleteProcessInstance(processInstanceId)