alfresco-ng2-components/docs/folder-actions.service.md
Andy Stark 68ded23c9a [ADF-1769] Added JSDocs to services (#2937)
* [ADF-1769] Added JSDocs to services

* Removed JSDoc return directives from doc comments
2018-02-13 22:44:47 +00:00

2.6 KiB

Folder Actions service

Implements the folder menu actions for the Document List component.

Methods

  • getHandler(key: string): ContentActionHandler
    Gets the handler function for an action.
    • key - Identifier for the action
  • setHandler(key: string, handler: ContentActionHandler): boolean
    Sets a new handler function for an action.
    • key - Identifier for the action
    • handler - The new handler function
  • canExecuteAction(obj: any): boolean
    Checks if an action is available for a particular item.
    • obj - Item to check

Details

This service implements the built-in actions that can be applied to a folder 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 myFolderActionHandler function each time it is selected from the Document List menu.

import { FolderActionsService } from '@alfresco/adf-content-services';

export class MyView {

    constructor(folderActions: FolderActionsService) {
        folderActions.setHandler(
            'my-handler',
            this.myFolderActionHandler.bind(this)
        );
    }

    myFolderActionHandler(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="folder"
            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(folderActions: FolderActionsService) {
        folderActions.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