mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
#482 populate action/context menu with bpm processes
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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> {
|
||||||
|
@@ -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,
|
||||||
|
Reference in New Issue
Block a user