2.6 KiB
Added, Status
Added | Status |
---|---|
v2.0.0 | Active |
Document Actions service
Implements the document menu actions for the Document List component.
Methods
getHandler(key: string): ContentActionHandler
Gets the handler for an action.key
- Identifier of the action
setHandler(key: string, handler: ContentActionHandler): boolean
Sets a new handler for an action.key
- Identifier of the actionhandler
- Handler for the action
canExecuteAction(obj: any): boolean
Checks if actions can be executed for an item.obj
- Item to receive an action
Details
This service implements the built-in actions that can be applied to a document shown in a Document List component: delete, download, copy and move (see the Content Action component for further details and examples of these menu items). However, you can also use the service to add extra actions or replace the built-in ones with your own implementation.
Registering an action
In the example below, a custom handler called my-handler
is registered with the service.
This action will invoke the myDocumentActionHandler
function each time it is selected
from the Document List menu.
import { DocumentActionsService } from '@alfresco/adf-content-services';
export class MyView {
constructor(documentActions: DocumentActionsService) {
documentActions.setHandler(
'my-handler',
this.myDocumentActionHandler.bind(this)
);
}
myDocumentActionHandler(obj: any) {
window.alert('my custom action handler');
}
}
The action can then be used from the component in the usual way:
<adf-document-list ...>
<content-actions>
<content-action
target="document"
title="My action"
handler="my-handler">
</content-action>
</content-actions>
</adf-document-list>
You can also override a built-in handler (eg, 'download') with your own function:
export class MyView {
constructor(documentActions: DocumentActionsService) {
documentActions.setHandler(
'download',
this.customDownloadBehavior.bind(this)
);
}
customDownloadBehavior(obj: any) {
window.alert('my custom download behavior');
}
}
You will probably want to set up all your custom actions at the application root level or with a custom application service.