mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
* [ACA-4487] support search chips -initial commit * * update adf, fixed comments and e2e * * update context menu test * * update tool bar test * * remove await expect * * add e2e back
128 lines
15 KiB
Markdown
128 lines
15 KiB
Markdown
---
|
|
Title: Application Actions
|
|
---
|
|
|
|
# Application Actions
|
|
|
|
The app uses **NgRx** (Reactive libraries for Angular, inspired by Redux)
|
|
to implement application actions.
|
|
|
|
For more information on NgRx, please refer to the following resources:
|
|
|
|
- [Comprehensive Introduction to @ngrx/store](https://gist.github.com/btroncone/a6e4347326749f938510)
|
|
|
|
Most of the application features are already exposed in the form of NgRx Actions and corresponding Effects.
|
|
You can invoke any action via a single `Store` dispatcher, similar to the following:
|
|
|
|
```ts
|
|
export class MyComponent {
|
|
constructor(private store: Store<AppStore>) {}
|
|
|
|
onClick() {
|
|
this.store.dispatch(new SearchByTermAction('*'));
|
|
}
|
|
}
|
|
```
|
|
|
|
The code above demonstrates a simple 'click' handler that invokes `Search by Term` feature
|
|
and automatically redirects user to the **Search Results** page.
|
|
|
|
Another example demonstrates viewing a node from a custom application service API:
|
|
|
|
```ts
|
|
export class MyService {
|
|
constructor(private store: Store<AppStore>) {}
|
|
|
|
viewFile(node: MinimalNodeEntity) {
|
|
this.store.dispatch(new ViewFileAction(node));
|
|
}
|
|
}
|
|
```
|
|
|
|
## Using with Extensions
|
|
|
|
You can invoke every application action from the extensions, i.e. buttons, menus, etc.
|
|
|
|
**Tip:** Many of the actions take currently selected nodes if no payload provided.
|
|
That simplifies declaring and invoking actions from the extension files.
|
|
|
|
In the example below, we create a new entry to the "NEW" menu dropdown
|
|
and provide a new `Create Folder (plugin1)` command that invokes the `CREATE_FOLDER` application action.
|
|
|
|
```json
|
|
{
|
|
"$schema": "../../../extension.schema.json",
|
|
"$version": "1.0.0",
|
|
"$name": "plugin1",
|
|
|
|
"features": {
|
|
"create": [
|
|
{
|
|
"id": "plugin1.create.folder",
|
|
"type": "default",
|
|
"icon": "create_new_folder",
|
|
"title": "Create Folder (plugin1)",
|
|
"actions": {
|
|
"click": "CREATE_FOLDER"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
The `CREATE_FOLDER` action will trigger corresponding NgRx Effects to show the dialog
|
|
and perform document list reload if needed.
|
|
|
|
Below is the list of public actions types you can use in the plugin definitions as a reference to the action:
|
|
|
|
| Version | Name | Payload | Description |
|
|
| ------- | ---------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| 1.7.0 | SET_CURRENT_FOLDER | Node | Notify components about currently opened folder. |
|
|
| 1.7.0 | SET_CURRENT_URL | string | Notify components about current browser URL. |
|
|
| 1.7.0 | SET_USER_PROFILE | Person | Assign current user profile. |
|
|
| 1.7.0 | TOGGLE_INFO_DRAWER | n/a | Toggle info drawer for the selected node. |
|
|
| 1.7.0 | ADD_FAVORITE | MinimalNodeEntity[] | Add nodes (or selection) to favorites. |
|
|
| 1.7.0 | REMOVE_FAVORITE | MinimalNodeEntity[] | Removes nodes (or selection) from favorites. |
|
|
| 1.7.0 | DELETE_LIBRARY | string | Delete a Library by id. Takes selected node if payload not provided. |
|
|
| 1.7.0 | CREATE_LIBRARY | n/a | Invoke a "Create Library" dialog. |
|
|
| 1.7.0 | SET_SELECTED_NODES | MinimalNodeEntity[] | Notify components about selected nodes. |
|
|
| 1.7.0 | DELETE_NODES | MinimalNodeEntity[] | Delete the nodes (or selection). Supports undo actions. |
|
|
| 1.7.0 | UNDO_DELETE_NODES | any[] | Reverts deletion of nodes (or selection). |
|
|
| 1.7.0 | RESTORE_DELETED_NODES | MinimalNodeEntity[] | Restores deleted nodes (or selection). Typically used with Trashcan. |
|
|
| 1.7.0 | PURGE_DELETED_NODES | MinimalNodeEntity[] | Permanently delete nodes (or selection). Typically used with Trashcan. |
|
|
| 1.7.0 | DOWNLOAD_NODES | MinimalNodeEntity[] | Download nodes (or selections). Creates a ZIP archive for folders or multiple items. |
|
|
| 1.7.0 | CREATE_FOLDER | string | Invoke a "Create Folder" dialog for the opened folder (or the parent folder id in the payload). |
|
|
| 1.7.0 | EDIT_FOLDER | MinimalNodeEntity | Invoke an "Edit Folder" dialog for the node (or selection). |
|
|
| 1.7.0 | SHARE_NODE | MinimalNodeEntity | Invoke a "Share" dialog for the node (or selection). |
|
|
| 1.7.0 | UNSHARE_NODES | MinimalNodeEntity[] | Remove nodes (or selection) from the shared nodes (does not remove content). |
|
|
| 1.7.0 | COPY_NODES | MinimalNodeEntity[] | Invoke a "Copy" dialog for the nodes (or selection). Supports undo actions. |
|
|
| 1.7.0 | MOVE_NODES | MinimalNodeEntity[] | Invoke a "Move" dialog for the nodes (or selection). Supports undo actions. |
|
|
| 1.7.0 | MANAGE_PERMISSIONS | MinimalNodeEntity | Invoke a "Manage Permissions" dialog for the node (or selection). |
|
|
| 1.7.0 | MANAGE_VERSIONS | MinimalNodeEntity | Invoke a "Manage Versions" dialog for the node (or selection). |
|
|
| 1.7.0 | NAVIGATE_URL | string | Navigate to a given route URL within the application. |
|
|
| 1.7.0 | NAVIGATE_ROUTE | any[] | Navigate to a particular Route (supports parameters). |
|
|
| 1.7.0 | NAVIGATE_FOLDER | MinimalNodeEntity | Navigate to a folder based on the Node properties. |
|
|
| 1.7.0 | NAVIGATE_PARENT_FOLDER | MinimalNodeEntity | Navigate to a containing folder based on the Node properties. |
|
|
| 1.7.0 | NAVIGATE_LIBRARY | string | Navigate to library. |
|
|
| 1.7.0 | SEARCH_BY_TERM | string | Perform a simple search by the term and navigate to Search results. |
|
|
| 1.7.0 | SNACKBAR_INFO | string | Show information snackbar with the message provided. |
|
|
| 1.7.0 | SNACKBAR_WARNING | string | Show warning snackbar with the message provided. |
|
|
| 1.7.0 | SNACKBAR_ERROR | string | Show error snackbar with the message provided. |
|
|
| 1.7.0 | UPLOAD_FILES | n/a | Invoke "Upload Files" dialog and upload files to the currently opened folder. |
|
|
| 1.7.0 | UPLOAD_FOLDER | n/a | Invoke "Upload Folder" dialog and upload selected folder to the currently opened one. |
|
|
| 1.7.0 | UPLOAD_FILE_VERSION | n/a | Invoke "New File Version" dialog. |
|
|
| 1.7.0 | VIEW_FILE | MinimalNodeEntity | Preview the file (or selection) in the Viewer. |
|
|
| 1.7.0 | UNLOCK_WRITE | NodeEntry | Unlock file from read only mode |
|
|
| 1.7.0 | PRINT_FILE | MinimalNodeEntity | Print the file opened in the Viewer (or selected). |
|
|
| 1.7.0 | FULLSCREEN_VIEWER | n/a | Enters fullscreen mode to view the file opened in the Viewer. |
|
|
| 1.7.0 | LOGOUT | n/a | Log out and redirect to Login screen. |
|
|
| 1.7.0 | RELOAD_DOCUMENT_LIST | n/a | Reload active document list |
|
|
| 1.8.0 | VIEW_NODE | NodeId<`string`> , [ViewNodeExtras](../features/file-viewer.md#details)<`any`> | Lightweight preview of a node by id. Can be invoked from extensions. For details also see [File Viewer](../features/file-viewer.md#details) |
|
|
| 1.8.0 | CLOSE_PREVIEW | n/a | Closes the viewer ( preview of the item ) |
|
|
| 1.9.0 | RESET_SELECTION | n/a | Resets active document list selection |
|
|
| 1.10.0 | FILE_FROM_TEMPLATE | n/a | Invoke dialogs flow for creating a file from a template into current folder |
|
|
| 1.10.0 | FOLDER_FROM_TEMPLATE | n/a | Invoke dialogs flow for creating a folder structure from a template into current folder |
|
|
| 1.10.0 | CONTEXT_MENU | MouseEvent | Invoke context menu for [DocumentListComponent](https://www.alfresco.com/abn/adf/docs/content-services/components/document-list.component) |
|
|
| 1.11.0 | SET_HEADER_COLOR | string | Set the header color at runtime |
|