Renders a list containing all the process instances matched by the parameters specified.

Contents

Basic Usage

app.component.html

<adf-cloud-process-list
    [appName]="'app-name'">
</adf-cloud-process-list>

Transclusions

Any content inside an <adf-custom-empty-content> sub-component will be shown when the process list is empty:

<adf-cloud-process-list>
    <adf-custom-empty-content>
        Your Content
    </adf-custom-empty-content>
<adf-cloud-process-list>

Class members

Properties

NameTypeDefault valueDescription
actionsPositionstring"right"Position of the actions dropdown menu. Can be "left" or "right".
appNamestring""The name of the application.
appVersionnumber | number[]The version of the application.
businessKeystring""Filter the processes to display only the ones with this businessKey value.
completedDatestring""Filter the processes. Display only process with completedDate equal to the supplied date.
completedFromstring""Filter the processes. Display only process with completedFrom equal to the supplied date.
completedTostring""Filter the processes. Display only process with completedTo equal to the supplied date.
environmentIdstringFilter the processes to display only the ones with this environment ID.
idstring""Filter the processes to display only the ones with this ID.
initiatorstring""Name of the initiator of the process.
isResizingEnabledbooleanfalseToggles main datatable column resizing feature.
lastModifiedFromDateFilter the processes. Display only process with lastModifiedTo equal to the supplied date.
lastModifiedToDateFilter the processes. Display only process with lastModifiedTo equal to the supplied date.
multiselectbooleanfalseToggles multiple row selection and renders checkboxes at the beginning of each row
namestring""Filter the processes to display only the ones with this name.
presetColumnstringCustom preset column schema in JSON format.
processDefinitionIdstring""Filter the processes to display only the ones with this process definition ID.
processDefinitionKeystring""Filter the processes to display only the ones with this process definition key.
processDefinitionNamestring""Filter the processes to display only the ones with this process definition name.
selectionModestring"single"Row selection mode. Can be "none", "single" or "multiple". For multiple mode, you can use Cmd (macOS) or Ctrl (Win) modifier key to toggle selection for multiple rows.
showActionsbooleanfalseToggles the data actions column.
showContextMenubooleanfalseToggles custom context menu for the component.
showMainDatatableActionsbooleanfalseToggle main datatable actions.
sortingProcessListCloudSortingModel[]Array of objects specifying the sort order and direction for the list. The sort parameters are for BE sorting.
startFromstring""Filter the processes. Display only process with startedDate greater then the supplied date.
startTostring""Filter the processes. Display only process with startedDate less than the supplied date.
statusstring""Filter the processes to display only the ones with this status.
stickyHeaderbooleanfalseToggles the sticky header mode.
suspendedFromstring""Filter the processes. Display only process with suspendedFrom equal to the supplied date.
suspendedTostring""Filter the processes. Display only process with suspendedTo equal to the supplied date.

Events

NameTypeDescription
errorEventEmitter<any>Emitted when an error occurs while loading the list of process instances from the server.
executeRowActionEventEmitter<DataRowActionEvent>Emitted when the user executes a row action.
rowClickEventEmitter<string>Emitted when a row in the process list is clicked.
rowsSelectedEventEmitter<any[]>Emitted when rows are selected/unselected.
showRowActionsMenuEventEmitter<DataCellEvent>Emitted before the actions menu is displayed for a row.
showRowContextMenuEventEmitter<DataCellEvent>Emitted before the context menu is displayed for a row.
successEventEmitter<any>Emitted when the list of process instances has been loaded successfully from the server.

Details

You can define a custom schema for the list in the app.config.json file and access it with the presetColumn property as shown below:

"`adf-cloud-process-list`": {
        "presets": {
            "customSchema": [
            {
                    "key": "name",
                    "type": "text",
                    "title": "name",
                    "sortable": true
            }],
            "default": [
                {
                    "key": "name",
                    "type": "text",
                    "title": "name",
                    "sortable": true
            }],
        }
}
<adf-cloud-process-list
    [appName]="'appName'">
</adf-cloud-process-list>

You can also define the schema in the HTML using the Data column component. You can combine this with schema information defined in app.config.json as in the example below:

"adf-cloud-process-list": {
        "presets": {
            "customSchema": [
            {
                    "key": "id",
                    "type": "text",
                    "title": "Id",
                    "sortable": true
            }],
            "default": [
                {
                    "key": "name",
                    "type": "text",
                    "title": "name",
                    "sortable": true
            }],
        }
}
<adf-cloud-process-list
    [appName]="'appName'" >
    <data-columns>
        <data-column key="key" title="title" class="full-width name-column">
            <ng-template let-entry="$implicit">
                    <div>{{getFullName(entry.row.obj.assignee)}}</div>
            </ng-template>
        </data-column>
    </data-columns>
</adf-cloud-process-list>

These are all the available columns that can be displayed in this component: appName, businessKey, description, id, initiator, lastModified, processName, parentId, processDefinitionId, processDefinitionKey, and status.

Setting Sorting Order for the list

You can specify a sorting order as shown in the example below:

let sorting = [{ orderBy: 'status', direction: 'desc' }];
<adf-cloud-process-list
    [appName]="'appName'"
    [sort]="sorting">
</adf-cloud-process-list>

Pagination strategy

The Process Instance List also supports pagination:

<adf-cloud-process-list
    [appName]="'myApp'"
    #processList>
</adf-cloud-process-list>
<adf-pagination
    *ngIf="processList"
    [target]="processList"
    [supportedPageSizes]="supportedPages"
    #processListPagination>
</adf-pagination>

The configuration related to the pagination can be changed from the app.config.json, as described in the example below:

"pagination": {
        "size": 20, 
        "supportedPageSizes": [ 5, 10, 15, 20 ] 
},

showRowContextMenu event

Emitted before the context menu is displayed for a row.

Note that the ProcessListCloud itself does not populate the context menu with items. You can provide all necessary content via the handler.

<adf-cloud-process-list
    [contextMenu]="true"
    (showRowContextMenu)="onShowRowContextMenu($event)">
</adf-cloud-process-list>

Event properties:

value: {
    row: DataRow,
    col: DataColumn,
    actions: []
}

Handler example:

onShowRowContextMenu(event: DataCellEvent) {
    event.value.actions = [
        {  title: 'Hello Context Action' },
        { ... }
    ]
}

context menu on process list

This event is cancellable. You can use event.preventDefault() to prevent the default behavior.

The ProcessListCloud will automatically render the supplied menu items.

See the ContextMenu documentation for more details on the format and behavior of context actions.

showRowActionsMenu event

Emitted before the actions menu is displayed for a row. Requires the actions property to be set to true.

Event properties:

value: {
    row: DataRow,
    action: any
}

Note that the ProcessListCloud itself does not populate the action menu with items. You can provide all necessary content via the handler.

This event is cancellable. You can use event.preventDefault() to prevent the default behavior.

executeRowAction event

Emitted when the user executes a row action.

This usually accompanies a showRowActionsMenu event. The ProcessListCloud itself does not execute actions but provides support for external integration. If actions are provided using the showRowActionsMenu event then executeRowAction will be automatically executed when the user clicks a corresponding menu item.

<adf-cloud-process-list
    [actions]="true"
    (showRowActionsMenu)="onShowRowActionsMenu($event)"
    (executeRowAction)="onExecuteRowAction($event)">
</adf-cloud-process-list>
import { DataCellEvent, DataRowActionEvent } from '@alfresco/adf-core';

onShowRowActionsMenu(event: DataCellEvent) {
    let myAction = {
        title: 'Hello Action'
        // your custom metadata needed for onExecuteRowAction
    };
    event.value.actions = [
        myAction
    ];
}

onExecuteRowAction(event: DataRowActionEvent) {
    let args = event.value;
    console.log(args.row);
    console.log(args.action);
    window.alert(`My custom action: ${args.action.title}`);
}

action menu on process list

You can use any payloads for row actions. The only requirement for the objects is that they must have a title property.

When an action is selected in the dropdown menu, the ProcessListCloud invokes the executeRowAction event. Use this to handle the response, inspect the action payload (and all custom properties defined earlier), and perform the corresponding actions.

See also

© 2023 Alfresco Software, Inc. All Rights Reserved.