[DURACOM-191] fix errors at runtime

This commit is contained in:
Andrea Barbasso
2024-03-06 17:19:31 +01:00
parent 3a5f9cdd63
commit a8b4c82b9a
19 changed files with 37 additions and 58 deletions

View File

@@ -27,7 +27,7 @@ import { ItemAdminSearchResultActionsComponent } from '../../item-admin-search-r
styleUrls: ['./item-admin-search-result-grid-element.component.scss'], styleUrls: ['./item-admin-search-result-grid-element.component.scss'],
templateUrl: './item-admin-search-result-grid-element.component.html', templateUrl: './item-admin-search-result-grid-element.component.html',
standalone: true, standalone: true,
imports: [ItemAdminSearchResultActionsComponent] imports: [ItemAdminSearchResultActionsComponent, DynamicComponentLoaderDirective]
}) })
/** /**
* The component for displaying a list element for an item search result on the admin search page * The component for displaying a list element for an item search result on the admin search page

View File

@@ -20,9 +20,6 @@ import {
import { import {
DynamicComponentLoaderDirective DynamicComponentLoaderDirective
} from '../../../../../shared/abstract-component-loader/dynamic-component-loader.directive'; } from '../../../../../shared/abstract-component-loader/dynamic-component-loader.directive';
import {
ListableObjectDirective
} from '../../../../../shared/object-collection/shared/listable-object/listable-object.directive';
import { import {
WorkflowItemSearchResult WorkflowItemSearchResult
} from '../../../../../shared/object-collection/shared/workflow-item-search-result.model'; } from '../../../../../shared/object-collection/shared/workflow-item-search-result.model';
@@ -64,14 +61,12 @@ describe('WorkflowItemSearchResultAdminWorkflowGridElementComponent', () => {
TestBed.configureTestingModule( TestBed.configureTestingModule(
{ {
imports: [ imports: [
ListableObjectDirective,
WorkflowItemSearchResultAdminWorkflowGridElementComponent, WorkflowItemSearchResultAdminWorkflowGridElementComponent,
ItemGridElementComponent, ItemGridElementComponent,
DynamicComponentLoaderDirective, DynamicComponentLoaderDirective,
NoopAnimationsModule, NoopAnimationsModule,
TranslateModule.forRoot(), TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]), RouterTestingModule.withRoutes([]),
ListableObjectDirective,
ListableModule, ListableModule,
WorkflowItemSearchResultAdminWorkflowGridElementComponent WorkflowItemSearchResultAdminWorkflowGridElementComponent
], ],

View File

@@ -38,7 +38,7 @@ import { NgIf } from '@angular/common';
styleUrls: ['./workflow-item-search-result-admin-workflow-grid-element.component.scss'], styleUrls: ['./workflow-item-search-result-admin-workflow-grid-element.component.scss'],
templateUrl: './workflow-item-search-result-admin-workflow-grid-element.component.html', templateUrl: './workflow-item-search-result-admin-workflow-grid-element.component.html',
standalone: true, standalone: true,
imports: [NgIf, WorkflowItemAdminWorkflowActionsComponent, TranslateModule] imports: [NgIf, WorkflowItemAdminWorkflowActionsComponent, TranslateModule, DynamicComponentLoaderDirective]
}) })
/** /**
* The component for displaying a grid element for an workflow item on the admin workflow search page * The component for displaying a grid element for an workflow item on the admin workflow search page

View File

@@ -22,9 +22,6 @@ import {
import { import {
DynamicComponentLoaderDirective DynamicComponentLoaderDirective
} from '../../../../../shared/abstract-component-loader/dynamic-component-loader.directive'; } from '../../../../../shared/abstract-component-loader/dynamic-component-loader.directive';
import {
ListableObjectDirective
} from '../../../../../shared/object-collection/shared/listable-object/listable-object.directive';
import { import {
WorkflowItemSearchResult WorkflowItemSearchResult
} from '../../../../../shared/object-collection/shared/workflow-item-search-result.model'; } from '../../../../../shared/object-collection/shared/workflow-item-search-result.model';
@@ -84,7 +81,6 @@ describe('WorkspaceItemSearchResultAdminWorkflowGridElementComponent', () => {
TranslateModule.forRoot(), TranslateModule.forRoot(),
RouterTestingModule.withRoutes([]), RouterTestingModule.withRoutes([]),
ListableModule, ListableModule,
ListableObjectDirective,
WorkspaceItemSearchResultAdminWorkflowGridElementComponent WorkspaceItemSearchResultAdminWorkflowGridElementComponent
], ],
providers: [ providers: [

View File

@@ -1,4 +1,4 @@
import { Component, ComponentFactoryResolver, ElementRef, OnInit, ViewChild, OnDestroy, ComponentRef } from '@angular/core'; import { Component, ComponentRef, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs'; import { BehaviorSubject, Observable } from 'rxjs';
import { map, mergeMap, take, tap } from 'rxjs/operators'; import { map, mergeMap, take, tap } from 'rxjs/operators';
@@ -16,7 +16,9 @@ import {
import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service'; import { TruncatableService } from '../../../../../shared/truncatable/truncatable.service';
import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service'; import { BitstreamDataService } from '../../../../../core/data/bitstream-data.service';
import { GenericConstructor } from '../../../../../core/shared/generic-constructor'; import { GenericConstructor } from '../../../../../core/shared/generic-constructor';
import { DynamicComponentLoaderDirective } from '../../../../../shared/abstract-component-loader/dynamic-component-loader.directive'; import {
DynamicComponentLoaderDirective
} from '../../../../../shared/abstract-component-loader/dynamic-component-loader.directive';
import { WorkspaceItem } from '../../../../../core/submission/models/workspaceitem.model'; import { WorkspaceItem } from '../../../../../core/submission/models/workspaceitem.model';
import { LinkService } from '../../../../../core/cache/builders/link.service'; import { LinkService } from '../../../../../core/cache/builders/link.service';
import { followLink } from '../../../../../shared/utils/follow-link-config.model'; import { followLink } from '../../../../../shared/utils/follow-link-config.model';
@@ -38,7 +40,9 @@ import { DSONameService } from '../../../../../core/breadcrumbs/dso-name.service
import { hasValue } from '../../../../../shared/empty.util'; import { hasValue } from '../../../../../shared/empty.util';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
import { AsyncPipe } from '@angular/common'; import { AsyncPipe } from '@angular/common';
import { WorkspaceItemAdminWorkflowActionsComponent } from '../../actions/workspace-item/workspace-item-admin-workflow-actions.component'; import {
WorkspaceItemAdminWorkflowActionsComponent
} from '../../actions/workspace-item/workspace-item-admin-workflow-actions.component';
@listableObjectComponent(WorkspaceItemSearchResult, ViewMode.GridElement, Context.AdminWorkflowSearch) @listableObjectComponent(WorkspaceItemSearchResult, ViewMode.GridElement, Context.AdminWorkflowSearch)
@Component({ @Component({
@@ -46,7 +50,7 @@ import { WorkspaceItemAdminWorkflowActionsComponent } from '../../actions/worksp
styleUrls: ['./workspace-item-search-result-admin-workflow-grid-element.component.scss'], styleUrls: ['./workspace-item-search-result-admin-workflow-grid-element.component.scss'],
templateUrl: './workspace-item-search-result-admin-workflow-grid-element.component.html', templateUrl: './workspace-item-search-result-admin-workflow-grid-element.component.html',
standalone: true, standalone: true,
imports: [WorkspaceItemAdminWorkflowActionsComponent, AsyncPipe, TranslateModule] imports: [WorkspaceItemAdminWorkflowActionsComponent, AsyncPipe, TranslateModule, DynamicComponentLoaderDirective]
}) })
/** /**
* The component for displaying a grid element for an workflow item on the admin workflow search page * The component for displaying a grid element for an workflow item on the admin workflow search page

View File

@@ -34,8 +34,6 @@ import { BrowseByComponent } from '../../shared/browse-by/browse-by.component';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
import { ThemedLoadingComponent } from '../../shared/loading/themed-loading.component'; import { ThemedLoadingComponent } from '../../shared/loading/themed-loading.component';
import { ThemedBrowseByComponent } from 'src/app/shared/browse-by/themed-browse-by.component'; import { ThemedBrowseByComponent } from 'src/app/shared/browse-by/themed-browse-by.component';
import { rendersBrowseBy } from '../browse-by-switcher/browse-by-decorator';
import { BrowseByDataType } from '../browse-by-switcher/browse-by-data-type';
import { StartsWithType } from '../../shared/starts-with/starts-with-type'; import { StartsWithType } from '../../shared/starts-with/starts-with-type';
@Component({ @Component({
@@ -64,7 +62,6 @@ import { StartsWithType } from '../../shared/starts-with/starts-with-type';
* A metadata definition (a.k.a. browse id) is a short term used to describe one or multiple metadata fields. * A metadata definition (a.k.a. browse id) is a short term used to describe one or multiple metadata fields.
* An example would be 'dateissued' for 'dc.date.issued' * An example would be 'dateissued' for 'dc.date.issued'
*/ */
@rendersBrowseBy(BrowseByDataType.Date)
export class BrowseByDateComponent extends BrowseByMetadataComponent implements OnInit { export class BrowseByDateComponent extends BrowseByMetadataComponent implements OnInit {
/** /**

View File

@@ -2,10 +2,10 @@ import {
BehaviorSubject, BehaviorSubject,
combineLatest as observableCombineLatest, combineLatest as observableCombineLatest,
Observable, Observable,
Subscription, of as observableOf,
of as observableOf Subscription
} from 'rxjs'; } from 'rxjs';
import { Component, Inject, OnInit, OnDestroy, Input, OnChanges } from '@angular/core'; import { Component, Inject, Input, OnChanges, OnDestroy, OnInit } from '@angular/core';
import { RemoteData } from '../../core/data/remote-data'; import { RemoteData } from '../../core/data/remote-data';
import { PaginatedList } from '../../core/data/paginated-list.model'; import { PaginatedList } from '../../core/data/paginated-list.model';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
@@ -38,7 +38,6 @@ import { BrowseByComponent } from '../../shared/browse-by/browse-by.component';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
import { ThemedLoadingComponent } from '../../shared/loading/themed-loading.component'; import { ThemedLoadingComponent } from '../../shared/loading/themed-loading.component';
import { ThemedBrowseByComponent } from 'src/app/shared/browse-by/themed-browse-by.component'; import { ThemedBrowseByComponent } from 'src/app/shared/browse-by/themed-browse-by.component';
import { rendersBrowseBy } from '../browse-by-switcher/browse-by-decorator';
import { BrowseByDataType } from '../browse-by-switcher/browse-by-data-type'; import { BrowseByDataType } from '../browse-by-switcher/browse-by-data-type';
import { Context } from '../../core/shared/context.model'; import { Context } from '../../core/shared/context.model';
import { StartsWithType } from '../../shared/starts-with/starts-with-type'; import { StartsWithType } from '../../shared/starts-with/starts-with-type';
@@ -72,7 +71,6 @@ export const BBM_PAGINATION_ID = 'bbm';
* or multiple metadata fields. An example would be 'author' for * or multiple metadata fields. An example would be 'author' for
* 'dc.contributor.*' * 'dc.contributor.*'
*/ */
@rendersBrowseBy(BrowseByDataType.Metadata)
export class BrowseByMetadataComponent implements OnInit, OnChanges, OnDestroy { export class BrowseByMetadataComponent implements OnInit, OnChanges, OnDestroy {
/** /**

View File

@@ -5,7 +5,9 @@ import { AbstractComponentLoaderComponent } from '../../shared/abstract-componen
import { BrowseByDataType } from './browse-by-data-type'; import { BrowseByDataType } from './browse-by-data-type';
import { Context } from '../../core/shared/context.model'; import { Context } from '../../core/shared/context.model';
import { AsyncPipe, NgComponentOutlet } from '@angular/common'; import { AsyncPipe, NgComponentOutlet } from '@angular/common';
import { DynamicComponentLoaderDirective } from './dynamic-component-loader.directive'; import {
DynamicComponentLoaderDirective
} from '../../shared/abstract-component-loader/dynamic-component-loader.directive';
@Component({ @Component({
selector: 'ds-browse-by-switcher', selector: 'ds-browse-by-switcher',

View File

@@ -1,17 +0,0 @@
import { Directive, ViewContainerRef } from '@angular/core';
/**
* Directive used as a hook to know where to inject the dynamic loaded component
*/
@Directive({
selector: '[dsDynamicComponentLoader]',
standalone: true
})
export class DynamicComponentLoaderDirective {
constructor(
public viewContainerRef: ViewContainerRef,
) {
}
}

View File

@@ -4,7 +4,6 @@ import { VocabularyEntryDetail } from '../../core/submission/vocabularies/models
import { ActivatedRoute, Params, RouterLink } from '@angular/router'; import { ActivatedRoute, Params, RouterLink } from '@angular/router';
import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { BrowseDefinition } from '../../core/shared/browse-definition.model'; import { BrowseDefinition } from '../../core/shared/browse-definition.model';
import { rendersBrowseBy } from '../browse-by-switcher/browse-by-decorator';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { HierarchicalBrowseDefinition } from '../../core/shared/hierarchical-browse-definition.model'; import { HierarchicalBrowseDefinition } from '../../core/shared/hierarchical-browse-definition.model';
import { VocabularyTreeviewComponent } from '../../shared/form/vocabulary-treeview/vocabulary-treeview.component'; import { VocabularyTreeviewComponent } from '../../shared/form/vocabulary-treeview/vocabulary-treeview.component';
@@ -54,7 +53,6 @@ import { ThemedBrowseByComponent } from '../../shared/browse-by/themed-browse-by
/** /**
* Component for browsing items by metadata in a hierarchical controlled vocabulary * Component for browsing items by metadata in a hierarchical controlled vocabulary
*/ */
@rendersBrowseBy(BrowseByDataType.Hierarchy)
export class BrowseByTaxonomyComponent implements OnInit, OnChanges, OnDestroy { export class BrowseByTaxonomyComponent implements OnInit, OnChanges, OnDestroy {
/** /**

View File

@@ -3,13 +3,12 @@ import { Component, OnInit } from '@angular/core';
import { Params } from '@angular/router'; import { Params } from '@angular/router';
import { import {
BrowseByMetadataComponent, BrowseByMetadataComponent,
browseParamsToOptions, getBrowseSearchOptions browseParamsToOptions,
getBrowseSearchOptions
} from '../browse-by-metadata/browse-by-metadata.component'; } from '../browse-by-metadata/browse-by-metadata.component';
import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model'; import { SortDirection, SortOptions } from '../../core/cache/models/sort-options.model';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model';
import { rendersBrowseBy } from '../browse-by-switcher/browse-by-decorator';
import { BrowseByDataType } from '../browse-by-switcher/browse-by-data-type';
import { VarDirective } from '../../shared/utils/var.directive'; import { VarDirective } from '../../shared/utils/var.directive';
import { AsyncPipe, NgIf } from '@angular/common'; import { AsyncPipe, NgIf } from '@angular/common';
import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component'; import { ComcolPageHeaderComponent } from '../../shared/comcol/comcol-page-header/comcol-page-header.component';
@@ -51,7 +50,6 @@ import { ThemedBrowseByComponent } from '../../shared/browse-by/themed-browse-by
/** /**
* Component for browsing items by title (dc.title) * Component for browsing items by title (dc.title)
*/ */
@rendersBrowseBy(BrowseByDataType.Title)
export class BrowseByTitleComponent extends BrowseByMetadataComponent implements OnInit { export class BrowseByTitleComponent extends BrowseByMetadataComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {

View File

@@ -65,7 +65,7 @@ export class SuggestionDataServiceImpl extends UpdateDataServiceImpl<Suggestion>
/** /**
* The service handling all Suggestion Target REST requests. * The service handling all Suggestion Target REST requests.
*/ */
@Injectable() @Injectable({ providedIn: 'root' })
@dataService(SUGGESTION) @dataService(SUGGESTION)
export class SuggestionsDataService { export class SuggestionsDataService {
protected searchFindBySourceMethod = 'findBySource'; protected searchFindBySourceMethod = 'findBySource';

View File

@@ -22,7 +22,7 @@ import { SearchData, SearchDataImpl } from '../../data/base/search-data';
import { DefaultChangeAnalyzer } from '../../data/default-change-analyzer.service'; import { DefaultChangeAnalyzer } from '../../data/default-change-analyzer.service';
import { SUGGESTION_TARGET } from '../models/suggestion-target-object.resource-type'; import { SUGGESTION_TARGET } from '../models/suggestion-target-object.resource-type';
@Injectable() @Injectable({ providedIn: 'root' })
@dataService(SUGGESTION_TARGET) @dataService(SUGGESTION_TARGET)
export class SuggestionTargetDataService extends IdentifiableDataService<SuggestionTarget> { export class SuggestionTargetDataService extends IdentifiableDataService<SuggestionTarget> {

View File

@@ -25,7 +25,7 @@ import {
/** /**
* The service handling the Suggestion targets State. * The service handling the Suggestion targets State.
*/ */
@Injectable() @Injectable({providedIn: 'root'})
export class SuggestionTargetsStateService { export class SuggestionTargetsStateService {
/** /**

View File

@@ -40,7 +40,7 @@ export interface SuggestionBulkResult {
/** /**
* The service handling all Suggestion Target requests to the REST service. * The service handling all Suggestion Target requests to the REST service.
*/ */
@Injectable() @Injectable({providedIn: 'root'})
export class SuggestionsService { export class SuggestionsService {
/** /**

View File

@@ -4,6 +4,7 @@ import { Directive, ViewContainerRef } from '@angular/core';
* Directive used as a hook to know where to inject the dynamic loaded component * Directive used as a hook to know where to inject the dynamic loaded component
*/ */
@Directive({ @Directive({
standalone: true,
selector: '[dsDynamicComponentLoader]' selector: '[dsDynamicComponentLoader]'
}) })
export class DynamicComponentLoaderDirective { export class DynamicComponentLoaderDirective {

View File

@@ -50,7 +50,6 @@ describe('ListableObjectComponentLoaderComponent', () => {
imports: [ imports: [
TranslateModule.forRoot(), TranslateModule.forRoot(),
ListableObjectComponentLoaderComponent, ListableObjectComponentLoaderComponent,
ListableObjectDirective,
ListableModule, ListableModule,
ItemListElementComponent, ItemListElementComponent,
DynamicComponentLoaderDirective DynamicComponentLoaderDirective

View File

@@ -3,9 +3,18 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AdvancedWorkflowActionsLoaderComponent } from './advanced-workflow-actions-loader.component'; import { AdvancedWorkflowActionsLoaderComponent } from './advanced-workflow-actions-loader.component';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { RouterStub } from '../../../shared/testing/router.stub'; import { RouterStub } from '../../../shared/testing/router.stub';
import { ChangeDetectionStrategy, Component, ComponentFactoryResolver, Directive, Injector, NO_ERRORS_SCHEMA, ViewContainerRef } from '@angular/core'; import {
import { AdvancedWorkflowActionsDirective } from './advanced-workflow-actions.directive'; ChangeDetectionStrategy,
import { DynamicComponentLoaderDirective } from '../../../shared/abstract-component-loader/dynamic-component-loader.directive'; Component,
ComponentFactoryResolver,
Directive,
Injector,
NO_ERRORS_SCHEMA,
ViewContainerRef
} from '@angular/core';
import {
DynamicComponentLoaderDirective
} from '../../../shared/abstract-component-loader/dynamic-component-loader.directive';
import { import {
rendersAdvancedWorkflowTaskOption rendersAdvancedWorkflowTaskOption
} from '../../../shared/mydspace-actions/claimed-task/switcher/claimed-task-actions-decorator'; } from '../../../shared/mydspace-actions/claimed-task/switcher/claimed-task-actions-decorator';
@@ -38,7 +47,6 @@ describe('AdvancedWorkflowActionsLoaderComponent', () => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
imports: [ imports: [
TranslateModule.forRoot(), TranslateModule.forRoot(),
AdvancedWorkflowActionsDirective,
RouterTestingModule, RouterTestingModule,
DynamicComponentLoaderDirective, DynamicComponentLoaderDirective,
AdvancedWorkflowActionsLoaderComponent, AdvancedWorkflowActionsLoaderComponent,

View File

@@ -1,6 +1,6 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { ThemedHeaderComponent } from '../../../../app/header/themed-header.component'; import { ThemedHeaderComponent } from '../../../../app/header/themed-header.component';
import { AsyncPipe, NgClass } from '@angular/common'; import { AsyncPipe, NgClass, NgIf } from '@angular/common';
import { ThemedNavbarComponent } from '../../../../app/navbar/themed-navbar.component'; import { ThemedNavbarComponent } from '../../../../app/navbar/themed-navbar.component';
import { HeaderNavbarWrapperComponent as BaseComponent } from '../../../../app/header-nav-wrapper/header-navbar-wrapper.component'; import { HeaderNavbarWrapperComponent as BaseComponent } from '../../../../app/header-nav-wrapper/header-navbar-wrapper.component';
import { slideMobileNav } from '../../../../app/shared/animations/slide'; import { slideMobileNav } from '../../../../app/shared/animations/slide';
@@ -14,7 +14,7 @@ import { TranslateModule } from '@ngx-translate/core';
styleUrls: ['header-navbar-wrapper.component.scss'], styleUrls: ['header-navbar-wrapper.component.scss'],
templateUrl: 'header-navbar-wrapper.component.html', templateUrl: 'header-navbar-wrapper.component.html',
standalone: true, standalone: true,
imports: [NgClass, ThemedHeaderComponent, ThemedNavbarComponent, AsyncPipe, TranslateModule], imports: [NgClass, ThemedHeaderComponent, ThemedNavbarComponent, AsyncPipe, TranslateModule, NgIf],
animations: [slideMobileNav], animations: [slideMobileNav],
}) })
export class HeaderNavbarWrapperComponent extends BaseComponent { export class HeaderNavbarWrapperComponent extends BaseComponent {