mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
Merge remote-tracking branch 'github/DURACOM-191' into DURACOM-191
This commit is contained in:
@@ -40,7 +40,8 @@
|
|||||||
"cypress:run": "cypress run",
|
"cypress:run": "cypress run",
|
||||||
"env:yaml": "ts-node --project ./tsconfig.ts-node.json scripts/env-to-yaml.ts",
|
"env:yaml": "ts-node --project ./tsconfig.ts-node.json scripts/env-to-yaml.ts",
|
||||||
"base-href": "ts-node --project ./tsconfig.ts-node.json scripts/base-href.ts",
|
"base-href": "ts-node --project ./tsconfig.ts-node.json scripts/base-href.ts",
|
||||||
"check-circ-deps": "npx madge --exclude '(bitstream|bundle|collection|config-submission-form|eperson|item|version)\\.model\\.ts$' --circular --extensions ts ./"
|
"check-circ-deps": "npx madge --exclude '(bitstream|bundle|collection|config-submission-form|eperson|item|version)\\.model\\.ts$' --circular --extensions ts ./",
|
||||||
|
"check-circ-deps-fix": "npx madge --exclude '(bitstream|bundle|collection|config-submission-form|eperson|item|version)\\.model\\.ts$|data\\-services\\-map\\.ts' --circular --extensions ts ./"
|
||||||
},
|
},
|
||||||
"browser": {
|
"browser": {
|
||||||
"fs": false,
|
"fs": false,
|
||||||
|
@@ -2,11 +2,11 @@ import { first } from 'rxjs/operators';
|
|||||||
import { BrowseByGuard } from './browse-by-guard';
|
import { BrowseByGuard } from './browse-by-guard';
|
||||||
import { of as observableOf } from 'rxjs';
|
import { of as observableOf } from 'rxjs';
|
||||||
import { createFailedRemoteDataObject$, createSuccessfulRemoteDataObject$ } from '../shared/remote-data.utils';
|
import { createFailedRemoteDataObject$, createSuccessfulRemoteDataObject$ } from '../shared/remote-data.utils';
|
||||||
import { BrowseByDataType } from './browse-by-switcher/browse-by-decorator';
|
|
||||||
import { ValueListBrowseDefinition } from '../core/shared/value-list-browse-definition.model';
|
import { ValueListBrowseDefinition } from '../core/shared/value-list-browse-definition.model';
|
||||||
import { DSONameServiceMock } from '../shared/mocks/dso-name.service.mock';
|
import { DSONameServiceMock } from '../shared/mocks/dso-name.service.mock';
|
||||||
import { DSONameService } from '../core/breadcrumbs/dso-name.service';
|
import { DSONameService } from '../core/breadcrumbs/dso-name.service';
|
||||||
import { RouterStub } from '../shared/testing/router.stub';
|
import { RouterStub } from '../shared/testing/router.stub';
|
||||||
|
import { BrowseByDataType } from './browse-by-switcher/browse-by-data-type';
|
||||||
|
|
||||||
describe('BrowseByGuard', () => {
|
describe('BrowseByGuard', () => {
|
||||||
describe('canActivate', () => {
|
describe('canActivate', () => {
|
||||||
|
@@ -0,0 +1,6 @@
|
|||||||
|
export enum BrowseByDataType {
|
||||||
|
Title = 'title',
|
||||||
|
Metadata = 'text',
|
||||||
|
Date = 'date',
|
||||||
|
Hierarchy = 'hierarchy'
|
||||||
|
}
|
@@ -1,4 +1,5 @@
|
|||||||
import { BrowseByDataType, rendersBrowseBy } from './browse-by-decorator';
|
import { rendersBrowseBy } from './browse-by-decorator';
|
||||||
|
import { BrowseByDataType } from './browse-by-data-type';
|
||||||
|
|
||||||
describe('BrowseByDecorator', () => {
|
describe('BrowseByDecorator', () => {
|
||||||
const titleDecorator = rendersBrowseBy(BrowseByDataType.Title);
|
const titleDecorator = rendersBrowseBy(BrowseByDataType.Title);
|
||||||
|
@@ -13,13 +13,7 @@ import {
|
|||||||
ThemedBrowseByTaxonomyPageComponent
|
ThemedBrowseByTaxonomyPageComponent
|
||||||
} from '../browse-by-taxonomy-page/themed-browse-by-taxonomy-page.component';
|
} from '../browse-by-taxonomy-page/themed-browse-by-taxonomy-page.component';
|
||||||
import { ThemedBrowseByTitlePageComponent } from '../browse-by-title-page/themed-browse-by-title-page.component';
|
import { ThemedBrowseByTitlePageComponent } from '../browse-by-title-page/themed-browse-by-title-page.component';
|
||||||
|
import { BrowseByDataType } from './browse-by-data-type';
|
||||||
export enum BrowseByDataType {
|
|
||||||
Title = 'title',
|
|
||||||
Metadata = 'text',
|
|
||||||
Date = 'date',
|
|
||||||
Hierarchy = 'hierarchy'
|
|
||||||
}
|
|
||||||
|
|
||||||
export const DEFAULT_BROWSE_BY_TYPE = BrowseByDataType.Metadata;
|
export const DEFAULT_BROWSE_BY_TYPE = BrowseByDataType.Metadata;
|
||||||
|
|
||||||
|
@@ -2,12 +2,13 @@ import { BrowseBySwitcherComponent } from './browse-by-switcher.component';
|
|||||||
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
||||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { BROWSE_BY_COMPONENT_FACTORY, BrowseByDataType } from './browse-by-decorator';
|
import { BROWSE_BY_COMPONENT_FACTORY } from './browse-by-decorator';
|
||||||
import { BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject } from 'rxjs';
|
||||||
import { ThemeService } from '../../shared/theme-support/theme.service';
|
import { ThemeService } from '../../shared/theme-support/theme.service';
|
||||||
import { FlatBrowseDefinition } from '../../core/shared/flat-browse-definition.model';
|
import { FlatBrowseDefinition } from '../../core/shared/flat-browse-definition.model';
|
||||||
import { ValueListBrowseDefinition } from '../../core/shared/value-list-browse-definition.model';
|
import { ValueListBrowseDefinition } from '../../core/shared/value-list-browse-definition.model';
|
||||||
import { NonHierarchicalBrowseDefinition } from '../../core/shared/non-hierarchical-browse-definition';
|
import { NonHierarchicalBrowseDefinition } from '../../core/shared/non-hierarchical-browse-definition';
|
||||||
|
import { BrowseByDataType } from './browse-by-data-type';
|
||||||
|
|
||||||
describe('BrowseBySwitcherComponent', () => {
|
describe('BrowseBySwitcherComponent', () => {
|
||||||
let comp: BrowseBySwitcherComponent;
|
let comp: BrowseBySwitcherComponent;
|
||||||
|
8
src/app/core/cache/builders/link.service.ts
vendored
8
src/app/core/cache/builders/link.service.ts
vendored
@@ -1,4 +1,4 @@
|
|||||||
import { Inject, Injectable, Injector } from '@angular/core';
|
import { Inject, Injectable, InjectionToken, Injector } from '@angular/core';
|
||||||
import { hasValue, isNotEmpty } from '../../../shared/empty.util';
|
import { hasValue, isNotEmpty } from '../../../shared/empty.util';
|
||||||
import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model';
|
import { FollowLinkConfig } from '../../../shared/utils/follow-link-config.model';
|
||||||
import { GenericConstructor } from '../../shared/generic-constructor';
|
import { GenericConstructor } from '../../shared/generic-constructor';
|
||||||
@@ -10,7 +10,8 @@ import { HALDataService } from '../../data/base/hal-data-service.interface';
|
|||||||
import { PaginatedList } from '../../data/paginated-list.model';
|
import { PaginatedList } from '../../data/paginated-list.model';
|
||||||
import { lazyService } from '../../lazy-service';
|
import { lazyService } from '../../lazy-service';
|
||||||
import { catchError, switchMap } from 'rxjs/operators';
|
import { catchError, switchMap } from 'rxjs/operators';
|
||||||
import { LAZY_DATA_SERVICES } from '../../data-services-map';
|
import { APP_DATA_SERVICES_MAP, LazyDataServicesMap } from '../../../../config/app-config.interface';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Service to handle the resolving and removing
|
* A Service to handle the resolving and removing
|
||||||
@@ -21,6 +22,7 @@ export class LinkService {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
protected injector: Injector,
|
protected injector: Injector,
|
||||||
|
@Inject(APP_DATA_SERVICES_MAP) private map: InjectionToken<LazyDataServicesMap>,
|
||||||
@Inject(LINK_DEFINITION_FACTORY) private getLinkDefinition: <T extends HALResource>(source: GenericConstructor<T>, linkName: keyof T['_links']) => LinkDefinition<T>,
|
@Inject(LINK_DEFINITION_FACTORY) private getLinkDefinition: <T extends HALResource>(source: GenericConstructor<T>, linkName: keyof T['_links']) => LinkDefinition<T>,
|
||||||
@Inject(LINK_DEFINITION_MAP_FACTORY) private getLinkDefinitions: <T extends HALResource>(source: GenericConstructor<T>) => Map<keyof T['_links'], LinkDefinition<T>>,
|
@Inject(LINK_DEFINITION_MAP_FACTORY) private getLinkDefinitions: <T extends HALResource>(source: GenericConstructor<T>) => Map<keyof T['_links'], LinkDefinition<T>>,
|
||||||
) {
|
) {
|
||||||
@@ -50,7 +52,7 @@ export class LinkService {
|
|||||||
public resolveLinkWithoutAttaching<T extends HALResource, U extends HALResource>(model, linkToFollow: FollowLinkConfig<T>): Observable<RemoteData<U | PaginatedList<U>>> {
|
public resolveLinkWithoutAttaching<T extends HALResource, U extends HALResource>(model, linkToFollow: FollowLinkConfig<T>): Observable<RemoteData<U | PaginatedList<U>>> {
|
||||||
const matchingLinkDef = this.getLinkDefinition(model.constructor, linkToFollow.name);
|
const matchingLinkDef = this.getLinkDefinition(model.constructor, linkToFollow.name);
|
||||||
if (hasValue(matchingLinkDef)) {
|
if (hasValue(matchingLinkDef)) {
|
||||||
const lazyProvider$: Observable<HALDataService<any>> = lazyService(LAZY_DATA_SERVICES[matchingLinkDef.resourceType.value], this.injector);
|
const lazyProvider$: Observable<HALDataService<any>> = lazyService(this.map[matchingLinkDef.resourceType.value], this.injector);
|
||||||
return lazyProvider$.pipe(
|
return lazyProvider$.pipe(
|
||||||
switchMap((provider: HALDataService<any>) => {
|
switchMap((provider: HALDataService<any>) => {
|
||||||
const link = model._links[matchingLinkDef.linkName];
|
const link = model._links[matchingLinkDef.linkName];
|
||||||
|
@@ -46,8 +46,6 @@ import { VERSION } from './shared/version.resource-type';
|
|||||||
import { FEATURE } from './shared/feature.resource-type';
|
import { FEATURE } from './shared/feature.resource-type';
|
||||||
import { DSPACE_OBJECT } from './shared/dspace-object.resource-type';
|
import { DSPACE_OBJECT } from './shared/dspace-object.resource-type';
|
||||||
import { BITSTREAM_FORMAT } from './shared/bitstream-format.resource-type';
|
import { BITSTREAM_FORMAT } from './shared/bitstream-format.resource-type';
|
||||||
import { Type } from '@angular/core';
|
|
||||||
import { HALDataService } from './data/base/hal-data-service.interface';
|
|
||||||
import { SYSTEMWIDEALERT } from '../system-wide-alert/system-wide-alert.resource-type';
|
import { SYSTEMWIDEALERT } from '../system-wide-alert/system-wide-alert.resource-type';
|
||||||
import {
|
import {
|
||||||
ACCESS_STATUS
|
ACCESS_STATUS
|
||||||
@@ -56,8 +54,9 @@ import { SUBSCRIPTION } from '../shared/subscriptions/models/subscription.resour
|
|||||||
import { SCRIPT } from '../process-page/scripts/script.resource-type';
|
import { SCRIPT } from '../process-page/scripts/script.resource-type';
|
||||||
import { PROCESS } from '../process-page/processes/process.resource-type';
|
import { PROCESS } from '../process-page/processes/process.resource-type';
|
||||||
import { IDENTIFIERS } from '../shared/object-list/identifier-data/identifier-data.resource-type';
|
import { IDENTIFIERS } from '../shared/object-list/identifier-data/identifier-data.resource-type';
|
||||||
|
import { LazyDataServicesMap } from '../../config/app-config.interface';
|
||||||
|
|
||||||
export const LAZY_DATA_SERVICES: {[key: string]: () => Promise<Type<HALDataService<any>>>} = {
|
export const LAZY_DATA_SERVICES: LazyDataServicesMap = {
|
||||||
[AUTHORIZATION.value]: () => import('./data/feature-authorization/authorization-data.service').then(m => m.AuthorizationDataService),
|
[AUTHORIZATION.value]: () => import('./data/feature-authorization/authorization-data.service').then(m => m.AuthorizationDataService),
|
||||||
[BROWSE_DEFINITION.value]: () => import('./browse/browse-definition-data.service').then(m => m.BrowseDefinitionDataService),
|
[BROWSE_DEFINITION.value]: () => import('./browse/browse-definition-data.service').then(m => m.BrowseDefinitionDataService),
|
||||||
[BULK_ACCESS_CONDITION_OPTIONS.value]: () => import('./config/bulk-access-config-data.service').then(m => m.BulkAccessConfigDataService),
|
[BULK_ACCESS_CONDITION_OPTIONS.value]: () => import('./config/bulk-access-config-data.service').then(m => m.BulkAccessConfigDataService),
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
import { autoserialize, autoserializeAs, inheritSerialization } from 'cerialize';
|
import { autoserialize, autoserializeAs, inheritSerialization } from 'cerialize';
|
||||||
import { SortOption } from './sort-option.model';
|
import { SortOption } from './sort-option.model';
|
||||||
import { BrowseDefinition } from './browse-definition.model';
|
import { BrowseDefinition } from './browse-definition.model';
|
||||||
import { BrowseByDataType } from '../../browse-by/browse-by-data-type';
|
import { BrowseByDataType } from '../../browse-by/browse-by-switcher/browse-by-data-type';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Super class for NonHierarchicalBrowseDefinition models,
|
* Super class for NonHierarchicalBrowseDefinition models,
|
||||||
|
@@ -10,7 +10,7 @@ import { CheckAuthenticationTokenAction } from './core/auth/auth.actions';
|
|||||||
import { CorrelationIdService } from './correlation-id/correlation-id.service';
|
import { CorrelationIdService } from './correlation-id/correlation-id.service';
|
||||||
import { APP_INITIALIZER, Inject, Provider, Type } from '@angular/core';
|
import { APP_INITIALIZER, Inject, Provider, Type } from '@angular/core';
|
||||||
import { makeStateKey, TransferState } from '@angular/platform-browser';
|
import { makeStateKey, TransferState } from '@angular/platform-browser';
|
||||||
import { APP_CONFIG, AppConfig } from '../config/app-config.interface';
|
import { APP_CONFIG, APP_DATA_SERVICES_MAP, AppConfig } from '../config/app-config.interface';
|
||||||
import { environment } from '../environments/environment';
|
import { environment } from '../environments/environment';
|
||||||
import { AppState } from './app.reducer';
|
import { AppState } from './app.reducer';
|
||||||
import isEqual from 'lodash/isEqual';
|
import isEqual from 'lodash/isEqual';
|
||||||
@@ -24,6 +24,7 @@ import { isAuthenticationBlocking } from './core/auth/selectors';
|
|||||||
import { distinctUntilChanged, find } from 'rxjs/operators';
|
import { distinctUntilChanged, find } from 'rxjs/operators';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { MenuService } from './shared/menu/menu.service';
|
import { MenuService } from './shared/menu/menu.service';
|
||||||
|
import { LAZY_DATA_SERVICES } from './core/data-services-map';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Performs the initialization of the app.
|
* Performs the initialization of the app.
|
||||||
@@ -90,6 +91,10 @@ export abstract class InitService {
|
|||||||
deps: [ InitService ],
|
deps: [ InitService ],
|
||||||
multi: true,
|
multi: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
provide: APP_DATA_SERVICES_MAP,
|
||||||
|
useValue: LAZY_DATA_SERVICES,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,22 +1,34 @@
|
|||||||
import { RelatedEntitiesSearchComponent } from './simple/related-entities/related-entities-search/related-entities-search.component';
|
import {
|
||||||
|
RelatedEntitiesSearchComponent
|
||||||
|
} from './simple/related-entities/related-entities-search/related-entities-search.component';
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { SearchModule } from '../shared/search/search.module';
|
import { SearchModule } from '../shared/search/search.module';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { DYNAMIC_FORM_CONTROL_MAP_FN } from '@ng-dynamic-forms/core';
|
import { DYNAMIC_FORM_CONTROL_MAP_FN } from '@ng-dynamic-forms/core';
|
||||||
import { TabbedRelatedEntitiesSearchComponent } from './simple/related-entities/tabbed-related-entities-search/tabbed-related-entities-search.component';
|
import {
|
||||||
import { ItemVersionsDeleteModalComponent } from './versions/item-versions-delete-modal/item-versions-delete-modal.component';
|
TabbedRelatedEntitiesSearchComponent
|
||||||
import { ItemVersionsSummaryModalComponent } from './versions/item-versions-summary-modal/item-versions-summary-modal.component';
|
} from './simple/related-entities/tabbed-related-entities-search/tabbed-related-entities-search.component';
|
||||||
|
import {
|
||||||
|
ItemVersionsDeleteModalComponent
|
||||||
|
} from './versions/item-versions-delete-modal/item-versions-delete-modal.component';
|
||||||
|
import {
|
||||||
|
ItemVersionsSummaryModalComponent
|
||||||
|
} from './versions/item-versions-summary-modal/item-versions-summary-modal.component';
|
||||||
import { MetadataValuesComponent } from './field-components/metadata-values/metadata-values.component';
|
import { MetadataValuesComponent } from './field-components/metadata-values/metadata-values.component';
|
||||||
import { GenericItemPageFieldComponent } from './simple/field-components/specific-field/generic/generic-item-page-field.component';
|
import {
|
||||||
import { MetadataRepresentationListComponent } from './simple/metadata-representation-list/metadata-representation-list.component';
|
GenericItemPageFieldComponent
|
||||||
|
} from './simple/field-components/specific-field/generic/generic-item-page-field.component';
|
||||||
|
import {
|
||||||
|
MetadataRepresentationListComponent
|
||||||
|
} from './simple/metadata-representation-list/metadata-representation-list.component';
|
||||||
import { RelatedItemsComponent } from './simple/related-items/related-items-component';
|
import { RelatedItemsComponent } from './simple/related-items/related-items-component';
|
||||||
import {
|
import {
|
||||||
ThemedMetadataRepresentationListComponent
|
ThemedMetadataRepresentationListComponent
|
||||||
} from './simple/metadata-representation-list/themed-metadata-representation-list.component';
|
} from './simple/metadata-representation-list/themed-metadata-representation-list.component';
|
||||||
import {
|
import {
|
||||||
dsDynamicFormControlMapFn
|
dsDynamicFormControlMapFn
|
||||||
} from '../shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.map';
|
} from '../shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component';
|
||||||
|
|
||||||
const ENTRY_COMPONENTS = [
|
const ENTRY_COMPONENTS = [
|
||||||
ItemVersionsDeleteModalComponent,
|
ItemVersionsDeleteModalComponent,
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
import { Component, EventEmitter, NgZone, OnDestroy, OnInit, Output } from '@angular/core';
|
import { Component, EventEmitter, NgZone, OnDestroy, OnInit, Output } from '@angular/core';
|
||||||
import { combineLatest as observableCombineLatest, Observable, Subscription, BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject, combineLatest as observableCombineLatest, Observable, Subscription } from 'rxjs';
|
||||||
import { NgbActiveModal, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
|
import { NgbActiveModal, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';
|
||||||
import { hasValue, isNotEmpty } from '../../../../empty.util';
|
import { hasValue, isNotEmpty } from '../../../../empty.util';
|
||||||
import { map, skip, switchMap, take } from 'rxjs/operators';
|
import { map, skip, switchMap, take } from 'rxjs/operators';
|
||||||
import { SEARCH_CONFIG_SERVICE } from '../../../../../my-dspace-page/my-dspace-page.component';
|
import { SEARCH_CONFIG_SERVICE } from '../../../../../my-dspace-page/my-dspace-configuration.service';
|
||||||
import { SearchConfigurationService } from '../../../../../core/shared/search/search-configuration.service';
|
import { SearchConfigurationService } from '../../../../../core/shared/search/search-configuration.service';
|
||||||
import { SelectableListService } from '../../../../object-list/selectable-list/selectable-list.service';
|
import { SelectableListService } from '../../../../object-list/selectable-list/selectable-list.service';
|
||||||
import { SelectableListState } from '../../../../object-list/selectable-list/selectable-list.reducer';
|
import { SelectableListState } from '../../../../object-list/selectable-list/selectable-list.reducer';
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ComponentRef } from '@angular/core';
|
import { Component, ComponentRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
|
||||||
import { SEARCH_CONFIG_SERVICE } from '../../../../../../my-dspace-page/my-dspace-page.component';
|
import { SEARCH_CONFIG_SERVICE } from '../../../../../../my-dspace-page/my-dspace-configuration.service';
|
||||||
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
|
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { ExternalSourceDataService } from '../../../../../../core/data/external-source-data.service';
|
import { ExternalSourceDataService } from '../../../../../../core/data/external-source-data.service';
|
||||||
@@ -15,8 +15,12 @@ import { fadeIn, fadeInOut } from '../../../../../animations/fade';
|
|||||||
import { PaginationComponentOptions } from '../../../../../pagination/pagination-component-options.model';
|
import { PaginationComponentOptions } from '../../../../../pagination/pagination-component-options.model';
|
||||||
import { RelationshipOptions } from '../../../models/relationship-options.model';
|
import { RelationshipOptions } from '../../../models/relationship-options.model';
|
||||||
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
|
import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';
|
||||||
import { ExternalSourceEntryImportModalComponent } from './external-source-entry-import-modal/external-source-entry-import-modal.component';
|
import {
|
||||||
import { ThemedExternalSourceEntryImportModalComponent } from './external-source-entry-import-modal/themed-external-source-entry-import-modal.component';
|
ExternalSourceEntryImportModalComponent
|
||||||
|
} from './external-source-entry-import-modal/external-source-entry-import-modal.component';
|
||||||
|
import {
|
||||||
|
ThemedExternalSourceEntryImportModalComponent
|
||||||
|
} from './external-source-entry-import-modal/themed-external-source-entry-import-modal.component';
|
||||||
import { hasValue, hasValueOperator } from '../../../../../empty.util';
|
import { hasValue, hasValueOperator } from '../../../../../empty.util';
|
||||||
import { SelectableListService } from '../../../../../object-list/selectable-list/selectable-list.service';
|
import { SelectableListService } from '../../../../../object-list/selectable-list/selectable-list.service';
|
||||||
import { Item } from '../../../../../../core/shared/item.model';
|
import { Item } from '../../../../../../core/shared/item.model';
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
|
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
|
||||||
import { SEARCH_CONFIG_SERVICE } from '../../../../../../my-dspace-page/my-dspace-page.component';
|
import { SEARCH_CONFIG_SERVICE } from '../../../../../../my-dspace-page/my-dspace-configuration.service';
|
||||||
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
|
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
|
||||||
import { Item } from '../../../../../../core/shared/item.model';
|
import { Item } from '../../../../../../core/shared/item.model';
|
||||||
import { SearchResult } from '../../../../../search/models/search-result.model';
|
import { SearchResult } from '../../../../../search/models/search-result.model';
|
||||||
import { PaginatedList } from '../../../../../../core/data/paginated-list.model';
|
import { PaginatedList } from '../../../../../../core/data/paginated-list.model';
|
||||||
import { Observable, BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject, Observable } from 'rxjs';
|
||||||
import { RelationshipOptions } from '../../../models/relationship-options.model';
|
import { RelationshipOptions } from '../../../models/relationship-options.model';
|
||||||
import { PaginationComponentOptions } from '../../../../../pagination/pagination-component-options.model';
|
import { PaginationComponentOptions } from '../../../../../pagination/pagination-component-options.model';
|
||||||
import { ListableObject } from '../../../../../object-collection/shared/listable-object.model';
|
import { ListableObject } from '../../../../../object-collection/shared/listable-object.model';
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||||
import { SEARCH_CONFIG_SERVICE } from '../../../../../../my-dspace-page/my-dspace-page.component';
|
import { SEARCH_CONFIG_SERVICE } from '../../../../../../my-dspace-page/my-dspace-configuration.service';
|
||||||
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
|
import { SearchConfigurationService } from '../../../../../../core/shared/search/search-configuration.service';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { ListableObject } from '../../../../../object-collection/shared/listable-object.model';
|
import { ListableObject } from '../../../../../object-collection/shared/listable-object.model';
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import { Component, Injector, Input, OnInit, Type } from '@angular/core';
|
import { Component, Injector, Input, OnInit } from '@angular/core';
|
||||||
import { rendersAuthMethodType } from '../methods/log-in.methods-decorator';
|
import { AuthMethodTypeComponent, rendersAuthMethodType } from '../methods/log-in.methods-decorator';
|
||||||
import { AuthMethod } from '../../../core/auth/models/auth.method';
|
import { AuthMethod } from '../../../core/auth/models/auth.method';
|
||||||
import { NgComponentOutlet } from '@angular/common';
|
import { NgComponentOutlet } from '@angular/common';
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ export class LogInContainerComponent implements OnInit {
|
|||||||
/**
|
/**
|
||||||
* Find the correct component based on the AuthMethod's type
|
* Find the correct component based on the AuthMethod's type
|
||||||
*/
|
*/
|
||||||
getAuthMethodContent(): Type<Component> {
|
getAuthMethodContent(): AuthMethodTypeComponent {
|
||||||
return rendersAuthMethodType(this.authMethod.authMethodType);
|
return rendersAuthMethodType(this.authMethod.authMethodType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@ import { AuthMethodType } from '../../../core/auth/models/auth.method-type';
|
|||||||
import { LogInPasswordComponent } from './password/log-in-password.component';
|
import { LogInPasswordComponent } from './password/log-in-password.component';
|
||||||
import { LogInExternalProviderComponent } from './log-in-external-provider/log-in-external-provider.component';
|
import { LogInExternalProviderComponent } from './log-in-external-provider/log-in-external-provider.component';
|
||||||
|
|
||||||
type AuthMethodTypeComponent =
|
export type AuthMethodTypeComponent =
|
||||||
typeof LogInPasswordComponent |
|
typeof LogInPasswordComponent |
|
||||||
typeof LogInExternalProviderComponent;
|
typeof LogInExternalProviderComponent;
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { InjectionToken } from '@angular/core';
|
import { InjectionToken, Type } from '@angular/core';
|
||||||
import { makeStateKey } from '@angular/platform-browser';
|
import { makeStateKey } from '@angular/platform-browser';
|
||||||
import { Config } from './config.interface';
|
import { Config } from './config.interface';
|
||||||
import { ServerConfig } from './server-config.interface';
|
import { ServerConfig } from './server-config.interface';
|
||||||
@@ -22,7 +22,8 @@ import { HomeConfig } from './homepage-config.interface';
|
|||||||
import { MarkdownConfig } from './markdown-config.interface';
|
import { MarkdownConfig } from './markdown-config.interface';
|
||||||
import { FilterVocabularyConfig } from './filter-vocabulary-config';
|
import { FilterVocabularyConfig } from './filter-vocabulary-config';
|
||||||
import { DiscoverySortConfig } from './discovery-sort.config';
|
import { DiscoverySortConfig } from './discovery-sort.config';
|
||||||
import {QualityAssuranceConfig} from './quality-assurance.config';
|
import { QualityAssuranceConfig } from './quality-assurance.config';
|
||||||
|
import { HALDataService } from '../app/core/data/base/hal-data-service.interface';
|
||||||
|
|
||||||
interface AppConfig extends Config {
|
interface AppConfig extends Config {
|
||||||
ui: UIServerConfig;
|
ui: UIServerConfig;
|
||||||
@@ -60,6 +61,11 @@ const APP_CONFIG = new InjectionToken<AppConfig>('APP_CONFIG');
|
|||||||
|
|
||||||
const APP_CONFIG_STATE = makeStateKey<AppConfig>('APP_CONFIG_STATE');
|
const APP_CONFIG_STATE = makeStateKey<AppConfig>('APP_CONFIG_STATE');
|
||||||
|
|
||||||
|
export interface LazyDataServicesMap {
|
||||||
|
[type: string]: () => Promise<Type<HALDataService<any>>>
|
||||||
|
}
|
||||||
|
export const APP_DATA_SERVICES_MAP: InjectionToken<LazyDataServicesMap> = new InjectionToken<LazyDataServicesMap>('APP_DATA_SERVICES_MAP');
|
||||||
|
|
||||||
export {
|
export {
|
||||||
AppConfig,
|
AppConfig,
|
||||||
APP_CONFIG,
|
APP_CONFIG,
|
||||||
|
Reference in New Issue
Block a user