mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
Added proposed change to force clearing the object cache in workspace component onInit.
This commit is contained in:
@@ -30,6 +30,8 @@ import { RoleService } from '../core/roles/role.service';
|
|||||||
import { MockRoleService } from '../shared/mocks/mock-role-service';
|
import { MockRoleService } from '../shared/mocks/mock-role-service';
|
||||||
import { SearchFixedFilterService } from '../+search-page/search-filters/search-filter/search-fixed-filter.service';
|
import { SearchFixedFilterService } from '../+search-page/search-filters/search-filter/search-fixed-filter.service';
|
||||||
import { createSuccessfulRemoteDataObject$ } from '../shared/testing/utils';
|
import { createSuccessfulRemoteDataObject$ } from '../shared/testing/utils';
|
||||||
|
import { RequestService } from '../core/data/request.service';
|
||||||
|
import { getMockRequestService } from '../shared/mocks/mock-request.service';
|
||||||
|
|
||||||
describe('MyDSpacePageComponent', () => {
|
describe('MyDSpacePageComponent', () => {
|
||||||
let comp: MyDSpacePageComponent;
|
let comp: MyDSpacePageComponent;
|
||||||
@@ -50,6 +52,7 @@ describe('MyDSpacePageComponent', () => {
|
|||||||
const mockResults = createSuccessfulRemoteDataObject$(['test', 'data']);
|
const mockResults = createSuccessfulRemoteDataObject$(['test', 'data']);
|
||||||
const searchServiceStub = jasmine.createSpyObj('SearchService', {
|
const searchServiceStub = jasmine.createSpyObj('SearchService', {
|
||||||
search: mockResults,
|
search: mockResults,
|
||||||
|
getEndpoint: observableOf('discover/search/objects'),
|
||||||
getSearchLink: '/mydspace',
|
getSearchLink: '/mydspace',
|
||||||
getScopes: observableOf(['test-scope']),
|
getScopes: observableOf(['test-scope']),
|
||||||
setServiceOptions: {}
|
setServiceOptions: {}
|
||||||
@@ -76,6 +79,7 @@ describe('MyDSpacePageComponent', () => {
|
|||||||
scope: scopeParam
|
scope: scopeParam
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
const sidebarService = {
|
const sidebarService = {
|
||||||
isCollapsed: observableOf(true),
|
isCollapsed: observableOf(true),
|
||||||
collapse: () => this.isCollapsed = observableOf(true),
|
collapse: () => this.isCollapsed = observableOf(true),
|
||||||
@@ -125,6 +129,10 @@ describe('MyDSpacePageComponent', () => {
|
|||||||
{
|
{
|
||||||
provide: SearchFixedFilterService,
|
provide: SearchFixedFilterService,
|
||||||
useValue: mockFixedFilterService
|
useValue: mockFixedFilterService
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: RequestService,
|
||||||
|
useValue: getMockRequestService()
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
schemas: [NO_ERRORS_SCHEMA]
|
||||||
|
@@ -28,6 +28,7 @@ import { SearchConfigurationService } from '../+search-page/search-service/searc
|
|||||||
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
||||||
import { ViewMode } from '../core/shared/view-mode.model';
|
import { ViewMode } from '../core/shared/view-mode.model';
|
||||||
import { MyDSpaceRequest } from '../core/data/request.models';
|
import { MyDSpaceRequest } from '../core/data/request.models';
|
||||||
|
import { RequestService } from '../core/data/request.service';
|
||||||
|
|
||||||
export const MYDSPACE_ROUTE = '/mydspace';
|
export const MYDSPACE_ROUTE = '/mydspace';
|
||||||
export const SEARCH_CONFIG_SERVICE: InjectionToken<SearchConfigurationService> = new InjectionToken<SearchConfigurationService>('searchConfigurationService');
|
export const SEARCH_CONFIG_SERVICE: InjectionToken<SearchConfigurationService> = new InjectionToken<SearchConfigurationService>('searchConfigurationService');
|
||||||
@@ -96,6 +97,7 @@ export class MyDSpacePageComponent implements OnInit {
|
|||||||
viewModeList = [ViewMode.List, ViewMode.Detail];
|
viewModeList = [ViewMode.List, ViewMode.Detail];
|
||||||
|
|
||||||
constructor(private service: SearchService,
|
constructor(private service: SearchService,
|
||||||
|
private requestService: RequestService,
|
||||||
private sidebarService: SearchSidebarService,
|
private sidebarService: SearchSidebarService,
|
||||||
private windowService: HostWindowService,
|
private windowService: HostWindowService,
|
||||||
@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: MyDSpaceConfigurationService) {
|
@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: MyDSpaceConfigurationService) {
|
||||||
@@ -115,7 +117,8 @@ export class MyDSpacePageComponent implements OnInit {
|
|||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.configurationList$ = this.searchConfigService.getAvailableConfigurationOptions();
|
this.configurationList$ = this.searchConfigService.getAvailableConfigurationOptions();
|
||||||
this.searchOptions$ = this.searchConfigService.paginatedSearchOptions;
|
this.searchOptions$ = this.searchConfigService.paginatedSearchOptions;
|
||||||
|
// This assures an empty search cache each for each onInit()
|
||||||
|
this.service.getEndpoint().subscribe((url) => this.requestService.removeByHrefSubstring(url));
|
||||||
this.sub = this.searchOptions$.pipe(
|
this.sub = this.searchOptions$.pipe(
|
||||||
tap(() => this.resultsRD$.next(null)),
|
tap(() => this.resultsRD$.next(null)),
|
||||||
switchMap((options: PaginatedSearchOptions) => this.service.search(options).pipe(getSucceededRemoteData())))
|
switchMap((options: PaginatedSearchOptions) => this.service.search(options).pipe(getSucceededRemoteData())))
|
||||||
|
@@ -97,14 +97,8 @@ export class SearchService implements OnDestroy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
getEndpoint(searchOptions?: PaginatedSearchOptions): Observable<string> {
|
||||||
* Method to retrieve a paginated list of search results from the server
|
return this.halService.getEndpoint(this.searchLinkPath).pipe(
|
||||||
* @param {PaginatedSearchOptions} searchOptions The configuration necessary to perform this search
|
|
||||||
* @param responseMsToLive The amount of milliseconds for the response to live in cache
|
|
||||||
* @returns {Observable<RemoteData<PaginatedList<SearchResult<DSpaceObject>>>>} Emits a paginated list with all search results found
|
|
||||||
*/
|
|
||||||
search(searchOptions?: PaginatedSearchOptions, responseMsToLive?: number): Observable<RemoteData<PaginatedList<SearchResult<DSpaceObject>>>> {
|
|
||||||
const hrefObs = this.halService.getEndpoint(this.searchLinkPath).pipe(
|
|
||||||
map((url: string) => {
|
map((url: string) => {
|
||||||
if (hasValue(searchOptions)) {
|
if (hasValue(searchOptions)) {
|
||||||
return (searchOptions as PaginatedSearchOptions).toRestUrl(url);
|
return (searchOptions as PaginatedSearchOptions).toRestUrl(url);
|
||||||
@@ -113,6 +107,17 @@ export class SearchService implements OnDestroy {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to retrieve a paginated list of search results from the server
|
||||||
|
* @param {PaginatedSearchOptions} searchOptions The configuration necessary to perform this search
|
||||||
|
* @param responseMsToLive The amount of milliseconds for the response to live in cache
|
||||||
|
* @returns {Observable<RemoteData<PaginatedList<SearchResult<DSpaceObject>>>>} Emits a paginated list with all search results found
|
||||||
|
*/
|
||||||
|
search(searchOptions?: PaginatedSearchOptions, responseMsToLive?: number): Observable<RemoteData<PaginatedList<SearchResult<DSpaceObject>>>> {
|
||||||
|
|
||||||
|
const hrefObs = this.getEndpoint(searchOptions);
|
||||||
|
|
||||||
const requestObs = hrefObs.pipe(
|
const requestObs = hrefObs.pipe(
|
||||||
map((url: string) => {
|
map((url: string) => {
|
||||||
|
@@ -21,7 +21,6 @@ import { ProcessTaskResponse } from './models/process-task-response';
|
|||||||
*/
|
*/
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ClaimedTaskDataService extends TasksService<ClaimedTask> {
|
export class ClaimedTaskDataService extends TasksService<ClaimedTask> {
|
||||||
protected responseMsToLive = 10 * 1000;
|
|
||||||
|
|
||||||
protected responseMsToLive = 10 * 1000;
|
protected responseMsToLive = 10 * 1000;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user