7.8 KiB
Title
| Title |
|---|
| Upgrading from ACA v4.2 to v4.3 |
Upgrading from ACA v4.2 to v4.3
This guide provides instructions on how to upgrade your Alfresco Content Application (ACA) v4.2.0 project to v4.3.0.
This is a smaller release built on ADF 6.3.0 → 6.4.0 (@alfresco/js-api 7.0.0 → 7.1.0, a minor bump). The main
ADF-driven change is completing the moment → date-fns move (ADF 6.4 dropped moment), and ACA adopts several
new ADF 6.4 capabilities (configurable document-list columns, custom metadata panels). Read the ADF guide
alongside this one:
Angular, Material, TypeScript, rxjs and the Node version are all unchanged. ACA's public library API
(@alfresco/aca-shared / @alfresco/aca-content entry points) is unchanged too — no exports were removed or
renamed — so most of this upgrade is dependency/config, not code. Read the breaking changes.
Before you begin
Always perform upgrades on a "clean" project state, back up your changes or make a project backup. Node 18 is still required (unchanged).
Contents
- Library updates
- Aligning with ADF 6.4
- Breaking changes
- New components and features
- Behavioural changes
Library updates
Update the package.json file with the latest library versions:
{
"dependencies": {
"@alfresco/adf-core": "6.4.0",
"@alfresco/adf-content-services": "6.4.0",
"@alfresco/adf-extensions": "6.4.0",
"@alfresco/js-api": "7.1.0"
}
}
@alfresco/adf-cli and @alfresco/adf-testing move to 6.4.0 as well. Four moment-related dependencies were
removed — moment, moment-es6, @angular/material-moment-adapter and @mat-datetimepicker/moment — while
@angular/material-date-fns-adapter, date-fns and @mat-datetimepicker/core are retained. Angular (14.1.3),
TypeScript (4.7.4), rxjs (6.6.6) and Node (.nvmrc 18) are unchanged. Clean node_modules and the lockfile,
then reinstall.
Aligning with ADF 6.4
See the ADF 6.3 → 6.4 guide for the underlying changes.
moment removed (date-fns completion)
ADF 6.4 completed its moment → date-fns migration and dropped moment as a runtime/peer dependency. ACA followed
suit and removed the moment family from package.json (see Library updates). ACA's own
library/component source was already date-fns-based, so the only code change was in e2e tests, which now format
dates through ADF's DateFnsUtils.formatDate() (from @alfresco/adf-core) instead of raw date-fns. If your fork
still imports moment (or the moment Material adapters) transitively via ACA/ADF, add them to your own
package.json or migrate to date-fns. (See ADF 6.4 → "Date handling (moment → date-fns)".)
Configurable document-list columns
Adopting ADF 6.4's DataColumn.isHidden support, ACA added an [isHidden]="column.isHidden" binding to the
data-column definitions across its seven document lists (files, favorites, favorite-libraries,
libraries, recent-files, shared-files, trashcan), so columns can be shown/hidden. If you customise these
lists, carry the isHidden binding through.
Custom metadata side panels
ACA adopts ADF 6.4's ContentMetadataComponent @Input() customPanels to let extensions contribute extra metadata
panels. This adds a new extension point (see New components and features); the
metadata tab now binds [customPanels] on adf-content-metadata-card.
Folder-rules category autocomplete
The Folder Rules "Has Category" condition gained an autocomplete backed by ADF's CategoryService.searchCategories()
(@alfresco/adf-content-services). Internally this added an 'auto-complete' RuleConditionFieldType.
Breaking changes
ACA's published library API is unchanged in this release (the public-api.ts of every @alfresco/aca-shared and
@alfresco/aca-content entry point is identical between 4.2.0 and 4.3.0 — no exports removed, renamed or newly
deprecated). The consumer-affecting changes are at the dependency/build level:
Nx 16 workspace migration
The workspace moved to Nx 16 and the Nx package scope was renamed @nrwl/* → @nx/* (nx / @nx/angular
/ @nx/workspace / @nx/eslint-plugin 16.10.0). nx.json, project.json, .eslintrc.json and tsconfig.json
were rewritten accordingly. If you maintain a fork with custom Nx targets or @nrwl/* imports, migrate them to
@nx/* and run the Nx 16 migrations.
Peer dependency ranges loosened
The published ACA libraries (projects/aca-content, projects/aca-shared) changed their peerDependencies from
caret ranges to >= (e.g. @alfresco/adf-core ^6.3.0 → >=6.4.0, @alfresco/js-api >=7.0.0 → >=7.1.0, and
the @angular/* / @ngx-translate/core / rxjs / zone.js peers likewise). This mainly affects how versions
resolve when you install those packages.
New components and features
- Name-column badges — extensions can add icon badges (with tooltip, and an optional custom component) to the
document-list name column. New public
Badgeinterface (@alfresco/aca-shared,extends ContentActionRefwith atooltip), a newfeatures.badgesblock inapp.extensions.json(abadgeneedsid,icon,tooltip, optionalcomponent), and a newAppExtensionService.getBadges(node)method. - Custom metadata side panels — a new
features.customMetadataPanelsextension feature (array ofcontentActionRef) renders registered extension components as extra metadata panels, surfaced via the newAppExtensionService.getCustomMetadataPanels(node)method. - Configurable document-list columns — see Configurable document-list columns.
- Breadcrumb navigation on the Details tab — the Details page breadcrumb now navigates
(
onBreadcrumbNavigate(path)dispatchingNavigateToFolder).
Behavioural changes
| Area | Change |
|---|---|
| Info drawer | The info drawer / Details tab now opens over a custom file preview — PageComponent.infoDrawerOpened$ no longer suppresses the drawer while a viewer outlet is active. |
| Library metadata | The library-metadata info-drawer was reworked into a single reactive form; update/cancel now reflect immediately in the UI, and renaming a library to a whitespace-only name is prevented. |
| Edit offline | Toggling "edit offline" now reselects the node so dependent UI refreshes. |
| Icons | Toolbar/info-drawer icons and button pressed/focus states were updated to match the current design (e.g. the info-drawer toggle icon menu_open → view_sidebar). |