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 @@
+
+
+
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)