Alfresco Application Development Framework, version 2.0.0 Release Note
These release notes provide information for the 2.0.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.
Please note the only major version valid for the package @alfresco/adf-insights is 2.0.1
Goals for this release
While this release had a high focus on stabilization and bug fixes, we have also introduced new and enhanced features. These include a completely revamped Viewer component, a new metadata component and file versioning. Also, ADF is now localized into 11 different languages. In total we have closed around 242 issues in JIRA.
Since we follow SEMVER, we can only introduce breaking changes in major releases. We learned a lot and we needed to restructure and rename components to make things easier moving forward. You can see all the details about the breaking changes below.
We have continued to expand and rewrite our documentation. We now have a new component catalog
running that we hope you'll enjoy.
The Yeoman generators have been updated. We now ship three small Angular CLI
based applications to help get you started.
Please report issues with this release in the issue tracker. Enterprise customers can now submit issues in the support portal. You can collaborate on this release or share feedback by using the discussion tools on gitter.
The entire team has been working hard to make this release a reality and we're excited to share all the details!
It is now very simple to use the Viewer component in an "Inline" mode on a separate page when using the Angular Router.
This allows you to have separate URLs for previewing content and later revisiting a file by navigating to a corresponding link.
In addition, the "Overlay" mode has been stabilised. It now handles subsequent reopenings correctly.
You can find more details in the corresponding documentation: Viewer Component.
2. Pagination Component and DocumentList integration
With the 2.0 release, Pagination is implemented as a separate component that you can use with different other components.
ADF provides a lightweight integration with the DocumentList component out of the box:
For more details on custom pagination features see the following article: Pagination Component
3. Create Folder and Edit Folder dialogs
You can now use "Create Folder" and "Edit Folder" dialogs with your ACS-enabled applications.
In order to greatly simplify your development experience, two extra Angular directives were introduced: "adf-create-folder" and "adf-edit-folder". These allow you to invoke dialogs from any clickable element, including other Angular components:
Basic content metadata can now be displayed and edited with the new ContentMetadata component. At the moment, only the basic properties are supported, such as title, description, author, etc. As an example it can be injected into the revamped viewer in the sidebar layout.
You can now see and restore previous versions of a file node. This component can also be used in a dialog or in a sidebar layout. Being the first prototype, there are some restrictions applied on this component - check the documentation for details.
We have completely separated the documentlist component from the search component. We also support customizing the search result with any template you like and optionally creating your own custom search autocomplete.
The adf-search-control provides you with a standard input search with an pre-styled autocomplete table :
The new logservice provides logging functionality for your ADF application. You can configure logLevel in app.config.json.
By default the level is TRACE. If you want to silence all log output in ADF you can set it to SILENT:
If you want to customize and render a custom template, you can inject the adf-empty-list tag
<adf-task-attachment-list
[taskId]="YOUR_TASK_ID">
<adf-empty-list>
<div adf-empty-list-header>Thisis the header of my empty list</div>
<div adf-empty-list-body>Thisis the body</div>
<div adf-empty-list-footer>>Thisis the footer</div>
</adf-empty-list>
</adf-task-attachment-list>
Note that the Task Attachment List component doesn't provide the Drag & Drop feature out-of-the-box. To add it, you must use an adf-upload-drag-area as the parent of this component. You can also specify a custom template:
<adf-upload-drag-area
[parentId]="YOUR_TASK_ID">
<adf-task-attachment-list
[taskId]="YOUR_TASK_ID">
<adf-empty-list>
<div adf-empty-list-header>ThisList is empty</div>
<div adf-empty-list-body>Dragand drop to upload</div>
<div adf-empty-list-footer>
<img [src]="Your custom image URL"></div>
</adf-empty-list>
</adf-task-attachment-list>
</adf-upload-drag-area>
This is the result:
13. CS and PS setting host component
This component is a form that allows you to validate and set the URL of your CS and PS, saving it in the user's local storage
14. Complete process service type definition in the alfresco-js-api
We have added all the process service related models, class methods and type in the type definition file of the alfresco-js-api to help you with the autocomplete of your IDE.
15. Redirect to original path upon successful login
The Login component now redirects users back to the originally requested URLs.
For example, if you have a route "/my-files" protected by the AuthGuardEcm (for ACS-related content) or AuthGuardBpm (for APS-related content), users may be redirected to a "/login" route if they are not authenticated. Upon successful login, the user is then redirected back to the "/my-files" page.
16. Task List override the columns
With the current ADF release, you can override the Task List columns from the app.config.json file.
From the version 2.0.0, all the components in ADF are natively translated into 11 languages.
US English
German
Spanish
French
Italian
Japanese
Dutch
Chinese
Russian
Norwegian
Brazilian Portuguese
18. Document List enhancements
It is now possible to display the Sites (from ACS) that the currently logged-in user is a member of. You can do this by assigning the "-mysites-" alias to the "currentFolderId" property. The Document List automatically displays the required content. If you want to display all available Sites use the "-sites-" alias, which is still supported.
Also, the Document List now provides a customizable screen for permission errors. The users will see your custom content if they are trying to access any restricted content. The default permission screen is shown in the picture below:
Breaking changes
New names for packages
Clean all the events that start with "on"
Clean old prefix TAG name support
Rename 'extension-viewer' component to 'adf-viewer-extension'
Upload button and Drag area deprecated properties has been removed
The Alfresco Javascript API remains the same and will be deployed as previously.
The structure of the Github repository has been rearranged to reflect these changes.
The impact for developers using ADF is that the dependencies need to be adjusted (and simplified) in package.json, and all import statements in typescript files need to be changed.
Clean all the events that start with "on"
If you want to know more about why this modification was necessary, please see this link. Full details about the events that have been renamed are given below:
In the previous release, there was a mixed usage of TAG prefixes for all the components ("alfresco-", "activiti","adf-") We found this approach was quite cumbersome in 1.7.0 and so we renamed all of them using only the TAG adf- prefix. However, we still had backward compatibility for the old tags. The compatibility with "alfresco-" and "activiti-" prefix is now discontinued from 2.0.0
Rename 'extension-viewer' component to 'adf-viewer-extension'
The extension-viewer tag (used to extend the viewer behavior to open extensions not supported by the standard viewer) has been renamed to adf-viewer-extension.
Deprecated Upload button and Drag area properties have been removed
adf-upload-drag-area :
Properties
Description
enabled
Deprecated in 1.6.0 in favor of disabled input property
Deprecated in 1.6.0, this property is not used for couple of releases already. Use rootFolderId instead.
disableWithNoPermission
Deprecated in 1.8.0, use the button with combination of adf-node-permission directive
Internal pagination has been removed from the DocumentList
The search component has received a big refactor in this release in order to use the new search API. This gives better configurability as described above. The decoupling of the internal documentlist from the search allows you to customize the search result as you wish.
Learn how to show the search result in a document list here.
Internal search documentlist has been removed from the search component
Because is now possible to select between two different pagination strategies (classic pagination and infinite scrolling) we moved these options into separate components:
This modification will even allow you to write your own pagination if you need to or use our pagination system to paginate your own list.
CI changes
In our constant commitment to improving the quality of ADF we have also introduced two new automatic checks over all the PRs:
Bundle size checker
Bundle size check is an open source tool that helps us to check that the final result of our build never exceeds the wanted bundle size:
Security checker Snyk
Snyk is an open source tool that helps us to find and fix known vulnerabilities in our dependencies
Application generators (Yeoman)
This release features brand new application generators powered by Yeoman. All out-of-the-box generators are based on the Angular CLI. Upon generation, you get a valid Angular CLI project, configured with ADF libraries and styles, ready to be used.
npm install -g generator-alfresco-adf-app
In addition, the application generator provides support for "blueprints". The 2.0 release includes the following blueprints:
Content Services Application
Process Services Application
Content and Process Services Application
Every project blueprint asks the minimum necessary set of questions with reasonable defaults.
It is now possible to install all project dependencies as part of the generation steps.
We watch the quality of the templates and ensure all unit tests and end-to-end tests are functioning correctly.
The tests run for all modifications to either the generator the underlying blueprints.
References
Below you can find a brief list of references to help you start to use the new release.
[ADF-2023] - Files can be drag and drop when allowDropFiles property is set to false
[ADF-2024] - Docx files cannot be open in Document List
[ADF-2027] - Process Component - Replace the due date label with end date
[ADF-2029] - Delete icon is not working on Document List
[ADF-2030] - Not able to download a file on search page.
[ADF-2032] - Using Viewer in overlay mode only works once
[ADF-2033] - Overlay height issues in overlay mode
[ADF-2035] - [Demo Shell] Drag and drop is not working on Processes - attachment List
[ADF-2036] - [Demo Shell] Search dialog is not properly displayed
[ADF-2039] - The empty folder content is not loading
[ADF-2040] - Date picker is not working when changing language.
[ADF-2045] - [Demo-Shell][pagination](../../lib/content-services/document-list/models/document-library.model.ts) is not working properly on Search Results Page
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.
We use cookies on this site to enhance your user experience
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.