fixed after merge

This commit is contained in:
lotte
2022-04-05 16:35:24 +02:00
parent 30b7e8eb39
commit 53c67ac878
34 changed files with 82 additions and 82 deletions

View File

@@ -7,7 +7,6 @@ import { dataService } from '../cache/builders/build-decorators';
import { SUBMISSION_ACCESSES_TYPE } from './models/config-type';
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
import { Store } from '@ngrx/store';
import { CoreState } from '../core.reducers';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { HttpClient } from '@angular/common/http';
import { DefaultChangeAnalyzer } from '../data/default-change-analyzer.service';
@@ -16,6 +15,7 @@ import { SubmissionAccessesModel } from './models/config-submission-accesses.mod
import { RemoteData } from '../data/remote-data';
import { Observable } from 'rxjs';
import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
import { CoreState } from '../core-state.model';
/**
* Provides methods to retrieve, from REST server, bitstream access conditions configurations applicable during the submission process.

View File

@@ -9,7 +9,6 @@ import { NotificationsService } from '../../shared/notifications/notifications.s
import { HttpClient } from '@angular/common/http';
import { DefaultChangeAnalyzer } from './default-change-analyzer.service';
import { Injectable } from '@angular/core';
import { FindListOptions } from './request.models';
import { Observable } from 'rxjs';
import { filter, map, switchMap, take } from 'rxjs/operators';
import { RemoteData } from './remote-data';
@@ -19,6 +18,7 @@ import { ItemType } from '../shared/item-relationships/item-type.model';
import { getFirstSucceededRemoteData, getRemoteDataPayload } from '../shared/operators';
import { RelationshipTypeService } from './relationship-type.service';
import { CoreState } from '../core-state.model';
import { FindListOptions } from './find-list-options.model';
/**
* Service handling all ItemType requests

View File

@@ -3,7 +3,7 @@ import { Observable } from 'rxjs';
import { distinctUntilChanged, filter, find, map } from 'rxjs/operators';
import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service';
import { HALEndpointService } from '../shared/hal-endpoint.service';
import { getFirstCompletedRemoteData, sendRequest } from '../shared/operators';
import { getFirstCompletedRemoteData } from '../shared/operators';
import { RemoteData } from './remote-data';
import { PostRequest, PutRequest } from './request.models';
import { RequestService } from './request.service';
@@ -11,13 +11,14 @@ import { ItemRequest } from '../shared/item-request.model';
import { hasValue, isNotEmpty } from '../../shared/empty.util';
import { DataService } from './data.service';
import { Store } from '@ngrx/store';
import { CoreState } from '../core.reducers';
import { ObjectCacheService } from '../cache/object-cache.service';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { DefaultChangeAnalyzer } from './default-change-analyzer.service';
import { RequestCopyEmail } from '../../request-copy/email-request-copy/request-copy-email.model';
import { HttpOptions } from '../dspace-rest/dspace-rest.service';
import { CoreState } from '../core-state.model';
import { sendRequest } from '../shared/request.operators';
/**
* A service responsible for fetching/sending data from/to the REST API on the itemrequests endpoint

View File

@@ -9,12 +9,10 @@ import { HALEndpointService } from '../shared/hal-endpoint.service';
import { RequestService } from './request.service';
import { PageInfo } from '../shared/page-info.model';
import { createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$ } from '../../shared/remote-data.utils';
import { RequestEntry } from './request.reducer';
import { HrefOnlyDataService } from './href-only-data.service';
import { getMockHrefOnlyDataService } from '../../shared/mocks/href-only-data.service.mock';
import { Store } from '@ngrx/store';
import { CoreState } from '../core.reducers';
import { RestResponse } from '../cache/response.models';
import { cold, getTestScheduler, hot } from 'jasmine-marbles';
import { Item } from '../shared/item.model';
@@ -22,6 +20,8 @@ import { VersionDataService } from './version-data.service';
import { Version } from '../shared/version.model';
import { VersionHistory } from '../shared/version-history.model';
import { followLink } from '../../shared/utils/follow-link-config.model';
import { CoreState } from '../core-state.model';
import { RequestEntry } from './request-entry.model';
describe('VersionDataService test', () => {

View File

@@ -9,7 +9,7 @@ import { HALEndpointService } from '../shared/hal-endpoint.service';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { DefaultChangeAnalyzer } from './default-change-analyzer.service';
import { PostRequest, RestRequest } from './request.models';
import { PostRequest } from './request.models';
import { Observable, of } from 'rxjs';
import { PaginatedSearchOptions } from '../../shared/search/models/paginated-search-options.model';
import { RemoteData } from './remote-data';
@@ -25,13 +25,15 @@ import {
getAllSucceededRemoteData,
getFirstCompletedRemoteData,
getFirstSucceededRemoteDataPayload,
getRemoteDataPayload,
sendRequest
getRemoteDataPayload
} from '../shared/operators';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { hasValueOperator } from '../../shared/empty.util';
import { Item } from '../shared/item.model';
import { CoreState } from '../core-state.model';
import { FindListOptions } from './find-list-options.model';
import { sendRequest } from '../shared/request.operators';
import { RestRequest } from './rest-request.model';
/**
* Service responsible for handling requests related to the VersionHistory object

View File

@@ -7,9 +7,9 @@ import { getMockRequestService } from '../../shared/mocks/request.service.mock';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { HttpClient } from '@angular/common/http';
import { Store } from '@ngrx/store';
import { CoreState } from '../core.reducers';
import { DSOChangeAnalyzer } from '../data/dso-change-analyzer.service';
import { Feedback } from './models/feedback.model';
import { CoreState } from '../core-state.model';
describe('FeedbackDataService', () => {
let service: FeedbackDataService;

View File

@@ -3,8 +3,8 @@ import { typedObject } from '../cache/builders/build-decorators';
import { excludeFromEquals } from '../utilities/equals.decorators';
import { ResourceType } from './resource-type';
import { ITEM_REQUEST } from './item-request.resource-type';
import { CacheableObject } from '../cache/object-cache.reducer';
import { HALLink } from './hal-link.model';
import { CacheableObject } from '../cache/cacheable-object.model';
/**
* Model class for an ItemRequest

View File

@@ -9,9 +9,9 @@ import { PaginationServiceStub } from '../../../shared/testing/pagination-servic
import { map } from 'rxjs/operators';
import { RemoteData } from '../../data/remote-data';
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
import { SearchObjects } from '../../../shared/search/search-objects.model';
import { getMockRequestService } from '../../../shared/mocks/request.service.mock';
import { RequestEntry } from '../../data/request-entry.model';
import { SearchObjects } from '../../../shared/search/models/search-objects.model';
describe('SearchConfigurationService', () => {
let service: SearchConfigurationService;

View File

@@ -2,7 +2,7 @@ import { Injectable, OnDestroy } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
import { BehaviorSubject, combineLatest as observableCombineLatest, merge as observableMerge, Observable, Subscription } from 'rxjs';
import { filter, map, startWith } from 'rxjs/operators';
import { filter, map, startWith, take } from 'rxjs/operators';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';
import { SearchOptions } from '../../../shared/search/models/search-options.model';
import { PaginatedSearchOptions } from '../../../shared/search/models/paginated-search-options.model';
@@ -15,7 +15,6 @@ import { getAllSucceededRemoteDataPayload, getFirstSucceededRemoteData } from '.
import { hasNoValue, hasValue, isNotEmpty, isNotEmptyOperator } from '../../../shared/empty.util';
import { createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
import { SearchConfig, SortConfig } from './search-filters/search-config.model';
import { SearchService } from './search.service';
import { PaginationService } from '../../pagination/pagination.service';
import { LinkService } from '../../cache/builders/link.service';
import { HALEndpointService } from '../hal-endpoint.service';
@@ -23,12 +22,12 @@ import { RequestService } from '../../data/request.service';
import { RemoteDataBuildService } from '../../cache/builders/remote-data-build.service';
import { GetRequest } from '../../data/request.models';
import { URLCombiner } from '../../url-combiner/url-combiner';
import { SearchFilterConfig } from '../../../shared/search/search-filter-config.model';
import { GenericConstructor } from '../generic-constructor';
import { ResponseParsingService } from '../../data/parsing.service';
import { FacetConfigResponseParsingService } from '../../data/facet-config-response-parsing.service';
import { FacetConfigResponse } from '../../../shared/search/facet-config-response.model';
import { ViewMode } from '../view-mode.model';
import { SearchFilterConfig } from '../../../shared/search/models/search-filter-config.model';
import { FacetConfigResponse } from '../../../shared/search/models/facet-config-response.model';
/**
* Service that performs all actions that have to do with the current search configuration
@@ -232,11 +231,10 @@ export class SearchConfigurationService implements OnDestroy {
/**
* Creates an observable of SearchConfig every time the configuration stream emits.
* @param configuration The search configuration
* @param service The search service to use
* @param scope The search scope if exists
*/
getConfigurationSearchConfig(configuration: string, service: SearchService, scope?: string): Observable<SearchConfig> {
return service.getSearchConfigurationFor(scope, configuration).pipe(
getConfigurationSearchConfig(configuration: string, scope?: string): Observable<SearchConfig> {
return this.getSearchConfigurationFor(scope, configuration).pipe(
getAllSucceededRemoteDataPayload()
);
}

View File

@@ -19,7 +19,6 @@ import { SearchFilterConfig } from '../../../shared/search/models/search-filter-
import { SearchResponseParsingService } from '../../data/search-response-parsing.service';
import { SearchObjects } from '../../../shared/search/models/search-objects.model';
import { FacetValueResponseParsingService } from '../../data/facet-value-response-parsing.service';
import { FacetConfigResponseParsingService } from '../../data/facet-config-response-parsing.service';
import { PaginatedSearchOptions } from '../../../shared/search/models/paginated-search-options.model';
import { CommunityDataService } from '../../data/community-data.service';
import { ViewMode } from '../view-mode.model';
@@ -30,9 +29,7 @@ import { RouteService } from '../../services/route.service';
import { SearchResult } from '../../../shared/search/models/search-result.model';
import { ListableObject } from '../../../shared/object-collection/shared/listable-object.model';
import { getSearchResultFor } from '../../../shared/search/search-result-element-decorator';
import { FacetConfigResponse } from '../../../shared/search/models/facet-config-response.model';
import { FacetValues } from '../../../shared/search/models/facet-values.model';
import { SearchConfig } from './search-filters/search-config.model';
import { PaginationService } from '../../pagination/pagination.service';
import { SearchConfigurationService } from './search-configuration.service';
import { PaginationComponentOptions } from '../../../shared/pagination/pagination-component-options.model';

View File

@@ -9,16 +9,16 @@ import { HALEndpointService } from '../shared/hal-endpoint.service';
import { RequestService } from '../data/request.service';
import { PageInfo } from '../shared/page-info.model';
import { createSuccessfulRemoteDataObject } from '../../shared/remote-data.utils';
import { RequestEntry } from '../data/request.reducer';
import { HrefOnlyDataService } from '../data/href-only-data.service';
import { getMockHrefOnlyDataService } from '../../shared/mocks/href-only-data.service.mock';
import { Store } from '@ngrx/store';
import { CoreState } from '../core.reducers';
import { RestResponse } from '../cache/response.models';
import { cold, getTestScheduler, hot } from 'jasmine-marbles';
import { Item } from '../shared/item.model';
import { WorkflowItemDataService } from './workflowitem-data.service';
import { WorkflowItem } from './models/workflowitem.model';
import { CoreState } from '../core-state.model';
import { RequestEntry } from '../data/request-entry.model';
describe('WorkflowItemDataService test', () => {
let scheduler: TestScheduler;

View File

@@ -8,7 +8,7 @@ import { DataService } from '../data/data.service';
import { RequestService } from '../data/request.service';
import { WorkflowItem } from './models/workflowitem.model';
import { HALEndpointService } from '../shared/hal-endpoint.service';
import { DeleteByIDRequest, FindListOptions } from '../data/request.models';
import { DeleteByIDRequest } from '../data/request.models';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { ObjectCacheService } from '../cache/object-cache.service';
import { DSOChangeAnalyzer } from '../data/dso-change-analyzer.service';
@@ -22,6 +22,7 @@ import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
import { WorkspaceItem } from './models/workspaceitem.model';
import { RequestParam } from '../cache/models/request-param.model';
import { CoreState } from '../core-state.model';
import { FindListOptions } from '../data/find-list-options.model';
/**
* A service that provides methods to make REST requests with workflow items endpoint.

View File

@@ -9,16 +9,16 @@ import { HALEndpointService } from '../shared/hal-endpoint.service';
import { RequestService } from '../data/request.service';
import { PageInfo } from '../shared/page-info.model';
import { createSuccessfulRemoteDataObject } from '../../shared/remote-data.utils';
import { RequestEntry } from '../data/request.reducer';
import { HrefOnlyDataService } from '../data/href-only-data.service';
import { getMockHrefOnlyDataService } from '../../shared/mocks/href-only-data.service.mock';
import { WorkspaceitemDataService } from './workspaceitem-data.service';
import { Store } from '@ngrx/store';
import { CoreState } from '../core.reducers';
import { RestResponse } from '../cache/response.models';
import { cold, getTestScheduler, hot } from 'jasmine-marbles';
import { Item } from '../shared/item.model';
import { WorkspaceItem } from './models/workspaceitem.model';
import { RequestEntry } from '../data/request-entry.model';
import { CoreState } from '../core-state.model';
describe('WorkspaceitemDataService test', () => {
let scheduler: TestScheduler;

View File

@@ -13,10 +13,10 @@ import { DSOChangeAnalyzer } from '../data/dso-change-analyzer.service';
import { WorkspaceItem } from './models/workspaceitem.model';
import { Observable } from 'rxjs';
import { RemoteData } from '../data/remote-data';
import { FindListOptions } from '../data/request.models';
import { FollowLinkConfig } from '../../shared/utils/follow-link-config.model';
import { RequestParam } from '../cache/models/request-param.model';
import { CoreState } from '../core-state.model';
import { FindListOptions } from '../data/find-list-options.model';
/**
* A service that provides methods to make REST requests with workspaceitems endpoint.

View File

@@ -1,14 +1,7 @@
import {
CorrelationIdAction,
CorrelationIDActionTypes,
SetCorrelationIdAction
} from './correlation-id.actions';
import { AppState } from '../app.reducer';
import { CorrelationIdAction, CorrelationIDActionTypes, SetCorrelationIdAction } from './correlation-id.actions';
const initialState = null;
export const correlationIdSelector = (state: AppState) => state.correlationId;
/**
* Reducer that handles actions to update the correlation ID
* @param {string} state the previous correlation ID (null if unset)

View File

@@ -0,0 +1,3 @@
import { AppState } from '../app.reducer';
export const correlationIdSelector = (state: AppState) => state.correlationId;

View File

@@ -3,10 +3,10 @@ import { UUIDService } from '../core/shared/uuid.service';
import { Store, select } from '@ngrx/store';
import { AppState } from '../app.reducer';
import { isEmpty } from '../shared/empty.util';
import { correlationIdSelector } from './correlation-id.reducer';
import { take } from 'rxjs/operators';
import { SetCorrelationIdAction } from './correlation-id.actions';
import { Injectable } from '@angular/core';
import { correlationIdSelector } from './correlation-id.selector';
/**
* Service to manage the correlation id, an id used to give context to server side logs

View File

@@ -9,9 +9,9 @@ import { Item } from '../../../core/shared/item.model';
import { getMockRemoteDataBuildService } from '../../../shared/mocks/remote-data-build.service.mock';
import { createFailedRemoteDataObject$, createSuccessfulRemoteDataObject$ } from '../../../shared/remote-data.utils';
import { CollectionsComponent } from './collections.component';
import { FindListOptions } from '../../../core/data/request.models';
import { buildPaginatedList, PaginatedList } from '../../../core/data/paginated-list.model';
import { PageInfo } from '../../../core/shared/page-info.model';
import { FindListOptions } from '../../../core/data/find-list-options.model';
const createMockCollection = (id: string) => Object.assign(new Collection(), {
id: id,

View File

@@ -7,13 +7,13 @@ import { PaginatedList } from '../../../core/data/paginated-list.model';
import { Collection } from '../../../core/shared/collection.model';
import { Item } from '../../../core/shared/item.model';
import { hasValue } from '../../../shared/empty.util';
import { FindListOptions } from '../../../core/data/request.models';
import {
getAllCompletedRemoteData,
getAllSucceededRemoteDataPayload,
getFirstSucceededRemoteDataPayload,
getPaginatedListPayload,
} from '../../../core/shared/operators';
import { FindListOptions } from '../../../core/data/find-list-options.model';
/**
* This component renders the parent collections section of the item

View File

@@ -4,12 +4,13 @@ import { RemoteData } from '../../../core/data/remote-data';
import { ActivatedRoute, Router } from '@angular/router';
import { AuthService } from '../../../core/auth/auth.service';
import { map, switchMap } from 'rxjs/operators';
import { getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload, redirectOn4xx } from '../../../core/shared/operators';
import { getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload } from '../../../core/shared/operators';
import { VersionDataService } from '../../../core/data/version-data.service';
import { Version } from '../../../core/shared/version.model';
import { Item } from '../../../core/shared/item.model';
import { getItemPageRoute } from '../../item-page-routing-paths';
import { getPageNotFoundRoute } from '../../../app-routing-paths';
import { redirectOn4xx } from '../../../core/shared/authorized.operators';
@Component({
selector: 'ds-version-page',
@@ -42,7 +43,7 @@ export class VersionPageComponent implements OnInit {
switchMap((version) => version.item),
redirectOn4xx(this.router, this.authService),
getFirstCompletedRemoteData(),
).subscribe((itemRD) => {
).subscribe((itemRD: RemoteData<Item>) => {
if (itemRD.hasNoContent) {
this.router.navigateByUrl(getPageNotFoundRoute(), { skipLocationChange: true });
} else {

View File

@@ -6,10 +6,10 @@ import { map, mergeMap, take } from 'rxjs/operators';
import { EntityTypeService } from '../../../core/data/entity-type.service';
import { ItemType } from '../../../core/shared/item-relationships/item-type.model';
import { FindListOptions } from '../../../core/data/request.models';
import { hasValue } from '../../../shared/empty.util';
import { RemoteData } from '../../../core/data/remote-data';
import { PaginatedList } from '../../../core/data/paginated-list.model';
import { FindListOptions } from '../../../core/data/find-list-options.model';
/**
* This component represents the 'Import metadata from external source' dropdown menu

View File

@@ -6,11 +6,11 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { EntityTypeService } from '../../../core/data/entity-type.service';
import { ItemType } from '../../../core/shared/item-relationships/item-type.model';
import { FindListOptions } from '../../../core/data/request.models';
import { hasValue } from '../../../shared/empty.util';
import { CreateItemParentSelectorComponent } from '../../../shared/dso-selector/modal-wrappers/create-item-parent-selector/create-item-parent-selector.component';
import { RemoteData } from '../../../core/data/remote-data';
import { PaginatedList } from '../../../core/data/paginated-list.model';
import { FindListOptions } from '../../../core/data/find-list-options.model';
/**
* This component represents the new submission dropdown

View File

@@ -4,8 +4,8 @@ import { Observable } from 'rxjs/internal/Observable';
import { EpersonRegistrationService } from '../core/data/eperson-registration.service';
import { AuthService } from '../core/auth/auth.service';
import { map } from 'rxjs/operators';
import { getFirstCompletedRemoteData, redirectOn4xx } from '../core/shared/operators';
import { Location } from '@angular/common';
import { getFirstCompletedRemoteData } from '../core/shared/operators';
import { redirectOn4xx } from '../core/shared/authorized.operators';
@Injectable({
providedIn: 'root'

View File

@@ -4,8 +4,7 @@ import { map, switchMap } from 'rxjs/operators';
import { ItemRequest } from '../../core/shared/item-request.model';
import { Observable } from 'rxjs';
import {
getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload,
redirectOn4xx
getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload
} from '../../core/shared/operators';
import { RemoteData } from '../../core/data/remote-data';
import { AuthService } from '../../core/auth/auth.service';
@@ -19,6 +18,7 @@ import { isNotEmpty } from '../../shared/empty.util';
import { ItemRequestDataService } from '../../core/data/item-request-data.service';
import { RequestCopyEmail } from '../email-request-copy/request-copy-email.model';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { redirectOn4xx } from '../../core/shared/authorized.operators';
@Component({
selector: 'ds-deny-request-copy',

View File

@@ -5,8 +5,7 @@ import { ItemRequest } from '../../core/shared/item-request.model';
import { Observable } from 'rxjs';
import {
getFirstCompletedRemoteData,
getFirstSucceededRemoteDataPayload,
redirectOn4xx
getFirstSucceededRemoteDataPayload
} from '../../core/shared/operators';
import { RemoteData } from '../../core/data/remote-data';
import { AuthService } from '../../core/auth/auth.service';
@@ -15,6 +14,7 @@ import { Item } from '../../core/shared/item.model';
import { ItemDataService } from '../../core/data/item-data.service';
import { DSONameService } from '../../core/breadcrumbs/dso-name.service';
import { getItemPageRoute } from '../../item-page/item-page-routing-paths';
import { redirectOn4xx } from '../../core/shared/authorized.operators';
@Component({
selector: 'ds-grant-deny-request-copy',

View File

@@ -4,8 +4,7 @@ import { map, switchMap } from 'rxjs/operators';
import { ItemRequest } from '../../core/shared/item-request.model';
import { Observable } from 'rxjs';
import {
getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload,
redirectOn4xx
getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload
} from '../../core/shared/operators';
import { RemoteData } from '../../core/data/remote-data';
import { AuthService } from '../../core/auth/auth.service';
@@ -19,6 +18,7 @@ import { isNotEmpty } from '../../shared/empty.util';
import { ItemRequestDataService } from '../../core/data/item-request-data.service';
import { RequestCopyEmail } from '../email-request-copy/request-copy-email.model';
import { NotificationsService } from '../../shared/notifications/notifications.service';
import { redirectOn4xx } from '../../core/shared/authorized.operators';
@Component({
selector: 'ds-grant-request-copy',

View File

@@ -22,7 +22,7 @@ import { CollectionDataService } from '../../core/data/collection-data.service';
import { Collection } from '../../core/shared/collection.model';
import { followLink } from '../utils/follow-link-config.model';
import {
getFirstCompletedRemoteData,
getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload,
getFirstSucceededRemoteWithNotEmptyData
} from '../../core/shared/operators';
import { FindListOptions } from '../../core/data/find-list-options.model';

View File

@@ -15,8 +15,8 @@ import { hasValue } from '../../../empty.util';
import { NotificationsService } from '../../../notifications/notifications.service';
import { TranslateService } from '@ngx-translate/core';
import { Collection } from '../../../../core/shared/collection.model';
import { FindListOptions } from '../../../../core/data/request.models';
import { DSONameService } from '../../../../core/breadcrumbs/dso-name.service';
import { FindListOptions } from '../../../../core/data/find-list-options.model';
@Component({
selector: 'ds-authorized-collection-selector',

View File

@@ -13,11 +13,11 @@ import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { hasValue } from '../empty.util';
import { reduce, startWith, switchMap } from 'rxjs/operators';
import { RemoteData } from '../../core/data/remote-data';
import { FindListOptions } from '../../core/data/request.models';
import { PaginatedList } from '../../core/data/paginated-list.model';
import { EntityTypeService } from '../../core/data/entity-type.service';
import { ItemType } from '../../core/shared/item-relationships/item-type.model';
import { getFirstSucceededRemoteWithNotEmptyData } from '../../core/shared/operators';
import { FindListOptions } from '../../core/data/find-list-options.model';
@Component({
selector: 'ds-entity-dropdown',

View File

@@ -7,7 +7,6 @@ import { renderAuthMethodFor } from '../log-in.methods-decorator';
import { AuthMethodType } from '../../../../core/auth/models/auth.method-type';
import { AuthMethod } from '../../../../core/auth/models/auth.method';
import { CoreState } from '../../../../core/core.reducers';
import { isAuthenticated, isAuthenticationLoading } from '../../../../core/auth/selectors';
import { NativeWindowRef, NativeWindowService } from '../../../../core/services/window.service';
import { isNotNull, isEmpty } from '../../../empty.util';
@@ -15,6 +14,7 @@ import { AuthService } from '../../../../core/auth/auth.service';
import { HardRedirectService } from '../../../../core/services/hard-redirect.service';
import { take } from 'rxjs/operators';
import { URLCombiner } from '../../../../core/url-combiner/url-combiner';
import { CoreState } from '../../../../core/core-state.model';
@Component({
selector: 'ds-log-in-oidc',

View File

@@ -1,11 +1,10 @@
import { CacheableObject } from '../../../core/cache/object-cache.reducer';
import { typedObject } from '../../../core/cache/builders/build-decorators';
import { FACET_CONFIG_RESPONSE } from './types/facet-config-response.resouce-type';
import { excludeFromEquals } from '../../../core/utilities/equals.decorators';
import { SearchFilterConfig } from './search-filter-config.model';
import { deserialize } from 'cerialize';
import { HALLink } from '../../../core/shared/hal-link.model';
import { CacheableObject } from '../../core/cache/cacheable-object.model';
import { CacheableObject } from '../../../core/cache/cacheable-object.model';
/**
* The response from the discover/facets endpoint

View File

@@ -2,9 +2,9 @@ import { FilterType } from './filter-type.model';
import { autoserialize, autoserializeAs, deserialize } from 'cerialize';
import { HALLink } from '../../../core/shared/hal-link.model';
import { typedObject } from '../../../core/cache/builders/build-decorators';
import { CacheableObject } from '../../../core/cache/object-cache.reducer';
import { excludeFromEquals } from '../../../core/utilities/equals.decorators';
import { SEARCH_FILTER_CONFIG } from './types/search-filter-config.resource-type';
import { CacheableObject } from '../../../core/cache/cacheable-object.model';
/**
* The configuration for a search filter

View File

@@ -147,18 +147,28 @@ const routeServiceStub = {
}
};
const searchConfigurationServiceStub = jasmine.createSpyObj('SearchConfigurationService', {
getConfigurationSortOptions: jasmine.createSpy('getConfigurationSortOptions'),
getConfigurationSearchConfig: jasmine.createSpy('getConfigurationSearchConfig'),
getCurrentConfiguration: jasmine.createSpy('getCurrentConfiguration'),
getCurrentScope: jasmine.createSpy('getCurrentScope'),
getCurrentSort: jasmine.createSpy('getCurrentSort'),
updateFixedFilter: jasmine.createSpy('updateFixedFilter'),
setPaginationId: jasmine.createSpy('setPaginationId')
}, ['paginatedSearchOptions']);
let searchConfigurationServiceStub;
export function configureSearchComponentTestingModule(compType, additionalDeclarations: any[] = []) {
searchConfigurationServiceStub = jasmine.createSpyObj('SearchConfigurationService', {
getConfigurationSortOptions: sortOptionsList,
getConfigurationSearchConfig: observableOf(searchConfig),
getCurrentConfiguration: observableOf('default'),
getCurrentScope: observableOf('test-id'),
getCurrentSort: observableOf(sortOptionsList[0]),
updateFixedFilter: jasmine.createSpy('updateFixedFilter'),
setPaginationId: jasmine.createSpy('setPaginationId')
});
searchConfigurationServiceStub.setPaginationId.and.callFake((pageId) => {
paginatedSearchOptions$.next(Object.assign(paginatedSearchOptions$.value, {
pagination: Object.assign(new PaginationComponentOptions(), {
id: pageId
})
}));
});
searchConfigurationServiceStub.paginatedSearchOptions = new BehaviorSubject(new PaginatedSearchOptions({pagination: {id: 'default'} as any}));
TestBed.configureTestingModule({
imports: [TranslateModule.forRoot(), RouterTestingModule.withRoutes([]), NoopAnimationsModule, NgbCollapseModule],
declarations: [compType, ...additionalDeclarations],
@@ -196,7 +206,14 @@ export function configureSearchComponentTestingModule(compType, additionalDeclar
],
schemas: [NO_ERRORS_SCHEMA]
}).overrideComponent(compType, {
set: { changeDetection: ChangeDetectionStrategy.Default }
set: {
changeDetection: ChangeDetectionStrategy.Default,
providers: [{
provide: SearchConfigurationService,
useValue: searchConfigurationServiceStub
}]
},
}).compileComponents();
}
@@ -211,18 +228,6 @@ describe('SearchComponent', () => {
comp.inPlaceSearch = false;
comp.paginationId = paginationId;
searchConfigurationServiceStub.getConfigurationSearchConfig.and.returnValue(observableOf(searchConfig));
searchConfigurationServiceStub.getConfigurationSortOptions.and.returnValue(sortOptionsList);
searchConfigurationServiceStub.getCurrentConfiguration.and.returnValue(observableOf('default'));
searchConfigurationServiceStub.getCurrentScope.and.returnValue(observableOf('test-id'));
searchConfigurationServiceStub.getCurrentSort.and.returnValue(observableOf(sortOptionsList[0]));
searchConfigurationServiceStub.setPaginationId.and.callFake((pageId) => {
paginatedSearchOptions$.next(Object.assign(paginatedSearchOptions$.value, {
pagination: Object.assign(new PaginationComponentOptions(), {
id: pageId
})
}));
});
spyOn((comp as any), 'getSearchOptions').and.returnValue(paginatedSearchOptions$.asObservable());
searchServiceObject = TestBed.inject(SearchService);

View File

@@ -254,7 +254,7 @@ export class SearchComponent implements OnInit {
.getCurrentConfiguration(this.configuration).pipe(distinctUntilChanged());
const searchSortOptions$: Observable<SortOptions[]> = configuration$.pipe(
switchMap((configuration: string) => this.searchConfigService
.getConfigurationSearchConfig(configuration, this.service)),
.getConfigurationSearchConfig(configuration)),
map((searchConfig: SearchConfig) => this.searchConfigService.getConfigurationSortOptions(searchConfig)),
distinctUntilChanged()
);