alfresco-ng2-components/docs/content-services/components/aspect-list-dialog.component.md
Vito e62c752f1f
[ADF-5305] - Added aspect list component (#6549)
* [ADF-5305] - Creation of aspect list and aspect list dialog components

* [ADF-5305] - unit test for aspect list

* [ADF-5305] - added filtering for aspects

* [ADF-5305] - enabling tests

* [ADF-5305] - added filtering and unit test

* [ADF-5305] - added context action to demo shell

* [ADF-5305] - added button on metadata card for opening aspects

* [ADF-5305] - fixed unit test for filtering aspects

* [ADF-5305] - added documentation

* [ADF-5305] - fixed lint

* [ADF-5305] - Updated the js-api calls

* [ADF-5305] - Removed circle dependency

* [ADF-5305] - Simplified code

* [ADF-5305] - revert changes on package.json

* [ADF-5305] - removed extra cspell word

* [ADF-5305] - added filtering on aspect list service

* [ADF-5305] - fix unit test for aspect service

* [ADF-5305] - reverted changes to package-loc

* [ADF-5305] - removed unused changes

* [ADF-5305] - attempt to fix PR #§

* [ADF-5305] - attempt to fix PR #2

* [ADF-5305] - attempt to fix PR #3

* [ADF-5305] - attempt to fix PR #4

* [ADF-5305] - attempt to fix PR #5

Co-authored-by: Vito Albano <vitoalbano@vitoalbano-mbp-0120.local>
2021-02-17 11:13:35 +00:00

3.6 KiB

Title, Added, Status, Last reviewed
Title Added Status Last reviewed
Aspect List Dialog component v2.0.0 Active 2021-01-20

Aspect List Dialog component

Allows a user to choose aspects for a node.

Details

The Aspect List Dialog component works as a dialog showing the list of aspects available. It is possible to filter the aspect showed via the app.config.json.

Showing the dialog

Unlike most components, the Aspect List Dialog component is typically shown in a dialog box rather than the main page and you are responsible for opening the dialog yourself. You can use the Angular Material Dialog for this, as shown in the usage example. ADF provides the AspectListDialogComponentData interface to work with the Dialog's data option:

export interface AspectListDialogComponentData {
    title: string;
    description: string;
    overTableMessage: string;
    select: Subject<string[]>;
    nodeId?: string;
}

The properties are described in the table below:

Name Type Default value Description
title string "" Dialog title
description string "" Text to appear as description under the dialog title
overTableMessage string "" Text that will be showed on the top of the aspect list table
select Subject<Node> Event emitted with the current node selection when the dialog closes
nodeId string "" Identifier of a node to apply aspects to.

If you don't want to manage the dialog yourself then it is easier to use the Aspect List component, or the methods of the Aspect List service, which create the dialog for you.

Usage example

import { MatDialog } from '@angular/material/dialog';
import { AspectListDialogComponentData, AspectListDialogComponent} from '@adf/content-services'
import { Subject } from 'rxjs/Subject';
 ...

constructor(dialog: MatDialog ... ) {}

openSelectorDialog() {
    data: AspectListDialogComponentData = {
        title: "Choose an item",
        description: "Choose",
        overTableMessage: "Over Table Message",
        nodeId: currentNodeID,
        select: new Subject<Node[]>()
    };

    this.dialog.open(
        AspectListDialogComponent,
        {
            data, panelClass: 'adf-aspect-list-dialog',
            width: '630px'
        }
    );

    data.select.subscribe((selections: Node[]) => {
        // Use or store selection...
    }, 
    (error)=>{
        //your error handling
    }, 
    ()=>{
        //action called when an action or cancel is clicked on the dialog
        this.dialog.closeAll();
    });
}

All the results will be streamed to the select subject present in the AspectListDialogComponentData object passed to the dialog. When the dialog action is selected by clicking, the data.select stream will be completed.

See also