mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-08 10:34:15 +00:00
111639: Fixed search settings not using the scope
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
import { SearchService } from '../../../core/shared/search/search.service';
|
|
||||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { SearchSettingsComponent } from './search-settings.component';
|
import { SearchSettingsComponent } from './search-settings.component';
|
||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
@@ -6,15 +5,11 @@ import { PaginationComponentOptions } from '../../pagination/pagination-componen
|
|||||||
import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
|
import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
|
||||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { EnumKeysPipe } from '../../utils/enum-keys-pipe';
|
import { EnumKeysPipe } from '../../utils/enum-keys-pipe';
|
||||||
import { By } from '@angular/platform-browser';
|
import { By } from '@angular/platform-browser';
|
||||||
import { SearchFilterService } from '../../../core/shared/search/search-filter.service';
|
|
||||||
import { VarDirective } from '../../utils/var.directive';
|
import { VarDirective } from '../../utils/var.directive';
|
||||||
import { SEARCH_CONFIG_SERVICE } from '../../../my-dspace-page/my-dspace-page.component';
|
import { SEARCH_CONFIG_SERVICE } from '../../../my-dspace-page/my-dspace-page.component';
|
||||||
import { SidebarService } from '../../sidebar/sidebar.service';
|
|
||||||
import { SidebarServiceStub } from '../../testing/sidebar-service.stub';
|
|
||||||
import { PaginationService } from '../../../core/pagination/pagination.service';
|
import { PaginationService } from '../../../core/pagination/pagination.service';
|
||||||
import { PaginationServiceStub } from '../../testing/pagination-service.stub';
|
import { PaginationServiceStub } from '../../testing/pagination-service.stub';
|
||||||
|
|
||||||
@@ -22,32 +17,23 @@ describe('SearchSettingsComponent', () => {
|
|||||||
|
|
||||||
let comp: SearchSettingsComponent;
|
let comp: SearchSettingsComponent;
|
||||||
let fixture: ComponentFixture<SearchSettingsComponent>;
|
let fixture: ComponentFixture<SearchSettingsComponent>;
|
||||||
let searchServiceObject: SearchService;
|
|
||||||
|
|
||||||
let pagination: PaginationComponentOptions;
|
let pagination: PaginationComponentOptions;
|
||||||
let sort: SortOptions;
|
let sort: SortOptions;
|
||||||
let mockResults;
|
|
||||||
let searchServiceStub;
|
|
||||||
|
|
||||||
let queryParam;
|
let queryParam;
|
||||||
let scopeParam;
|
let scopeParam;
|
||||||
let paginatedSearchOptions;
|
let paginatedSearchOptions;
|
||||||
|
|
||||||
let paginationService;
|
let paginationService: PaginationServiceStub;
|
||||||
|
|
||||||
let activatedRouteStub;
|
|
||||||
|
|
||||||
beforeEach(waitForAsync(() => {
|
beforeEach(waitForAsync(async () => {
|
||||||
pagination = new PaginationComponentOptions();
|
pagination = new PaginationComponentOptions();
|
||||||
pagination.id = 'search-results-pagination';
|
pagination.id = 'search-results-pagination';
|
||||||
pagination.currentPage = 1;
|
pagination.currentPage = 1;
|
||||||
pagination.pageSize = 10;
|
pagination.pageSize = 10;
|
||||||
sort = new SortOptions('score', SortDirection.DESC);
|
sort = new SortOptions('score', SortDirection.DESC);
|
||||||
mockResults = ['test', 'data'];
|
|
||||||
searchServiceStub = {
|
|
||||||
searchOptions: { pagination: pagination, sort: sort },
|
|
||||||
search: () => mockResults,
|
|
||||||
};
|
|
||||||
|
|
||||||
queryParam = 'test query';
|
queryParam = 'test query';
|
||||||
scopeParam = '7669c72a-3f2a-451f-a3b9-9210e7a4c02f';
|
scopeParam = '7669c72a-3f2a-451f-a3b9-9210e7a4c02f';
|
||||||
@@ -58,30 +44,12 @@ describe('SearchSettingsComponent', () => {
|
|||||||
sort,
|
sort,
|
||||||
};
|
};
|
||||||
|
|
||||||
activatedRouteStub = {
|
|
||||||
queryParams: observableOf({
|
|
||||||
query: queryParam,
|
|
||||||
scope: scopeParam,
|
|
||||||
}),
|
|
||||||
};
|
|
||||||
|
|
||||||
paginationService = new PaginationServiceStub(pagination, sort);
|
paginationService = new PaginationServiceStub(pagination, sort);
|
||||||
|
|
||||||
TestBed.configureTestingModule({
|
await TestBed.configureTestingModule({
|
||||||
imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([])],
|
imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([])],
|
||||||
declarations: [SearchSettingsComponent, EnumKeysPipe, VarDirective],
|
declarations: [SearchSettingsComponent, EnumKeysPipe, VarDirective],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: SearchService, useValue: searchServiceStub },
|
|
||||||
|
|
||||||
{ provide: ActivatedRoute, useValue: activatedRouteStub },
|
|
||||||
{
|
|
||||||
provide: SidebarService,
|
|
||||||
useValue: SidebarServiceStub,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
provide: SearchFilterService,
|
|
||||||
useValue: {},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
provide: PaginationService,
|
provide: PaginationService,
|
||||||
useValue: paginationService,
|
useValue: paginationService,
|
||||||
@@ -111,10 +79,7 @@ describe('SearchSettingsComponent', () => {
|
|||||||
|
|
||||||
// SearchPageComponent test instance
|
// SearchPageComponent test instance
|
||||||
fixture.detectChanges();
|
fixture.detectChanges();
|
||||||
searchServiceObject = (comp as any).service;
|
|
||||||
spyOn(comp, 'reloadOrder');
|
spyOn(comp, 'reloadOrder');
|
||||||
spyOn(searchServiceObject, 'search').and.callThrough();
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('it should show the order settings with the respective selectable options', () => {
|
it('it should show the order settings with the respective selectable options', () => {
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
import { Component, Inject, Input } from '@angular/core';
|
import { Component, Inject, Input } from '@angular/core';
|
||||||
import { SearchService } from '../../../core/shared/search/search.service';
|
|
||||||
import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
|
import { SortDirection, SortOptions } from '../../../core/cache/models/sort-options.model';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
|
||||||
import { SearchConfigurationService } from '../../../core/shared/search/search-configuration.service';
|
import { SearchConfigurationService } from '../../../core/shared/search/search-configuration.service';
|
||||||
import { SEARCH_CONFIG_SERVICE } from '../../../my-dspace-page/my-dspace-page.component';
|
import { SEARCH_CONFIG_SERVICE } from '../../../my-dspace-page/my-dspace-page.component';
|
||||||
import { PaginationService } from '../../../core/pagination/pagination.service';
|
import { PaginationService } from '../../../core/pagination/pagination.service';
|
||||||
@@ -26,11 +24,10 @@ export class SearchSettingsComponent {
|
|||||||
*/
|
*/
|
||||||
@Input() sortOptionsList: SortOptions[];
|
@Input() sortOptionsList: SortOptions[];
|
||||||
|
|
||||||
constructor(private service: SearchService,
|
constructor(
|
||||||
private route: ActivatedRoute,
|
protected paginationService: PaginationService,
|
||||||
private router: Router,
|
@Inject(SEARCH_CONFIG_SERVICE) public searchConfigurationService: SearchConfigurationService,
|
||||||
private paginationService: PaginationService,
|
) {
|
||||||
@Inject(SEARCH_CONFIG_SERVICE) public searchConfigurationService: SearchConfigurationService) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -315,9 +315,8 @@ export class SearchComponent implements OnDestroy, OnInit {
|
|||||||
// Determinate PaginatedSearchOptions and listen to any update on it
|
// Determinate PaginatedSearchOptions and listen to any update on it
|
||||||
const configuration$: Observable<string> = this.searchConfigService
|
const configuration$: Observable<string> = this.searchConfigService
|
||||||
.getCurrentConfiguration(this.configuration).pipe(distinctUntilChanged());
|
.getCurrentConfiguration(this.configuration).pipe(distinctUntilChanged());
|
||||||
const searchSortOptions$: Observable<SortOptions[]> = configuration$.pipe(
|
const searchSortOptions$: Observable<SortOptions[]> = combineLatest([configuration$, this.currentScope$]).pipe(
|
||||||
switchMap((configuration: string) => this.searchConfigService
|
switchMap(([configuration, scope]: [string, string]) => this.searchConfigService.getConfigurationSearchConfig(configuration, scope)),
|
||||||
.getConfigurationSearchConfig(configuration)),
|
|
||||||
map((searchConfig: SearchConfig) => this.searchConfigService.getConfigurationSortOptions(searchConfig)),
|
map((searchConfig: SearchConfig) => this.searchConfigService.getConfigurationSortOptions(searchConfig)),
|
||||||
distinctUntilChanged()
|
distinctUntilChanged()
|
||||||
);
|
);
|
||||||
|
@@ -3888,6 +3888,18 @@
|
|||||||
|
|
||||||
"sorting.lastModified.DESC": "Last modified Descending",
|
"sorting.lastModified.DESC": "Last modified Descending",
|
||||||
|
|
||||||
|
"sorting.person.familyName.ASC": "Surname Ascending",
|
||||||
|
|
||||||
|
"sorting.person.familyName.DESC": "Surname Descending",
|
||||||
|
|
||||||
|
"sorting.person.givenName.ASC": "Name Ascending",
|
||||||
|
|
||||||
|
"sorting.person.givenName.DESC": "Name Descending",
|
||||||
|
|
||||||
|
"sorting.person.birthDate.ASC": "Birth Date Ascending",
|
||||||
|
|
||||||
|
"sorting.person.birthDate.DESC": "Birth Date Descending",
|
||||||
|
|
||||||
"statistics.title": "Statistics",
|
"statistics.title": "Statistics",
|
||||||
|
|
||||||
"statistics.header": "Statistics for {{ scope }}",
|
"statistics.header": "Statistics for {{ scope }}",
|
||||||
|
Reference in New Issue
Block a user