The user interfaces (UI) section sets an end user interface for users to interact with content, tasks and processes for the project using the Alfresco Digital Workspace.
The basic properties of a user interface are:
Property | Description |
---|---|
UI name | Required. The name of the interface. Must be in lowercase and between 1 and 26 characters in length. Alphanumeric characters and hyphens are allowed, however the name must begin with a letter and end alphanumerically, for example order-template . |
UI description | Optional. A description of what the interface should be used for, for example A template for orders to follow. |
To create a user interface:
Sign into the Modeling Application and open a project.
Click the NEW dropdown.
Select how to create the interface:
Create > UI creates a new, empty user interface.
Upload > UI allows for uploading an existing user interface into the Modeling Application.
Alternatively use the + or Upload buttons next to UI in the left-hand menu.
Enter a name and optional description.
Once a user interface has been created, set the type to content
to deploy the Digital Workspace with the application. This can be accessed by users once a project has been deployed using the format ui/<name>
, for example https://alfresco.com/finance-project/ui/content-app
.
Note: An instance of Digital Workspace will be deployed with each application that can only start processes created within that same application. Only users assigned user access to the application will be able to access the interface.
Custom end user actions can be created for the Digital Workspace. This enables custom options to be added to various menus displayed to users. Rules can be set for the actions to only display on files or folders with specific names, or when an aspect is applied to a node. There are three parts to defining custom actions:
There are four types of end user actions that can be configured:
Event actions are directly referenced by triggers when they are clicked. This means that an action can post a predefined message to a Slack channel or send an email notifying an email group about the document.
Note: If a user interface trigger action is not created that references the event action then nothing will happen when the action is clicked by an end user.
The properties of an event action are:
Property | Description |
---|---|
Name | Required. The name of the action. Note: This is not the text that will appear to the end user in a menu. |
Type | Required. The type of action will be Event . |
Use selected nodes in action | Optional. Sets whether the nodes selected when the action is clicked can be used in the event or not, for example true . |
Form actions open a form in Digital Workspace that users can fill in when the action is clicked. The form in question can be completely independent of a process and user task. Forms allow users to enter some information and use the output, for example to use a trigger on the form submission event.
The properties of a form action are:
Property | Description |
---|---|
Name | Required. The name of the action. Note: This is not the text that will appear to the end user in a menu. |
Type | Required. The type of action will be Form . |
Form | Required. The name of the form to display when the action is clicked. |
Use selected nodes in action | Optional. Sets whether the nodes selected when the action is clicked can be used in the form or not, for example true . |
Navigation actions open a link when they are clicked by an end user. The link can be relative, for example opening another document from the repository, or the link can be absolute, such as to open another application.
The properties of a navigation action are:
Property | Description |
---|---|
Name | Required. The name of the action. Note: This is not the text that will appear to the end user in a menu. |
Type | Required. The type of action will be Navigation . |
Target | Required. The absolute or relative link the action will direct to, for example https://wikipedia.org . |
Open in new tab | Optional. Sets whether the link opens in a new tab or not, for example false . |
Use selected nodes in action | Optional. Sets whether the nodes selected when the action is clicked can be used in the navigation URL or not, for example true . |
Note: The Target
can use the variable ${nodes}
if Use selected nodes in action
is set to true
to pass the node ID to the link, for example personal-files/(viewer:view/${nodes})?location=%2Fpersonal-files
.
A start process action will start a process when the action is clicked. If the selected process contains a form on the start event with an attach file field and Use selected nodes in action
is set to true
, then the file that was selected when the action was clicked will be attached to it automatically.
The properties of a start process action are:
Property | Description |
---|---|
Name | Required. The name of the action. Note: This is not the text that will appear to the end user in a menu. |
Type | Required. The type of action will be Start process . |
Process | Required. The name of the process to start when the action is clicked. |
Use selected nodes in action | Optional. Sets whether the nodes selected when the action is clicked can be used in the process or not, for example true . |
Rules are used to define when an action is displayed to the end user. This is achieved using a series of evaluators, operators and optional nested groups.
Rule groups must:
Note: Individual evaluators in a rule can be set to evaluate negatively using the !
against them. For example, if the evaluator app.navigation.isTrashCan
is set to evaluate negatively then the user must not be in the trashcan for the action to appear.
Some evaluators take additional operators such as contains
, equals
or matches
. For example, the evaluator selection.currentFolder.name
can use a fully qualified folder name such as Invoices
or use a regular expression such as ^(I|i)nvoices
.
Application evaluators check a user's permissions on files and folders to set whether action will be displayed.
The application evaluators are:
Evaluator | Description |
---|---|
app.selection.canDelete | User has permission to delete selected node(s). |
app.selection.canDownload | User can download selected node(s). |
app.selection.notEmpty | At least one node is selected. |
app.selection.canUnshare | User is able to remove selected node(s) from public sharing. |
app.selection.canAddFavorite | User can add selected node(s) to favorites. |
app.selection.canRemoveFavorite | User can remove selected node(s) from favorites. |
app.selection.first.canUpdate | User has permission to update selected node(s). |
app.selection.file | A single File node is selected. |
app.selection.file.canShare | User is able to share the selected file. |
app.selection.file.isShared | A shared node is selected. |
app.selection.file.isLocked | File is locked for editing. |
app.selection.file.isLockOwner | File is locked and current user is the lock owner. |
app.selection.file.canUploadVersion | User can update file version. |
app.selection.library | A single Library node is selected. |
app.selection.isPrivateLibrary | A private Library node is selected. |
app.selection.hasLibraryRole | The selected Library node has a role property. |
app.selection.hasNoLibraryRole | The selected Library node has no role property. |
app.selection.folder | A single Folder node is selected. |
app.selection.folder.canUpdate | User has permissions to update the selected folder. |
app.selection.file.canLock | User has permissions to lock file. |
app.selection.file.canUnlock | User has permissions to unlock file. |
repository.isQuickShareEnabled | Whether the quick share repository option is enabled or not. |
canCopyNode | Checks if user can copy selected node. |
canToggleJoinLibrary | Checks if user can perform 'Join' or 'Cancel Join Request' on a library. |
canEditFolder | Checks if user can edit the selected folder. |
isTrashcanItemSelected | Checks if user has trashcan item selected. |
canViewFile | Checks if user can view the file. |
canLeaveLibrary | Checks if user can Leave selected library. |
canToggleSharedLink | Checks if user can toggle shared link mode. |
canShowInfoDrawer | Checks if user can show Info Drawer for the selected node. |
canManageFileVersions | Checks if user can manage file versions for the selected node. |
canManagePermissions | Checks if user can manage permissions for the selected node. |
canToggleEditOffline | Checks if user can toggle Edit Offline mode for selected node. |
user.isAdmin | Checks if user is admin. |
app.canShowLogout | Whether logout action should be present or not. |
app.isLibraryManager | Checks if user is library manager. |
Navigation evaluators use the location within the repository structure to set whether an action will be displayed.
The navigation evaluators are:
Evaluator | Description |
---|---|
app.navigation.folder.canCreate | User can create content in the currently opened folder. |
app.navigation.folder.canUpload | User can upload content to the currently opened folder. |
app.navigation.isTrashcan | User is using the Trashcan page. |
app.navigation.isNotTrashcan | Current page is not a Trashcan. |
app.navigation.isLibraries | User is using a Libraries or Library Search Result page. |
app.navigation.isNotLibraries | Current page is not a Libraries page. |
app.navigation.isSharedFiles | User is using the Shared Files page. |
app.navigation.isNotSharedFiles | Current page is not Shared Files. |
app.navigation.isFavorites | User is using the Favorites page. |
app.navigation.isNotFavorites | Current page is not Favorites. |
app.navigation.isRecentFiles | User is using the Recent Files page. |
app.navigation.isNotRecentFiles | Current page is not Recent Files. |
app.navigation.isSearchResults | User is using the Search Results page. |
app.navigation.isNotSearchResults | Current page is not the Search Results. |
app.navigation.isSharedPreview | Current page is preview Shared Files. |
app.navigation.isFavoritesPreview | Current page is preview Favorites. |
app.navigation.isSharedFileViewer | Current page is shared file preview page. |
app.navigation.isPreview | Current page is Preview. |
app.navigation.isPersonalFiles | Current page is Personal Files. |
app.navigation.isLibraryFiles | Current page is Library Files. |
Node property evaluators use the types, aspects and properties of folders and files to set whether an action will be displayed.
The node property evaluators are:
Evaluator | Description |
---|---|
selection.files.type | All the selected files are of the input type. |
selection.files.aspect | All the selected files have the input aspect. |
selection.files.property | All the selected files have the indicated property and their values satisfy the condition. |
selection.files.name | All the selected files match the condition in their name. |
selection.folders.type | All the selected folders are of the input type. |
selection.folders.aspect | All the selected folders have the input aspect. |
selection.folders.property | All the selected folders have the indicated property and their values satisfy the condition. |
selection.folders.name | All the selected folders match the condition in their name. |
selection.currentFolder.type | The current folder is of the input type. |
selection.currentFolder.aspect | The current folder has the input aspect. |
selection.currentFolder.property | The current folder has the indicated property and their values satisfy the condition. |
selection.currentFolder.name | The current folder matches the condition in their name. |
A user action can be associated to a feature once it has been defined and the rules for when to display it have been configured. This determines in which menu or view the action is displayed.
The properties to configure the action feature are:
Property | Description |
---|---|
Title | Required. The text displayed to the end user in the menu, for example Start invoice process . |
Description | Optional. The tooltip for the action in the menu, for example Start the invoice process with the intial invoice attached. . |
Icon | Required. The icon that will be displayed to the end user in the menu next to the Title . |
Order | Optional. The order the action will appear in the menu list. The higher the number the lower down the list, or further right in a list it is displayed. |
Action | Required. The selected action to execute. |
Visibility | Optional. The rule to use for evaluating whether a user can see the action. |
Enabled | Optional. The rule to use for evaluating whether the action is enabled or not. |
Actions can be displayed in different parts of the Digital Workspace by associating them with different features.
The application header will display an action next to the search bar and user information:
The application header menu will display an action in the application header menu next to items such as Settings and About:
The application toolbar will display an action underneath the header where items such as a breadcrumb are normall placed:
The dropdown button will display an action in the left-hand menu as a new item:
The context menu will display an action in the menu displayed when right-clicking a node:
The sidebar will display an action in the properties sidebar:
The sidebar toolbar will display an action on the toolbar within the properties sidebar:
The viewer will display an action on the file viewer page:
The viewer toolbar will display an action on the toolbar located on the file viewer page:
The viewer toolbar menu will display an action in the dropdown menu in the toolbar located on the file viewer page:
The shared viewer will display an action on the file viewer page of a shared file:
The shared viewer toolbar will display an action on the toolbar located on the file viewer page of a shared file:
Custom user interfaces can be developed with the Application Development Framework and deployed as part of the project.
The actions that can be run against an interface are:
Action | Description |
---|---|
Download UI | Download the JSON for the interface. |
Validate | Run validation against the interface. Any errors can be seen in the log history at the bottom of the Modeling Application and are flagged in a pop-up box. |
Save | Save any changes made to the interface. |
Delete | Delete the interface. |
© 2023 Alfresco Software, Inc. All Rights Reserved.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.