These release notes provide information for the 2.1.0 release of the Alfresco Application Development Framework.
This is the first General Available release of the Application Development Framework, which contains the Angular components to build a Web Application on top of the Alfresco Services.
The release can be found on GitHub at this link.
"@alfresco/adf-content-services" : "2.1.0"
"@alfresco/adf-process-services" : "2.1.0"
"@alfresco/adf-core" : "2.1.0"
"@alfresco/adf-insights" : "2.1.0"
Two new dependencies have been added :
"@mat-datetimepicker/core": "^1.0.1",
"@mat-datetimepicker/moment": "^1.0.1",
We will keep these packages until material data picker supports setting the time.
Continuing on our journey for ADF, this release had a big focus on enhancing the Alfresco Digital Business Platform story. We have added new features to enable deeper Process and Content integration between ACS and APS, meaning you can now browse and attach content from ACS in your APS Forms. We've also added more configuration around the Process Start Form, allowing you to pre-populate fields. This enables use cases to start processes directly from a document.
The Content Metadata component also got a lot of new features: It now has full support for custom metadata and aspects. It's dynamic and has complex configuration to enable exactly which aspects and properties you want to show in your app. These are just a few highlights for this release. See the full details below.
This release builds on the one from last month and contains bug fixes and new features as listed below.
Please report issues with this release in the issue tracker. You can collaborate on this release or share feedback by using the discussion tools on Gitter.
Below are the most important new features of this release:
Viewer Enhancements
Upload file from CS widget
Attach Folder from CS Widget
Content metadata component enhancements
Start process from a file
Start form process pre-filling value
Task List - Support custom HTML template and static columns
Sidebar action menu
Infinite pagination component enhancement
App drop-down dialog selector
JS-API Governance
Documentation enhancements
In this release, the Viewer component got improved styles and document processing enhancements:
- better handling of PDF documents
- improved fallback to PDF rendition of certain documents
- automatic fallback to Thumbnail when PDF rendition is not available (for example when viewing Apple Keynote/Pages/Numbers files)
- support for viewing Shared links with a new "sharedLinkId" property that allows the Viewer to display shared content (does not require authentication)
In this release we have re-enabled and improved the upload file widget of our form component.
We have added the option to choose the file to upload from a configured ECM repository of APS.
This allows you to start the navigation of ECM folders starting from a configured folder or just from the root. It also has an option to restrict the selection to files.
Sometimes you might want to allow the user to choose from all the sources. The new upload widget will show all the options in the menu when clicked.
It is also possible to make it work like a normal local file uploader by configuring it to allow only local files.
We have added the attach folder widget which is really useful in processes where you need to create your content in the ECM platform via APS .
As you can see this widget works like the attach file widget in terms of navigation through the folders and restricting the selection to folders.
The purpose of the content metadata component is to display the metadata belonging to a given node. Until now, the component was capable of displaying and making the basic properties editable, but with the latest enhancements, all of the system wide and custom aspects related to a particular node can be displayed and edited.
The component can be configured from the application configuration. This way, you can easily restrict the displayed metadata to a list of aspects or even further, to just a subset or properties belonging to an aspect.
For more information about the component see its documentation or this article.
After the repository is created in APS, you can see it in the Alfresco Repositories list. If the ID is set to 1 then all default values are fine. However, if it is set to something else, for example, 1002 and the name is alfresco, you must set the property alfrescoRepositoryName
in your app.config.json
file to alfresco-1002:
{
name: 'Alfresco ADF Application'
},
ecmHost: 'http://{hostname}{:port}/ecm',
bpmHost: 'http://{hostname}{:port}/bpm',
logLevel: 'silent',
alfrescoRepositoryName : 'alfresco-1002'
values
object along with the other properties:let node: MinimalNodeEntryEntity = this.nodesApiService.getNode(NODE_ID);
const formValues: FormValues = {
'file' : node
'field_one': 'example text'
};
file
is the name of the attach file field in the start form of the process. The value of the file
property must be a MinimalNodeEntryEntity:<adf-start-process
[values]="formValues"
[appId]="YOUR_APP_ID" >
</adf-start-process>
For more information about this functionality see the documentation section linked below:
Here is an example of how to pass in form field values to initialize the start form that has been defined for the process:
const formValues: FormValues = {
'test_1': 'value_1',
'test_2': 'value_2',
'test_3': 'value_1',
'test_4': 'dropdown_id',
'test_5': 'dropdown_label',
'dropdown': {'id': 'dropdown_id', 'name': 'dropdown_label'}
};
<adf-start-process
[values]="formValues"
[appId]="YOUR_APP_ID" >
</adf-start-process>
With these settings, the start form will appear with the values above already filled in.
For more information about this functionality see the following link:
With the previous ADF version, there was no way to combine a custom HTML template and static columns (configured in the app.config.json file, for example). With ADF 2.1.0 you can have both of them at the same time.
For instance, we can display the Assignee (custom HTML template) and Task Name (Static column)
The HTML contains a custom HTML template column
<adf-tasklist>
<data-columns>
<data-column key="assignee" title="ASSIGNEE">
<ng-template let-entry="$implicit">
<div>{{getFullName(entry.row.obj.assignee)}}</div>
</ng-template>
</data-column>
<data-columns>
</adf-tasklist>
app.config.json ( contains a static column)
"adf-task-list": {
"presets": {
"default": [
{
"key": "name",
"type": "text",
"title": "NAME",
"sortable": true
}
]
}
}
This is the result:
This component displays a sidebar-action menu information panel. It is basically just a layout with CSS styling.
There are three regions where you can add your own content, as shown in the example:
- sidebar-menu-title-icon
- sidebar-menu-options
- sidebar-menu-expand-icon
<adf-sidebar-action-menu title="Create">
<mat-icon sidebar-menu-title-icon>arrow_drop_down</mat-icon>
<div sidebar-menu-options>
<button mat-menu-item>
<span>New Task</span>
</button>
<button mat-menu-item>
<span>New Process</span>
</button>
</div>
</adf-sidebar-action-menu>
This is the result:
You can also use the same component for mobile content
<adf-sidebar-action-menu [expanded]="false">
<mat-icon sidebar-menu-expand-icon matTooltip="Create">queue</mat-icon>
<div sidebar-menu-options>
<button mat-menu-item (click)="onCreateClick('tasks')">
<span>New Task</span>
</button>
<button mat-menu-item (click)="onCreateClick('processes')">
<span>New Process</span>
</button>
</div>
</adf-sidebar-action-menu>
This is the result:
You can use the same component also to create a Content Service menu as shown below:
For more information about this functionality see the following link:
We have added the [target] property in the infinite pagination component to bring it in line with the pagination component. With this, the link between the infinite pagination and its target is simpler:
<adf-infinite-pagination
[target]="documentList"
[loading="documentList.infiniteLoading">
</adf-infinite-pagination>
For more information about the infinite pagination see the following links:
In order to enable the creation of new ADF component based on Alfresco Governance Services, we have updated the alfresco-js-api with all the governance core and classification API.
For more information about this functionality see the following links:
The Properties tables in the documentation are now updated with the type and the deault value of any property, for example:
In our constant commitment to improving the quality of ADF we have also introduced one new automatic check over all the PRs:
Codacy is a tool that checks the code style, security, duplication and complexity of any pull request. If you want more information on Codacy please visit their website
Application generators (Yeoman)
Below are the most noteworthy changes in the generator:
Below you can find a brief list of references to help you start to use the new release.
Official GitHub Project - alfresco-ng2-components
Getting started guides with Alfresco Application Development Framework
Gitter chat supporting Alfresco ADF
Please refer to the official documentation for further details and suggestions.
Release Notes - Apps Development Framework - Version 2.1.0
Please refer to the Alfresco issue tracker for other known issues in this release. If you have more questions, please reply here or contact us using gitter.