#482 populate action/context menu with bpm processes

This commit is contained in:
Denys Vuika
2016-07-27 11:44:20 +01:00
parent 31c010a349
commit a945cd1fff
3 changed files with 53 additions and 6 deletions

View File

@@ -15,11 +15,13 @@
* limitations under the License. * limitations under the License.
*/ */
import { Component } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { import {
DOCUMENT_LIST_DIRECTIVES, DOCUMENT_LIST_DIRECTIVES,
DOCUMENT_LIST_PROVIDERS, DOCUMENT_LIST_PROVIDERS,
DocumentActionsService DocumentActionsService,
DocumentList,
ContentActionModel, ContentActionHandler
} from 'ng2-alfresco-documentlist'; } from 'ng2-alfresco-documentlist';
import { import {
MDL, MDL,
@@ -30,6 +32,7 @@ import {
import { PaginationComponent } from 'ng2-alfresco-datatable'; import { PaginationComponent } from 'ng2-alfresco-datatable';
import { ALFRESCO_ULPOAD_COMPONENTS } from 'ng2-alfresco-upload'; import { ALFRESCO_ULPOAD_COMPONENTS } from 'ng2-alfresco-upload';
import { VIEWERCOMPONENT } from 'ng2-alfresco-viewer'; import { VIEWERCOMPONENT } from 'ng2-alfresco-viewer';
import { FormService } from 'ng2-activiti-form';
declare let __moduleName: string; declare let __moduleName: string;
@@ -46,10 +49,10 @@ declare let __moduleName: string;
CONTEXT_MENU_DIRECTIVES, CONTEXT_MENU_DIRECTIVES,
PaginationComponent PaginationComponent
], ],
providers: [DOCUMENT_LIST_PROVIDERS], providers: [DOCUMENT_LIST_PROVIDERS, FormService],
pipes: [AlfrescoPipeTranslate] pipes: [AlfrescoPipeTranslate]
}) })
export class FilesComponent { export class FilesComponent implements OnInit {
currentPath: string = '/Sites/swsdp/documentLibrary'; currentPath: string = '/Sites/swsdp/documentLibrary';
urlFile: string; urlFile: string;
@@ -62,8 +65,12 @@ export class FilesComponent {
acceptedFilesType: string = '.jpg,.pdf,.js'; acceptedFilesType: string = '.jpg,.pdf,.js';
@ViewChild(DocumentList)
documentList: DocumentList;
constructor(private contentService: AlfrescoContentService, constructor(private contentService: AlfrescoContentService,
documentActions: DocumentActionsService) { private documentActions: DocumentActionsService,
private formService: FormService) {
documentActions.setHandler('my-handler', this.myDocumentActionHandler.bind(this)); documentActions.setHandler('my-handler', this.myDocumentActionHandler.bind(this));
} }
@@ -111,4 +118,30 @@ export class FilesComponent {
this.acceptedFilesTypeShow = !this.acceptedFilesTypeShow; this.acceptedFilesTypeShow = !this.acceptedFilesTypeShow;
return this.acceptedFilesTypeShow; return this.acceptedFilesTypeShow;
} }
ngOnInit() {
console.log(this.documentList);
this.formService.getProcessDefinitions().subscribe(
defs => this.setupBpmActions(defs || []),
err => console.log(err)
);
}
private setupBpmActions(actions: any[]) {
actions.map(def => {
let action = new ContentActionModel();
action.target = 'document';
action.title = 'Activiti: ' + (def.name || 'Unknown process');
action.handler = this.getBpmActionHandler(def);
this.documentList.actions.push(action);
});
console.log(this.documentList.actions);
}
private getBpmActionHandler(processDefinition: any): ContentActionHandler {
return function (obj: any, target?: any) {
window.alert(`Starting BPM process: ${processDefinition.id}`);
}.bind(this);
}
} }

View File

@@ -24,7 +24,17 @@ import { AlfrescoSettingsService } from 'ng2-alfresco-core';
@Injectable() @Injectable()
export class FormService { export class FormService {
constructor(private http: Http, private alfrescoSettingsService: AlfrescoSettingsService) { constructor(private http: Http,
private alfrescoSettingsService: AlfrescoSettingsService) {
}
getProcessDefinitions(): Observable<any> {
let url = `${this.alfrescoSettingsService.bpmHost}/activiti-app/api/enterprise/process-definitions`;
let options = this.getRequestOptions();
return this.http
.get(url, options)
.map(this.toJsonArray)
.catch(this.handleError);
} }
getTasks(): Observable<any> { getTasks(): Observable<any> {

View File

@@ -41,6 +41,10 @@ export * from './src/services/folder-actions.service';
export * from './src/services/document-actions.service'; export * from './src/services/document-actions.service';
export * from './src/services/document-list.service'; export * from './src/services/document-list.service';
// models
export * from './src/models/content-action.model';
export * from './src/models/document-library.model';
export const DOCUMENT_LIST_DIRECTIVES: [any] = [ export const DOCUMENT_LIST_DIRECTIVES: [any] = [
DocumentList, DocumentList,
ContentColumn, ContentColumn,