mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-12 12:33:07 +00:00
fixed after merge
This commit is contained in:
@@ -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.
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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', () => {
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
|
@@ -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()
|
||||
);
|
||||
}
|
||||
|
@@ -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';
|
||||
|
@@ -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;
|
||||
|
@@ -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.
|
||||
|
@@ -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;
|
||||
|
@@ -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.
|
||||
|
@@ -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)
|
||||
|
@@ -0,0 +1,3 @@
|
||||
import { AppState } from '../app.reducer';
|
||||
|
||||
export const correlationIdSelector = (state: AppState) => state.correlationId;
|
||||
|
@@ -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
|
||||
|
@@ -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,
|
||||
|
@@ -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
|
||||
|
@@ -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 {
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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'
|
||||
|
@@ -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',
|
||||
|
@@ -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',
|
||||
|
@@ -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',
|
||||
|
@@ -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';
|
||||
|
@@ -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',
|
||||
|
@@ -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',
|
||||
|
@@ -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',
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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()
|
||||
);
|
||||
|
Reference in New Issue
Block a user