* viewer outlet over preview route * use ViewNodeAction over ViewFileAction * pass data to dynamic component * ViewNodeComponent for view file custom actions * update docs * pass primary url to show preview outlet * update tests * reset selection on navigation event * document list update selection action when not viewer * close viewer for move and delete from viewer * location as router commands to work with search query * make viewer to behave like former preview * viewer error route * call correct preview method * remove view/error route * navigate to show error * span element for action name * fix folder navigation * fix test * page title fix * update tests * locate better the viewer toolbar * fix viewer url link * update navigation rules * document-list directive tests * try workaround for chrome 76 * try another workaround for using chromedriver 75 instead of 76 * ViewerEffects tests * reset selection over reload * fix tests * add reset event test * remove actions * context menu action refresh on favourite * reset selection on navigation * add delete and upload events * takeUntil after operators * remove chrome workaround parameter * filter navigation event
9.5 KiB
Title
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:
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:
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:
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.
{
"$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.7.0 | TOGGLE_SEARCH_FILTER | n/a | Toggle Filter component visibility in Search Results. |
1.7.0 | SHOW_SEARCH_FILTER | n/a | Show Filter component in Search Results. |
1.7.0 | HIDE_SEARCH_FILTER | n/a | Hide Filter component in Search Results |
1.8.0 | VIEW_NODE | string | Lightweight preview of a node by id. Can be invoked from extensions. |
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 |