--- Added: v2.0.0 Status: Active Last reviewed: 2018-03-29 --- # Document Actions service Implements the document menu actions for the [Document List component](../content-services/document-list.component.md). ## Class members ### Methods - **canExecuteAction**(obj: `any`): `boolean`
Checks if actions can be executed for an item. - _obj:_ `any` - Item to receive an action - **Returns** `boolean` - True if the action can be executed on this item, false otherwise - **getHandler**(key: `string`): `ContentActionHandler`
Gets the handler for an action. - _key:_ `string` - Identifier of the action - **Returns** `ContentActionHandler` - The handler for the action - **setHandler**(key: `string`, handler: `ContentActionHandler`): `boolean`
Sets a new handler for an action. - _key:_ `string` - Identifier of the action - _handler:_ `ContentActionHandler` - Handler for the action - **Returns** `boolean` - False if the key was an empty/null string, true otherwise ## Details This service implements the built-in actions that can be applied to a document shown in a [Document List component](document-list.component.md): **delete**, **download**, **copy** and **move** (see the [Content Action component](content-action.component.md) 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. ```ts 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: ```html ``` You can also override a built-in handler (eg, 'download') with your own function: ```ts 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. ## See also - [Content action component](content-action.component.md) - [Folder actions service](folder-actions.service.md)