Skip to content

Commit 71eee98

Browse files
authored
[ACS-10421] Add support for legacy config.json based approach for saved-searches (#4863)
* [ACS-9166]: introduces saved searches context service * [ACS-9166]: migrates to context service * [ACS-9166]: fixes tests * [ACS-9166]: removes prev approach artifacts * [ACS-9166]: fixes falsy emissions form pipe * [ACS-9166]: adds reactive strategy option * [ACS-9166]: tests fixes * [ACS-9166]: minor fix
1 parent d216c2f commit 71eee98

24 files changed

+365
-82
lines changed

docs/extending/rules-list.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,6 @@ Rules/Evaluators created for specific features in ADW to be checked if supported
8282

8383
| Version | Key | Description |
8484
|---------|---------------------------------|---------------------------------------------------------------------------|
85-
| 8.1.0 | isSavedSearchAvailable | Checks whether current ACS version supports PUT method in Preferences API |
85+
| 8.1.0 | isPreferencesApiAvailable | Checks whether current ACS version supports PUT method in Preferences API |
8686
| 8.1.0 | isFolderInfoAvailable | Checks whether current ACS version supports folder size calculation API |
8787
| 8.1.0 | isBulkActionsAvailable | Checks whether current ACS version supports bulk update feature |

projects/aca-content/assets/app.extensions.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -219,10 +219,7 @@
219219
"items": [
220220
{
221221
"id": "app.search.navbar",
222-
"component": "app.search.navbar",
223-
"rules": {
224-
"visible": "isSavedSearchAvailable"
225-
}
222+
"component": "app.search.navbar"
226223
}
227224
]
228225
}

projects/aca-content/src/lib/aca-content.module.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ import { SearchResultsRowComponent } from './components/search/search-results-ro
6969
import { BulkActionsDropdownComponent } from './components/bulk-actions-dropdown/bulk-actions-dropdown.component';
7070
import { AgentsButtonComponent } from './components/knowledge-retrieval/search-ai/agents-button/agents-button.component';
7171
import { SaveSearchSidenavComponent } from './components/search/search-save/sidenav/save-search-sidenav.component';
72+
import { IsFeatureSupportedInCurrentAcsPipe } from './pipes/is-feature-supported.pipe';
7273

7374
@NgModule({
7475
imports: [ContentModule.forRoot(), AppStoreModule, HammerModule],
@@ -134,7 +135,7 @@ import { SaveSearchSidenavComponent } from './components/search/search-save/side
134135
isSmartFolder: rules.isSmartFolder,
135136
isMultiSelection: rules.isMultiselection,
136137
canPrintFile: rules.canPrintFile,
137-
isSavedSearchAvailable: rules.isSavedSearchAvailable,
138+
isPreferencesApiAvailable: rules.isPreferencesApiAvailable,
138139
isFolderInfoAvailable: rules.isFolderInfoAvailable,
139140
isBulkActionsAvailable: rules.isBulkActionsAvailable,
140141

@@ -169,7 +170,8 @@ import { SaveSearchSidenavComponent } from './components/search/search-save/side
169170
'app.areCategoriesEnabled': rules.areCategoriesEnabled,
170171
'app.isSSOEnabled': rules.isSSOEnabled
171172
}
172-
})
173+
}),
174+
IsFeatureSupportedInCurrentAcsPipe
173175
]
174176
})
175177
export class ContentServiceExtensionModule {}

projects/aca-content/src/lib/components/search/search-results/search-results.component.html

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
<div class="aca-content__advanced-filters--header">
2727
<p>{{ 'APP.BROWSE.SEARCH.ADVANCED_FILTERS' | translate }}</p>
2828
<div class="aca-content__advanced-filters--header--action-buttons">
29-
@if('isSavedSearchAvailable' | isFeatureSupportedInCurrentAcs | async) {
3029
<button
3130
*ngIf="initialSavedSearch !== undefined else saveSearchButton"
3231
mat-button
@@ -67,7 +66,6 @@
6766
{{ 'APP.BROWSE.SEARCH.SAVE_SEARCH.ACTION_BUTTON' | translate }}
6867
</button>
6968
</ng-template>
70-
}
7169
<button
7270
mat-button
7371
adf-reset-search

projects/aca-content/src/lib/components/search/search-results/search-results.component.spec.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import { AppConfigService, NotificationService, TranslationService } from '@alfr
2929
import { Store } from '@ngrx/store';
3030
import { NavigateToFolder } from '@alfresco/aca-shared/store';
3131
import { Pagination, SearchRequest } from '@alfresco/js-api';
32-
import { SavedSearchesService, SearchQueryBuilderService } from '@alfresco/adf-content-services';
32+
import { SearchQueryBuilderService } from '@alfresco/adf-content-services';
3333
import { ActivatedRoute, Event, NavigationStart, Params, Router } from '@angular/router';
3434
import { BehaviorSubject, Observable, of, Subject, throwError } from 'rxjs';
3535
import { AppTestingModule } from '../../../testing/app-testing.module';
@@ -42,6 +42,7 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
4242
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
4343
import { MatMenuModule } from '@angular/material/menu';
4444
import { MatMenuHarness } from '@angular/material/menu/testing';
45+
import { SavedSearchesContextService } from '../../../services/saved-searches-context.service';
4546

4647
@Pipe({ name: 'isFeatureSupportedInCurrentAcs' })
4748
class MockIsFeatureSupportedInCurrentAcsPipe implements PipeTransform {
@@ -96,7 +97,7 @@ describe('SearchComponent', () => {
9697
}
9798
},
9899
{
99-
provide: SavedSearchesService,
100+
provide: SavedSearchesContextService,
100101
useValue: {
101102
getSavedSearches: jasmine
102103
.createSpy('getSavedSearches')

projects/aca-content/src/lib/components/search/search-results/search-results.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import {
3030
DocumentListComponent,
3131
ResetSearchDirective,
3232
SavedSearch,
33-
SavedSearchesService,
3433
SearchConfiguration,
3534
SearchFilterChipsComponent,
3635
SearchFormComponent,
@@ -89,6 +88,7 @@ import { combineLatest, of } from 'rxjs';
8988
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9089
import { MatMenuModule } from '@angular/material/menu';
9190
import { IsFeatureSupportedInCurrentAcsPipe } from '../../../pipes/is-feature-supported.pipe';
91+
import { SavedSearchesContextService } from '../../../services/saved-searches-context.service';
9292

9393
@Component({
9494
imports: [
@@ -155,7 +155,7 @@ export class SearchResultsComponent extends PageComponent implements OnInit {
155155
private readonly changeDetectorRef: ChangeDetectorRef,
156156
private readonly route: ActivatedRoute,
157157
private readonly translationService: TranslationService,
158-
private readonly savedSearchesService: SavedSearchesService
158+
private readonly savedSearchesService: SavedSearchesContextService
159159
) {
160160
super();
161161

projects/aca-content/src/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.spec.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,15 @@ import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testin
2626
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
2727
import { of, throwError } from 'rxjs';
2828
import { SavedSearchDeleteDialogComponent } from './saved-search-delete-dialog.component';
29-
import { SavedSearch, SavedSearchesService } from '@alfresco/adf-content-services';
29+
import { SavedSearch } from '@alfresco/adf-content-services';
3030
import { NotificationService } from '@alfresco/adf-core';
3131
import { AppTestingModule } from '../../../../../testing/app-testing.module';
32+
import { SavedSearchesContextService } from '../../../../../services/saved-searches-context.service';
3233

3334
describe('SaveSearchDeleteDialogComponent', () => {
3435
let fixture: ComponentFixture<SavedSearchDeleteDialogComponent>;
3536
let notificationService: NotificationService;
36-
let savedSearchesService: SavedSearchesService;
37+
let savedSearchesService: SavedSearchesContextService;
3738
let submitButton: HTMLButtonElement;
3839
let cancelButton: HTMLButtonElement;
3940

@@ -52,13 +53,13 @@ describe('SaveSearchDeleteDialogComponent', () => {
5253
imports: [AppTestingModule, SavedSearchDeleteDialogComponent],
5354
providers: [
5455
{ provide: MatDialogRef, useValue: dialogRef },
55-
{ provide: SavedSearchesService, useValue: { deleteSavedSearch: () => of({}) } },
56+
{ provide: SavedSearchesContextService, useValue: { deleteSavedSearch: () => of({}) } },
5657
{ provide: MAT_DIALOG_DATA, useValue: savedSearchToDelete }
5758
]
5859
});
5960
dialogRef.close.calls.reset();
6061
fixture = TestBed.createComponent(SavedSearchDeleteDialogComponent);
61-
savedSearchesService = TestBed.inject(SavedSearchesService);
62+
savedSearchesService = TestBed.inject(SavedSearchesContextService);
6263
notificationService = TestBed.inject(NotificationService);
6364

6465
submitButton = fixture.nativeElement.querySelector('#aca-save-search-delete-dialog-submit-button');

projects/aca-content/src/lib/components/search/search-save/dialog/delete/saved-search-delete-dialog.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@
2323
*/
2424

2525
import { Component, Inject, ViewEncapsulation } from '@angular/core';
26-
import { SavedSearch, SavedSearchesService } from '@alfresco/adf-content-services';
26+
import { SavedSearch } from '@alfresco/adf-content-services';
2727
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
2828
import { take } from 'rxjs/operators';
2929
import { NotificationService } from '@alfresco/adf-core';
3030
import { TranslatePipe } from '@ngx-translate/core';
3131
import { TitleCasePipe } from '@angular/common';
3232
import { MatIconModule } from '@angular/material/icon';
3333
import { MatButtonModule } from '@angular/material/button';
34+
import { SavedSearchesContextService } from '../../../../../services/saved-searches-context.service';
3435

3536
@Component({
3637
imports: [TranslatePipe, TitleCasePipe, MatIconModule, MatButtonModule, MatDialogModule],
@@ -46,7 +47,7 @@ export class SavedSearchDeleteDialogComponent {
4647
constructor(
4748
private readonly dialog: MatDialogRef<SavedSearchDeleteDialogComponent>,
4849
private readonly notificationService: NotificationService,
49-
private readonly savedSearchesService: SavedSearchesService,
50+
private readonly savedSearchesService: SavedSearchesContextService,
5051
@Inject(MAT_DIALOG_DATA) private readonly data: SavedSearch
5152
) {}
5253

projects/aca-content/src/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.spec.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,17 @@ import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testin
2626
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
2727
import { of, throwError } from 'rxjs';
2828
import { SavedSearchEditDialogComponent } from './saved-search-edit-dialog.component';
29-
import { SavedSearch, SavedSearchesService } from '@alfresco/adf-content-services';
29+
import { SavedSearch } from '@alfresco/adf-content-services';
3030
import { provideMockStore } from '@ngrx/store/testing';
3131
import { NotificationService } from '@alfresco/adf-core';
3232
import { AppTestingModule } from '../../../../../testing/app-testing.module';
33+
import { SavedSearchesContextService } from '../../../../../services/saved-searches-context.service';
3334

3435
describe('SaveSearchEditDialogComponent', () => {
3536
let fixture: ComponentFixture<SavedSearchEditDialogComponent>;
3637
let component: SavedSearchEditDialogComponent;
3738
let notificationService: NotificationService;
38-
let savedSearchesService: SavedSearchesService;
39+
let savedSearchesService: SavedSearchesContextService;
3940
let submitButton: HTMLButtonElement;
4041

4142
const savedSearchToDelete: SavedSearch = {
@@ -54,15 +55,15 @@ describe('SaveSearchEditDialogComponent', () => {
5455
providers: [
5556
{ provide: MatDialogRef, useValue: dialogRef },
5657
provideMockStore(),
57-
{ provide: SavedSearchesService, useValue: { editSavedSearch: () => of({}), getSavedSearches: () => of([]) } },
58+
{ provide: SavedSearchesContextService, useValue: { editSavedSearch: () => of({}), getSavedSearches: () => of([]) } },
5859
{ provide: MAT_DIALOG_DATA, useValue: savedSearchToDelete }
5960
]
6061
});
6162
dialogRef.close.calls.reset();
6263
fixture = TestBed.createComponent(SavedSearchEditDialogComponent);
6364
component = fixture.componentInstance;
6465
notificationService = TestBed.inject(NotificationService);
65-
savedSearchesService = TestBed.inject(SavedSearchesService);
66+
savedSearchesService = TestBed.inject(SavedSearchesContextService);
6667

6768
submitButton = fixture.nativeElement.querySelector('#aca-saved-search-edit-dialog-submit-button');
6869
});

projects/aca-content/src/lib/components/search/search-save/dialog/edit/saved-search-edit-dialog.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
*/
2424

2525
import { Component, Inject, ViewEncapsulation } from '@angular/core';
26-
import { AutoFocusDirective, forbidOnlySpaces, SavedSearch, SavedSearchesService } from '@alfresco/adf-content-services';
26+
import { AutoFocusDirective, forbidOnlySpaces, SavedSearch } from '@alfresco/adf-content-services';
2727
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
2828
import { take } from 'rxjs/operators';
2929
import { NotificationService } from '@alfresco/adf-core';
@@ -36,6 +36,7 @@ import { MatButtonModule } from '@angular/material/button';
3636
import { MatFormFieldModule } from '@angular/material/form-field';
3737
import { MatInputModule } from '@angular/material/input';
3838
import { TitleCasePipe } from '@angular/common';
39+
import { SavedSearchesContextService } from '../../../../../services/saved-searches-context.service';
3940

4041
@Component({
4142
imports: [
@@ -62,7 +63,7 @@ export class SavedSearchEditDialogComponent {
6263
constructor(
6364
private readonly dialog: MatDialogRef<SavedSearchEditDialogComponent>,
6465
private readonly notificationService: NotificationService,
65-
private readonly savedSearchesService: SavedSearchesService,
66+
private readonly savedSearchesService: SavedSearchesContextService,
6667
private readonly uniqueSearchNameValidator: UniqueSearchNameValidator,
6768
@Inject(MAT_DIALOG_DATA) private readonly data: SavedSearch
6869
) {

0 commit comments

Comments
 (0)