Alfresco Application Development Framework (ADF) version 3.2.0 Release Note

These release notes provide information about the 3.2.0 release of the Alfresco Application Development Framework.

This is the latest General Available release of the Application Development Framework, which contains the Angular components to build a Web Application on top of the Alfresco Platform.

The release can be found on GitHub at this location.

See the ADF roadmap for details of features planned for future versions of ADF.

Contents

New package versions

"@alfresco/adf-content-services" : "3.2.0"
"@alfresco/adf-process-services" : "3.2.0"
"@alfresco/adf-core" : "3.2.0"
"@alfresco/adf-insights" : "3.2.0",
"@alfresco/adf-extensions": "3.2.0"

Goals for this release

This is the second minor release since ADF version 3 which was released in February 2019.

This release goes a step further in the direction of complete support for Activiti 7, the next generation Cloud Native implementation of Activiti. Also, some enhancements have been introduced to the Metadata viewer to properly manage multi-value properties, together with the event handling during header row action, to properly manage use cases like the drag & drop feature, requested from some developers.

We are pleased to announce that starting from ADF 3.2, five more languages are now supported, together with the other ten. The new languages are: Danish, Finnish, Swedish, Czech, Polish.

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:

More on Activiti 7

In ADF 3.0.0 (released in February) we announced the introduction of the new *Cloud package. This contains a set of components to support Activiti 7, the next generation Cloud Native implementation of Activiti BPM Engine. With the ADF 3.2 release, the journey continues with more supported features, like:

Task Form component

This component is responsible to show the form renderer in case the task has a form attached or the standard standalone card with the Claim/Release/Complete buttons.

<adf-cloud-task-form 
    [appName]="appName"
    [taskId]="taskId">
</adf-cloud-task-form>

For more details refer to the:

Form Cloud

This component is responsible to render the form cloud definition attached to the task.

<adf-cloud-form 
    [appName]="appName"
    [taskId]="taskId">
</adf-cloud-form>

In case the form has an upload widget and the alfresco content has been configured*, the attached file will be stored into the alfresco repository.

Note*: Don't forget to set the providers property to ALL and ecmHost value in the app.config.json. e.g.

"ecmHost": "http://alfrescocontent.example.com",
"bpmHost": "http://alfrescoaps2.example.com",
"providers": "ALL"

For more details refer to the:

New permission template to app list

A new message template is now displayed when a user doesn't have permissions

Cloud form definition selector component

Cloud form definition selector component is a dropdown that shows all the form present in your app.

<adf-cloud-form-definition-selector
    [appName]="'simple-app'"
    (selectForm)="onFormSelect($event)">
</adf-cloud-form-definition-selector>

For more details refer to the:

Start a standalone task with a form

The start task cloud is now using the cloud-form-definition-selector that allows the user to attach a form to a task

Five more languages available

Starting from ADF 3.2, five more languages are now available, together with the other ten already in the list. The new languages supported are: Danish, Finnish, Swedish, Czech, Polish.

List separator configuration in multi-value metadata

As of this version of ADF, developers can configure the list separator of multi-value properties into the metadata viewer. Since this version of ADF, to customize the separator you can set it in your app.config.json file inside your content-metadata configuration. Below an example.

"content-metadata": {
    "presets": {
        ...
    },
    "multi-value-pipe-separator" : " - "
}

For more details refer to the:

Option to chose which panel to show first in info drawer

Is now possible define which aspect show expanded by default in the metadata card applying the optional property displayAspect

feature-1

For more details refer to the:

Confirm Dialog third extra button option and custom HTML message

Is now possible add an extra button in the Confirm Dialog

Dialog inputs

NameTypeDefault valueDescription
titlestringConfirmIt will be placed in the dialog title section.
yesLabelstringyesIt will be placed first in the dialog action section
noLabelstringnoIt will be placed last in the dialog action section
thirdOptionLabel (optional)stringIt is not a mandatory input. it will be rendered in between yes and no label
messagestringDo you want to proceed?It will be rendered in the dialog content area
htmlContentHTMLIt will be rendered in the dialog content area

yes-all

For more details refer to the:

Configuration option to change the default viewer zoom

You can set a default zoom scaling value for pdf viewer by adding the following code in app.config.json. Note: For the pdf viewer the value has to be within the range of 25 - 1000.

 "adf-viewer": {
      "pdf-viewer-scaling": 150
    }

In the same way, you can set a default zoom scaling value for the image viewer by adding the following code in app.config.json.

 "adf-viewer": {
      "image-viewer-scaling": 150
    }

By default, the viewer's zoom scaling is set to 100%.

For more details refer to the:

Drop events for DataTable component

Drop Events

Below are the four new DOM events emitted by the DataTable component. These events bubble up the component tree and can be handled by any parent component.

NameDescription
header-dragoverRaised when dragging content over the header.
header-dropRaised when data is dropped on the column header.
cell-dragoverRaised when dragging data over the cell.
cell-dropRaised when data is dropped on the column cell.

Drop Events

All custom DOM events related to drop handling expose the following interface:

export interface DataTableDropEvent {
    detail: {
        target: 'cell' | 'header';
        event: Event;
        column: DataColumn;
        row?: DataRow
    };

    preventDefault(): void;
}

Note that event is the original drop event, and row is not available for Header events.

According to the HTML5 Drag and Drop API, you need to handle both dragover and drop events to handle the drop correctly.

Given that DataTable raises bubbling DOM events, you can handle drop behavior from the parent elements as well:

<div
    (header-dragover)="onDragOver($event)"
    (header-drop)="onDrop($event)"
    (cell-dragover)="onDragOver($event)"
    (cell-drop)="onDrop($event)">
    
    <adf-datatable [data]="data">
    </adf-datatable>
</div>

Sidenav Layout Direction property

If you use the Sidenav Layout component you can choose set the direction property in it using the property direction ans set it to 'rtl'

<adf-sidenav-layout
   [direction]="'rtl'">
......
</adf-sidenav-layout>

preview

Custom local storages prefix property

If you are using multiple ADF apps, you might want to set the following configuration so that the apps have specific storages and are independent of others when setting and getting data from the local storage.

In order to achieve this, you will only need to set your app identifier under the storagePrefix property of the app in your app.config.json file.

"application": {
   "storagePrefix": "ADF_Identifier"
}

Datatable Component new Json cell type

The datale is now able to render in a better way JSON text :

Show Json formated value inside datatable component.

<adf-datatable ...>
  <data-columns>
       <data-column key="entry.json" type="json" title="Json Column"></data-column>
   </data-columns>
</adf-datatable>

Localisation

This release includes: French, German, Italian, Spanish, Arabic, Japanese, Dutch, Norwegian (Bokmål), Russian, Danish, Finnish, Swedish, Czech, Polish, Brazilian Portuguese and Simplified Chinese versions.

References

Below is a brief list of references to help you start using the new release:

Please refer to the official documentation for further details and suggestions.

Issues addressed

Below is the list of JIRA issues that were closed for this release.

  • [ADF-4356] - How to build an ADF application on top of Activiti 7 Community Edition
  • [ADF-4391] - Doc review for 3.2
  • [ADF-4413] - Activiti 7 and ADF tutorial
  • [ADF-4414] - Release note for version 3.2.0
  • [ADF-4415] - Create the list of third party Open Source components for ADF 3.2 release
  • [ADF-4416] - Create the upgrade guide from ADF 3.1 to ADF 3.2
  • [ADF-4417] - Update the compatibility matrix for ADF 3.2
  • [ADF-4429] - Process List Cloud - Remove the pagination parameters

Feature

  • [ADF-3794] - Update individual rows without reloading DocumentList
  • [ADF-3887] - Using multiple ADF apps from the same browser/user
  • [ADF-3912] - Document-List is not able to retrieve the -file-plan- information from the node
  • [ADF-4128] - Task Cloud completion/back
  • [ADF-4213] - Event handling during header row action.
  • [ADF-4219] - List separator configuration in multi-value metadata
  • [ADF-4327] - Confirm Dialog does not support template injection
  • [ADF-4328] - Storage Service should stream the values when they are changed
  • [ADF-4340] - APW - Form - Upload a file from a form
  • [ADF-4349] - Cloud - task-form-component - Create a new component
  • [ADF-4359] - Add the possibility to chose wich panel to show first in info-drawer
  • [ADF-4362] - No-growing cells on Datatable component
  • [ADF-4409] - Cloud - Make sure ADF is compatible with activiti 7 community and enterprise

Epic

Story

  • [ADF-3797] - Task management view - Task with Form

Bug

  • [ADF-1954] - [IE11] Breadcrumbs are not well aligned
  • [ADF-3228] - User can access the version manager dialog for a locked file
  • [ADF-3678] - Custom Process Filter - Different results in APS than in ADF
  • [ADF-3934] - People Cloud Component - Remove the concept of assignee
  • [ADF-3969] - ADF - Start Task page, fields are not properly aligned.
  • [ADF-3983] - [App List ] - Should be displayed a message to inform the user that has no application
  • [ADF-4043] - [Demo Shell] People Cloud Component - Roles are displayed once with ' ' and once with " "
  • [ADF-4093] - Activiti Cloud - EditProcessFilter - the status are not correct
  • [ADF-4096] - TaskList Cloud component is missing fileName attribute
  • [ADF-4142] - ProcessDefinitionKey is not exposed by the edit task cloud component
  • [ADF-4193] - SearchQueryBuilderService - execute() error handling
  • [ADF-4198] - 'Escape' key doesn't work to close the User Profile dialog.
  • [ADF-4216] - Recently uploaded files are missing 'ago' in the Created column.
  • [ADF-4242] - Inconsistent format date for process and task header components
  • [ADF-4250] - Improve Error Component to display more accurate info about errors
  • [ADF-4263] - [EditProcessFilterCloudComponent] Unit tests are failing.
  • [ADF-4270] - Empty value is displayed on name field when checking the details of a process without name
  • [ADF-4273] - Decide if description field of process header cloud component needs to be removed
  • [ADF-4274] - Group Cloud component - the group is not preselected and is still displayed in the dropdown.
  • [ADF-4275] - People Cloud Component: Preselect validation on User Id doesn't work.
  • [ADF-4303] - [Process Cloud] Start Process - Can not complete a task with the assigned user
  • [ADF-4307] - processDefinitionKey property is not supported by sort edit task
  • [ADF-4321] - Not able to filter by taskId in edit task filter cloud component
  • [ADF-4334] - Editing a multi-valued content property causes it to be stored as a single value (rather than a multi-value collection)
  • [ADF-4339] - The rows in documentList are not properly aligned on IE11
  • [ADF-4343] - Host Settings Dialog closes on Enter key pressed
  • [ADF-4352] - When the SSO identity service is wrongly configured no login error message is displayed
  • [ADF-4357] - Cannot complete a task with the assigned user
  • [ADF-4360] - Ellipsis not working on Date Cell
  • [ADF-4361] - [Accessibility]On Login page, the user is not able to navigate using tab key
  • [ADF-4363] - Cloud page layout broken
  • [ADF-4371] - CLONE - [Upload new version] File is completely deleted when user cancels the upload
  • [ADF-4372] - Json type Date Column breaks datatable layout when json is too long
  • [ADF-4374] - Fix Sticky Header Feature in Datatable Component
  • [ADF-4386] - fix style for CopyContentDirective
  • [ADF-4393] - TaskDetails - Remove readOnly property from TaskDetailsCloud
  • [ADF-4400] - CLONE - Restore version does not refresh the document list
  • [ADF-4401] - Nested 'adf-datatable-cell' items cause display & functional issues
  • [ADF-4403] - Adf clipboard directive - It should have a default placeholder/Position
  • [ADF-4404] - Type ahead form control does not work for URLs
  • [ADF-4405] - Copy link to share not working
  • [ADF-4418] - [Demo-Shell][Cloud]The task is not completed when clicking on complete button
  • [ADF-4420] - End date is empty when task is completed on task header cloud component
  • [ADF-4430] - The error message on metadata property with valid value is still displayed if it had once an invalid value
  • [ADF-4432] - TaskFormCloudComponent - should be read only if the task is unclaimed
  • [ADF-4434] - Custom Empty Content Template message is not centered.
  • [ADF-4455] - Remove whitespace in multivalue metadata fields
  • [ADF-4460] - Can't complete task with an empty upload file widget
  • [ADF-4468] - FormCloud - Not able to show a value of a form variable

Task

  • [ADF-3876] - StartTaskCloud - Be able to start a task with a form
  • [ADF-3962] - [E2E] Automate tests for Content Services with SSO
  • [ADF-4028] - Automate tests for Processlist multiselect
  • [ADF-4046] - Automation test for copy/move file inside a folder
  • [ADF-4047] - Automate test for dropping file in a folder
  • [ADF-4059] - Automate test for copying/moving a node to a folder in a different page
  • [ADF-4191] - Fix and enable the viewer tests
  • [ADF-4272] - Datatable - Create a new directive to copy/paste cells text
  • [ADF-4277] - Automate C305041- Should filter the People and Groups with the Application name filter.
  • [ADF-4278] - Automate C305033 - Should fetch the preselect users
  • [ADF-4279] - AAA - LandingPage layout not aligned
  • [ADF-4292] - Create manual test cases and automate them for new process list properties
  • [ADF-4295] - AuthGuardSSO - Provide a way to validate the client role
  • [ADF-4298] - Automate tests for Info Drawer
  • [ADF-4302] - Move the cloud folder inside app-layout into components folder
  • [ADF-4308] - Add another property on DataColumnComponent to render json data
  • [ADF-4310] - Add manual and automated test cases for edit task filter cloud component
  • [ADF-4312] - Update backend CS in terraform
  • [ADF-4320] - Move cloud folder in root
  • [ADF-4323] - Add style fixes from ACA
  • [ADF-4335] - Update webdriver-manager before running the e2e tests inside test-e2e-lib.sh script
  • [ADF-4336] - Move APS Cloud pages to adf-test
  • [ADF-4337] - Automate ADF-4048
  • [ADF-4344] - Fix cloud automated tests
  • [ADF-4350] - Fix failing e2e tests
  • [ADF-4351] - Change APS2 services url pattern form -service/ to /service/
  • [ADF-4354] - Fix failing cloud tests
  • [ADF-4365] - [e2e] Create startTaskCloudComponent page in @adf-testing package
  • [ADF-4383] - Update the documentation for Edit Process Filter Cloud Component.
  • [ADF-4384] - Support custom filters with Recent Files source
  • [ADF-4387] - Configuration option to change the default image zoom
  • [ADF-4406] - Confirm Dialog doesn't support a third extra button option to be customised
  • [ADF-4410] - CLONE - Upload dialog - version upload
  • [ADF-4411] - Create script to remove Alfresco dependencies
  • [ADF-4422] - Fix Should display processes ordered by id when Id test
  • [ADF-4447] - Automate C307975
  • [ADF-4451] - Automate Event handling during header row action.
  • [ADF-4454] - Map upload field to UploadCloudWidget in task cloud form

Feature Bug

  • [ADF-4311] - [Process-Cloud] - Incorrect label loaded for unclaim option -> "Resqueue" should be "Release"
  • [ADF-4394] - JSON is not supported.
  • [ADF-4423] - Copy Content tooltip is not displayed correctly
  • [ADF-4433] - The attached form is not displayed on a standalone task
  • [ADF-4437] - showRefreshButton property shouldn't be part of task form cloud component
  • [ADF-4444] - Upload Drag&Drop area is not working properly
  • [ADF-4445] - showSaveButton property is missing from form-cloud component

Feature (Task)

  • [ADF-4241] - Automate tests for process header cloud component
  • [ADF-4367] - Automate test for task/process date format
  • [ADF-4368] - Add a way to pass json property to datatable
  • [ADF-4373] - Automation test for accurate error messages
  • [ADF-4388] - Create automated tests for Id in edit task filter cloud component
  • [ADF-4390] - Add a way to test that the developer can use this directive by changing the data-column in demo-shell
  • [ADF-4396] - Automation for cancelling new version upload
  • [ADF-4407] - Automate test for user without permission redirection

Please refer to the Alfresco issue tracker for other known issues in this release. If you have any questions about the release, please contact us using Gitter.

Thanks to the whole application team and the amazing Alfresco community for the hard work.

© 2023 Alfresco Software, Inc. All Rights Reserved.