Commit Graph
5026 Commits
Author SHA1 Message Date
Shivangi Shree db0ac6c6af [ACS-10246] Enhance the logic for converting date 2026-08-14 16:56:13 +05:30
Shivangi Shree a7f7301473 [ACS-10246] Fix unit test 2026-08-14 16:27:57 +05:30
Shivangi Shree ce32d42dec [ACS-10246] Add logic to make dates semantically conveyed 2026-08-14 15:00:20 +05:30
Mykyta Maliarchuk 3aa17e49fe [ACS-12332] Add checkout and cancel-checkout node support (#12133)
* [ACS-12332] Add checkout and cancel-checkout node support

* [ACS-12332] cr fix
2026-08-13 09:32:32 +02:00
Tomasz Gnyp e188e9316d AAE-50043 Improve notification snackbar buttons style (#12164)
* AAE-50043 Improve notification snackbar buttons style

* replace direct mat styling by class

* adjust padding

* add data automation id
2026-08-11 12:47:04 +02:00
Bartosz Sekula 0766d2b415 AAE-49656 eslint 10 migration (#12146)
* AAE-49656 eslint 10 migration

* update
2026-08-10 10:25:17 +02:00
alfresco-engineering-contributor[bot]andhxpstudiocicduser 8227f85fcb New Crowdin translations by GitHub Action (#12061)
Co-authored-by: hxpstudiocicduser <hxpstudiocicduser@hyland.com>
2026-08-07 11:47:05 +01:00
AleksanderSklorz 4592a8ae21 [ACS-12390] Changes needed to fix search input visibility when resizing browser window (#12137)
* [ACS-12390] Changes needed to fix search input visibility when resizing browser window

* [ACS-12390] Addressed copilot comments
2026-08-07 11:55:58 +02:00
Ehsan Rezaei 99c574bad6 AAE-49715 Reducing extra calls to get counter filters (#12134)
* AAE-49715 Reducing extra calls to get counter filters

* AAE-49715 Updating unit tests

* AAE-49715 Code improvement

* AAE-49715 Code improvements
2026-08-07 11:20:13 +02:00
Shivangi Shree f435b63e42 [ACS-12385] Add language option for en-AU (#12131)
* [ACS-12385] Add language option for en-AU

* [ACS-12385] CR fixes
2026-08-07 14:28:09 +05:30
Mykyta Maliarchuk 1ab385a3c9 [MNT-25629] Add batch document-runtime endpoint support (#12121)
* [MNT-25629] Add batch document-runtime endpoint support

* [MNT-25629] cr fixes

* [MNT-25629] cr fixes

* [MNT-25629] add tests for api method
2026-08-07 10:37:57 +02:00
Alex Molodyh 33cf47342d AAE-49688 fix for hidden fields in groups holding up validations (#12135) 2026-08-06 22:49:17 -07:00
Shivangi Shree 4cbe97c12c [ACS-8468] Add copy icon functionality (#12079)
* [ACS-9106] Make the descendants false iin data column component

* [ACS-8468] Add copy icon

* [ACS-8468] Remove change from data column

* [ACS-8468] Use if instead of *ngIf

* [ACS-8468] Revert to double click functionality

* [ACS-8468] Make copy button toggable and make it icon

* [ACS-8468] Add unit test for copy icons

* [ACS-8468] Add unit test for mat registry

* [ACS-8468] Remove deprecated component

* [ACS-8468] Align the styling with dropdown menu

* [ACS-8468] Fix sonar cloud issue

* [ACS-8468] Remove deprecated component

* [ACS-8468] Remove svg icon and use material icon

* [ACS-8468] Fix styling and remove mat-form-field-icon-suffix selector

* [ACS-8468] Make copy to clipboard icon property true

* [ACS-8468] Add unit tests and remove unused class

* [ACS-8468] Add unitTestingUtils

* [ACS-8468] use with args instead of callFake

* [ACS-8468] remove jasmine.spy
2026-08-07 10:32:42 +05:30
Dominik Iwanek 12ae30ce06 [MNT-25612] ADW Metadata Drawer ignores read‑only presets (readOnlyAspects / readOnlyProperties) (#12129) 2026-08-05 08:42:52 +02:00
Darren Thornton 72522c0f72 AAE-39559 Update to handle 0 initial rows for repeatable sections (#12113)
* AAE-39559 Update to handle 0 initial rows for repeatable sections

* address code review comments
2026-08-04 10:53:19 -05:00
Ehsan Rezaei b06098c500 AAE-49541 Make notification debounce time configurable and increase default (#12124)
* AAE-49541 Make notification debounce time configurable and increase default

* AAE-49541 Code improvement
2026-08-03 17:02:18 +02:00
Bartosz Sekula 3f232e75bc AAE-48934 Eslint v9 migration (#12110)
* update

* update

* update

* working

* cr

* cr

* update

* use nx boundaries

* fixes

* fixes

* fixes

* cr

* cr

* update

* update

* update

* cr

* fix null

* cr

* cr

* cr

* cr

* cr

* update

* update

* update

* update

* update

* remove some duplications

* fix units
2026-08-03 12:12:48 +02:00
Amedeo Lepore 8ebbfa819e Revert "AAE-48166 Compensate for VM/Citrix clock drift in token expiry check (#12024)" (#12111)
This reverts commit ce907417b7.
2026-07-31 09:55:30 +01:00
Dominik Iwanek 9587995ac3 [MNT-25612] ADW Metadata Drawer ignores read‑only presets (readOnlyAs… (#12095) 2026-07-31 09:21:13 +02:00
Denys Vuika 0c099eafb0 chore(cli): replace ejs with native node template rendering (#12109)
* chore(cli): replace ejs with native node template rendering

* chore(cli): add HTML escaping to audit, changelog, and licenses rendering functions

* chore(cli): remove templates directory from dist script in package.json

* chore(cli): remove node-fetch dependency from package.json
2026-07-30 13:22:47 +01:00
Munir Fati Haji 4f32198afd AAE-47579 feat(core): Introduce EDIT_JSON_EDITOR injection token and add copy button to EditJsonDialogComponent (#12046) 2026-07-30 10:41:15 +02:00
Alex Molodyh f0c60b422d AAE-48705 Fix for datatable column name wrapping when hovering over it (#12081) 2026-07-29 21:00:54 -07:00
Joshua Cain b8df098e35 AAE-49328 Form console errors (#12108)
* fix: form console errors

* fix: copilot feedback
2026-07-29 14:21:33 -04:00
Michal Kinas c9473d93c0 [ACS-12288] Fetch all aspects for aspect list component (#12105)
* [ACS-12288] Fetch all aspects for aspect list component

* [ACS-12288] CR fixes

* [ACS-12288] Unit test fix
2026-07-29 15:01:51 +02:00
Denys Vuika 6c8b874704 migrate js-api tests from Jest to Node.js native test runner (#12104) 2026-07-28 20:04:31 +01:00
Shivangi Shree c941c81984 [ACS-11860] Update license-header from 2005-2025 to 2005-2026 (#12094) 2026-07-28 14:46:46 +05:30
Bartosz Sekula b234ca6c42 AAE-48934 Migrate to @angular/build (#12098)
* AAE-48934 Migrate to @angular/build

* cr

* cr

* fix watch issue

* fix insights tests
2026-07-28 10:42:26 +02:00
Alex Molodyh b6ae479cd0 AAE-47527 Populate people and group widgets from process response (#12082) 2026-07-27 11:29:43 -07:00
Denys Vuika 03e6320bd2 refactor: remove node-fetch dependency and use native fetch API (#12097) 2026-07-27 15:17:49 +00:00
Joshua Cain 565af341dd fix: allow other events to call preventDefault (#12089) 2026-07-24 12:46:28 -04:00
AleksanderSklorz ba814fd6ec [ACS-8467] Removed duplicated dialog after clicking label in folder rules creation dialog (#12088) 2026-07-24 13:38:40 +02:00
Denys Vuika 3f2c767d43 chore(search): add disableAnimations input and update styles for search button transitions (#12087) 2026-07-24 11:49:43 +01:00
Shivangi Shree a1ee4e0d48 [ACS-9106] Make the descendants false iin data column component (#12077)
* [ACS-9106] Make the descendants false iin data column component

* [ACS-9106] Add unit test

* [ACS-9106] Fix formatting

* [ACS-9106] Remove the declaration of fixture outside it
2026-07-24 12:25:19 +05:30
Denys Vuika 40a0a67583 chore(core): add context-menu storybook showcase and material-style notes (#12084) 2026-07-23 17:43:30 +01:00
Denys Vuika 85ec35cdf9 Migrate to new animations api (#12078) 2026-07-23 12:21:10 +01:00
David Olson 9f21d602fc AAE-48859 Allow repeatable section row labels to be configurable (#12080) 2026-07-22 18:48:32 -05:00
Mykyta Maliarchuk 1f7722ca89 [ACS-11406] Refactored UnitTestingUtils to use inner scoped utility classes (#12052)
* [ACS-11406] Refactored UnitTestingUtils

* [ACS-11406] update affected unit tests

* empty [ci:force]

* [ACS-11406] fix process-services-cloud tests [ci:force]

* [ACS-11406] cr fixes [ci:force]
2026-07-21 10:38:14 +02:00
Shivangi Shree 62dff48260 [ACS-12175] Fix annotation popup style (#12048)
* [ACS-12175] Fix annotation popup style

* [ACS-12175] Fix style and syntax issues for annotations

* [ACS-12175] Write unit test for date element

* [ACS-12175] Fix undefined error in unit test

* [ACS-12175] Use material theme for styling of popup

* [ACS-12175] Add style to title iinstead of using h1 header

* [ACS-12175] focus on annotation content

* [ACS-12175] Revert the change of background color
2026-07-21 12:55:21 +05:30
Shivangi Shree 660b14a780 [ACS-9584] Refresh after the change of name of a node (#12060)
* [ACS-9584] Refresh after the change of name of a node

* [ACS-9584] Add unit test for name change

* [ACS-9584] Merge the changed fields onto the existing one

* [ACS-9584] Refresh does not happen after name change of a file

* [ACS-9584] Page only reload for extension and version change

* [ACS-9584] Add sidebarTemplateContext to unit test

* [ACS-9584] Add unit test for the changes in ngOnChanges

* Render spinner visibility rather than internal field
2026-07-21 07:04:39 +00:00
Michal Kinas 9d5f6e692c Post-release version bump (#12076) 2026-07-20 17:25:05 +02:00
Michal Kinas 3496363b8e Release 9.0.0 (#12075)
* Release 9.0.0

* Add missing entry
2026-07-20 13:54:51 +02:00
Michal KinasandClaude Opus 4.8 0a19be090e [ACS-12286] Pass includeFields through to getRecentFiles for -recent- (#12067)
* [ACS-12286] Pass includeFields through to getRecentFiles for -recent-

loadFolderByNodeId forwarded includeFields to every custom source except
-recent-, and getRecentFiles had no includeFields parameter, hardcoding the
search include set. Thread includeFields through to the recent-files search
request (de-duplicated, defaults preserved) so callers can request extra
fields such as isFavorite.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* [ACS-12286] Document includeFields parameter for getRecentFiles

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* [ACS-12286] Use typed PersonEntry instead of any in getRecentFiles spec

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 10:03:05 +02:00
AleksanderSklorz b69c3ae1ae [MNT-25230] Displayed modified time for node version (#12066)
* [MNT-25230] Displayed modified time for node version

* [MNT-25230] Addressed copilot comment
2026-07-16 13:11:37 +02:00
ce907417b7 AAE-48166 Compensate for VM/Citrix clock drift in token expiry check (#12024)
* fix: compensate for VM/Citrix clock drift in token expiry check

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* feat(core/auth): add TimeSyncDateTimeProvider for angular-oauth2-oidc clock drift correction

* feat(auth): add periodic clock re-sync to protect against mid-session drift in Citrix/VM environments

- Add startPeriodicSync() and stopPeriodicSync() to TimeSyncService
- Re-sync clock offset every 5 minutes and on document visibility change
- Add security cap (maxAllowedOffsetMs) to reject unreasonably large offsets
- Preserve existing offset on sync failures instead of resetting to 0
- Wire periodic sync start in RedirectAuthService.configureAuth()
- Wire periodic sync stop in RedirectAuthService.logout()
- Add unit tests for periodic sync and offset cap behavior

* feat: replace dedicated time API with passive Date response header interception

- Add `updateClockOffsetFromDateHeader()` to `TimeSyncService` so the clock
  offset can be updated from any HTTP `Date` response header (RFC 7231)
- Make `serverTimeUrl` config optional: `syncClockOffset` is a safe no-op and
  `checkTimeSync` uses the stored `clockOffsetMs` when no URL is configured
- Add `DateHeaderTimeSyncInterceptor` that reads the `Date` header from every
  HTTP response and passively keeps `TimeSyncService.clockOffsetMs` current
- Register the new interceptor in `provideCoreAuth()` / `AuthModule`
- Export `DateHeaderTimeSyncInterceptor` from the public API
- Add unit tests for all new paths

* feat: retry token refresh before checking for clock out-of-sync

- tokenHasExpiredDueToClockOutOfSync$: skip the first "token expired" event
  so the library's automatic refresh has a chance to run before clock drift
  is diagnosed as the root cause
- oauthErrorEventOccurDueToClockOutOfSync$: use scan() to skip the first
  token_refresh_error (allowing one retry) and only check clock sync on the
  second occurrence; all other error types are still checked immediately
- Update test for token expiry: now requires two events before logout
- Replace single token_refresh_error clock-sync test with two tests:
  one verifying no logout on first error, one verifying logout on second

* fix(core): remove duplicate @angular/common/http import in date-header-time-sync interceptor spec

* fix(core): treat empty/whitespace serverTimeUrl as not configured in TimeSyncService

* fix(core): limit DateHeaderTimeSyncInterceptor to IAM API responses only

* refactor: remove tokenHasExpiredDueToClockOutOfSync$ and re-sync clock + refresh token on validation failure

Instead of having a separate observable that detects token expiration due to clock
drift and immediately logs the user out, the oauthErrorEventOccurDueToClockOutOfSync$
now re-syncs the clock offset and attempts a token refresh when clock drift is detected.
Only if the refresh fails after re-syncing does it propagate the error and trigger logout.

* fix(auth): check token validity after clock re-sync before attempting refresh

After re-syncing the clock offset, the code now checks whether the token
is actually still valid using the corrected time (via tokenHasExpired()).
If the token is valid, no refresh is needed — the token only appeared
expired due to clock drift. This avoids the impossible situation of
retrying a token refresh when the triggering error was itself a refresh
error.

* refactor(auth): replace IAM header interceptor with HEAD request to app root for time sync

Instead of passively reading the Date header from IAM responses (which
requires IAM to be reachable and has CORS constraints), the TimeSyncService
now makes a lightweight HEAD request to the application's own root URL
(served by nginx). This is simpler and more reliable because:

- No CORS issues (same origin)
- Nginx always includes a Date header
- HEAD request has minimal payload (no body)
- Works before authentication is established
- No dedicated serverTimeUrl configuration needed

The DateHeaderTimeSyncInterceptor has been removed as it is no longer needed.

* fix(auth): reset tokenRefreshErrorCount on successful token event

The tokenRefreshErrorCount in the oauthErrorEventOccurDueToClockOutOfSync$
stream now resets to 0 when a 'token_received' or 'token_refreshed' event
occurs. This prevents intermittent errors that self-correct from
accumulating toward the clock-drift detection threshold.

* fix(core): provide meaningful error message when API response body is null

When the server returns no response body (e.g., during token expiration,
network interruption, or CORS failures), err.error is null causing
JSON.stringify(null) to produce the unhelpful message "null".

Now we explicitly handle the null case and produce a message like
"401 Unauthorized" instead of "null".

* fix: resync clock before invalidating tokens at startup

At startup, when the first OAuth event fires, the service checks if the
access token is valid. Previously it would immediately clear storage if
the token appeared invalid. This could cause false negatives when the
local clock was out of sync (e.g. VM/Citrix environments).

Now the service first re-syncs the clock offset via TimeSyncService, then
re-evaluates the token validity. Storage is only cleared if the token is
still invalid after the corrected time check.

* Remove maxAllowedOffsetMs from TimeSyncService

* Fix startPeriodicSync call to match updated signature

* WIP

* Add Flag

* AAE-48166 Sync time using server time

* AAE-48166 Fix unit test

* AAE-48166 Fix service

* AAE-48166 Fix service

* AAE-48166 Fix service and add tests

* AAE-48166 Use app root instead of server time url

* AAE-48166 Use oauth2.timeSync config key for time sync gate

* AAE-48166 Keep redirect auth flow unchanged when time sync is disable

* Add oauth2.showDebugInformation and related debug logging for time sync

* AAE-48166 Fix multi-tab OIDC refresh failures by resyncing server time when timeSync enabled

* AAE-48166 Avoid repeated server time calls by caching the result for 2 seconds

* AAE-48166 test(auth): cover timeSync clock sync for implicit flow silent refresh

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Eugenio Romano <eromano@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Diogo Bastos <diogo.bastos@hyland.com>
Co-authored-by: alep85 <amedeo.lepore@hyland.com>
2026-07-16 11:31:15 +02:00
Darren Thornton 4c7765e3fa AAE-46517 Add onRowCountChange form event for Repeatable Sections (#12062)
* AAE-46517 Add onRowCountChange event for Repeatable Sections

* code review fixes for unit test
2026-07-14 18:40:41 -05:00
Alex Molodyh 407a64996e AAE-46248 Format dropdown/radio option labels in display-text expressions (#12045) 2026-07-14 14:54:13 -07:00
066ef30516 GH auto: Automated Update of Translations from Crowdin (#12044)
* New Crowdin translations by GitHub Action

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: hxpstudiocicduser <hxpstudiocicduser@hyland.com>
Co-authored-by: Denys Vuika <denys.vuika@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-14 12:08:47 +01:00
AleksanderSklorz 01cea60490 [MNT-25230] adw version history does not provide user information (#12050)
* [MNT-25230] Displayed user displayName in version history for specific version

* [MNT-25230] Unit tests

* [MNT-25230] Addressed copilot comment

* [MNT-25230] Addressed copilot comment

* [MNT-25230] Addressed copilot comment

* [MNT-25230] Addressed copilot comment

* [MNT-25230] Addressed copilot comment
2026-07-13 10:38:13 +02:00
Denys Vuika 09ef05038c chore: remove deprecated MaterialModule and its references (#12051)
* chore: remove deprecated MaterialModule and its references

* chore: remove MaterialModule exports from public API
2026-07-13 09:07:00 +01:00
Anamika Dey c7bd56f244 AAE-43974 Fix for alfresco-content-app e2e failure (#12055)
* AAE-43974 Fix for alfresco-content-app e2e failure

* AAE-43974 Refactored based on review comments

* AAE-43974 Removing unit test cases written for isError as it is being tested by passwordErrorStateMatcher

* [ci:force] re-trigger CI
2026-07-10 18:53:53 +00:00