From 74448ac12ee6fdf82aed40edbab9d62b6df32b9c Mon Sep 17 00:00:00 2001 From: rmnvch <90370279+rmnvch@users.noreply.github.com> Date: Tue, 9 Sep 2025 07:21:52 +0200 Subject: [PATCH] [ACS-10035] Ensure ADW handles no PUT for preferences API method in ACS below 25.x v. [PoC] (#4750) * [ACS-10035]: adds evaluator and helper functions * [ACS-10035]: disables navbar savedSearch for non-supported versions * [ACS-10035]: extends app extension service to allow manual rule evaluation; clean up * [ACS-10035]: introduces pipe as an alternative option for compatibility check * [ACS-10035]: disables save search feature if is not supported * [ACS-10035]: adds test for new method * [ACS-10035]: sonarQube issue * [10035]: adds unit tests for evaluators and helper fns * [ACS-10035]: fixes failed test * [ACS-10035]: fixes naming * [ACS-10035]: fixes race condition issue on direct page refresh * [ACS-10035]: fixes import * [ACS-10035]: sonarQube issues * [ACS-10035]: fixes sonarQube with fake versions * [ACS-10035]: fixes tests * [ACS-10035]: improves pipe logic stream * [ACS-10035]: fixes sonarQube; adjusts tests * [ACS-10035]: adds documentation * [ACS-10035]: exposes isFeatureSupportedInCurrentAcs from aca-content lib * [ACS-10035]: minor fixes * [ACS-10035]: typo fix --- docs/extending/rules-list.md | 6 ++ .../aca-content/assets/app.extensions.json | 5 +- .../aca-content/src/lib/aca-content.module.ts | 1 + .../search-results.component.html | 24 ++++--- .../search-results.component.spec.ts | 16 ++++- .../search-results.component.ts | 4 +- .../pipes/is-feature-supported.pipe.spec.ts | 55 +++++++++++++++ .../lib/pipes/is-feature-supported.pipe.ts | 43 ++++++++++++ projects/aca-content/src/public-api.ts | 1 + .../aca-shared/rules/src/app.rules.spec.ts | 69 ++++++++++++++++++- projects/aca-shared/rules/src/app.rules.ts | 42 +++++++++++ .../services/app.extension.service.spec.ts | 6 ++ .../src/lib/services/app.extension.service.ts | 4 ++ 13 files changed, 260 insertions(+), 16 deletions(-) create mode 100644 projects/aca-content/src/lib/pipes/is-feature-supported.pipe.spec.ts create mode 100644 projects/aca-content/src/lib/pipes/is-feature-supported.pipe.ts diff --git a/docs/extending/rules-list.md b/docs/extending/rules-list.md index c6c419845..57b807209 100644 --- a/docs/extending/rules-list.md +++ b/docs/extending/rules-list.md @@ -76,4 +76,10 @@ or not. | 1.7.0 | app.navigation.isPreview | Current page is **Preview**. | | 5.1.1 | app.navigation.isDetails | User is currently on the **Folder Details** page. | +#### ACS Versions compatibility Rules/Evaluators +Rules/Evaluators created for specific features in ADW to be checked if supported in current ACS version. Evaluators are created using **createVersionRule** helper function locking specific version number into the rule. + +| Version | Key | Description | +|---------|---------------------------------|---------------------------------------------------------------------------| +| 8.1.0 | isSavedSearchAvailable | Checks whether current ACS version supports PUT method in Preferences API | \ No newline at end of file diff --git a/projects/aca-content/assets/app.extensions.json b/projects/aca-content/assets/app.extensions.json index f6bc8c2af..95ca1deac 100644 --- a/projects/aca-content/assets/app.extensions.json +++ b/projects/aca-content/assets/app.extensions.json @@ -212,7 +212,10 @@ "items": [ { "id": "app.search.navbar", - "component": "app.search.navbar" + "component": "app.search.navbar", + "rules": { + "visible": "isSavedSearchAvailable" + } } ] } diff --git a/projects/aca-content/src/lib/aca-content.module.ts b/projects/aca-content/src/lib/aca-content.module.ts index adc7da12d..8f05fa0e5 100644 --- a/projects/aca-content/src/lib/aca-content.module.ts +++ b/projects/aca-content/src/lib/aca-content.module.ts @@ -134,6 +134,7 @@ import { SaveSearchSidenavComponent } from './components/search/search-save/side isSmartFolder: rules.isSmartFolder, isMultiSelection: rules.isMultiselection, canPrintFile: rules.canPrintFile, + isSavedSearchAvailable: rules.isSavedSearchAvailable, 'app.selection.canDelete': rules.canDeleteSelection, 'app.selection.canDownload': rules.canDownloadSelection, diff --git a/projects/aca-content/src/lib/components/search/search-results/search-results.component.html b/projects/aca-content/src/lib/components/search/search-results/search-results.component.html index 2f669008e..c52cb11da 100644 --- a/projects/aca-content/src/lib/components/search/search-results/search-results.component.html +++ b/projects/aca-content/src/lib/components/search/search-results/search-results.component.html @@ -26,17 +26,18 @@
{{ 'APP.BROWSE.SEARCH.ADVANCED_FILTERS' | translate }}