mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-08 02:24:11 +00:00
Fix issue with components that using a custom decorator are not loaded during CSR
This commit is contained in:
43
src/app/+admin/admin-search-page/admin-search.module.ts
Normal file
43
src/app/+admin/admin-search-page/admin-search.module.ts
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { SharedModule } from '../../shared/shared.module';
|
||||||
|
import { AdminSearchPageComponent } from './admin-search-page.component';
|
||||||
|
import { ItemAdminSearchResultListElementComponent } from './admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component';
|
||||||
|
import { CommunityAdminSearchResultListElementComponent } from './admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component';
|
||||||
|
import { CollectionAdminSearchResultListElementComponent } from './admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component';
|
||||||
|
import { ItemAdminSearchResultGridElementComponent } from './admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component';
|
||||||
|
import { CommunityAdminSearchResultGridElementComponent } from './admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component';
|
||||||
|
import { CollectionAdminSearchResultGridElementComponent } from './admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component';
|
||||||
|
import { ItemAdminSearchResultActionsComponent } from './admin-search-results/item-admin-search-result-actions.component';
|
||||||
|
|
||||||
|
const ENTRY_COMPONENTS = [
|
||||||
|
// put only entry components that use custom decorator
|
||||||
|
ItemAdminSearchResultListElementComponent,
|
||||||
|
CommunityAdminSearchResultListElementComponent,
|
||||||
|
CollectionAdminSearchResultListElementComponent,
|
||||||
|
ItemAdminSearchResultGridElementComponent,
|
||||||
|
CommunityAdminSearchResultGridElementComponent,
|
||||||
|
CollectionAdminSearchResultGridElementComponent,
|
||||||
|
ItemAdminSearchResultActionsComponent
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
SharedModule.withEntryComponents(),
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
AdminSearchPageComponent,
|
||||||
|
...ENTRY_COMPONENTS
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class AdminSearchModule {
|
||||||
|
/**
|
||||||
|
* NOTE: this method allows to resolve issue with components that using a custom decorator
|
||||||
|
* which are not loaded during CSR otherwise
|
||||||
|
*/
|
||||||
|
static withEntryComponents() {
|
||||||
|
return {
|
||||||
|
ngModule: SharedModule,
|
||||||
|
providers: ENTRY_COMPONENTS.map((component) => ({provide: component}))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
39
src/app/+admin/admin-workflow-page/admin-workflow.module.ts
Normal file
39
src/app/+admin/admin-workflow-page/admin-workflow.module.ts
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { SharedModule } from '../../shared/shared.module';
|
||||||
|
|
||||||
|
import { WorkflowItemSearchResultAdminWorkflowGridElementComponent } from './admin-workflow-search-results/admin-workflow-search-result-grid-element/workflow-item/workflow-item-search-result-admin-workflow-grid-element.component';
|
||||||
|
import { WorkflowItemAdminWorkflowActionsComponent } from './admin-workflow-search-results/workflow-item-admin-workflow-actions.component';
|
||||||
|
import { WorkflowItemSearchResultAdminWorkflowListElementComponent } from './admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component';
|
||||||
|
import { AdminWorkflowPageComponent } from './admin-workflow-page.component';
|
||||||
|
|
||||||
|
const ENTRY_COMPONENTS = [
|
||||||
|
// put only entry components that use custom decorator
|
||||||
|
WorkflowItemSearchResultAdminWorkflowListElementComponent,
|
||||||
|
WorkflowItemSearchResultAdminWorkflowGridElementComponent,
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
SharedModule.withEntryComponents()
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
AdminWorkflowPageComponent,
|
||||||
|
WorkflowItemAdminWorkflowActionsComponent,
|
||||||
|
...ENTRY_COMPONENTS
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
AdminWorkflowPageComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class AdminWorkflowModuleModule {
|
||||||
|
/**
|
||||||
|
* NOTE: this method allows to resolve issue with components that using a custom decorator
|
||||||
|
* which are not loaded during CSR otherwise
|
||||||
|
*/
|
||||||
|
static withEntryComponents() {
|
||||||
|
return {
|
||||||
|
ngModule: SharedModule,
|
||||||
|
providers: ENTRY_COMPONENTS.map((component) => ({provide: component}))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
@@ -4,61 +4,21 @@ import { AdminAccessControlModule } from './admin-access-control/admin-access-co
|
|||||||
import { MetadataImportPageComponent } from './admin-import-metadata-page/metadata-import-page.component';
|
import { MetadataImportPageComponent } from './admin-import-metadata-page/metadata-import-page.component';
|
||||||
import { AdminRegistriesModule } from './admin-registries/admin-registries.module';
|
import { AdminRegistriesModule } from './admin-registries/admin-registries.module';
|
||||||
import { AdminRoutingModule } from './admin-routing.module';
|
import { AdminRoutingModule } from './admin-routing.module';
|
||||||
import { AdminSearchPageComponent } from './admin-search-page/admin-search-page.component';
|
|
||||||
import { SearchPageModule } from '../+search-page/search-page.module';
|
|
||||||
import { ItemAdminSearchResultListElementComponent } from './admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component';
|
|
||||||
import { CommunityAdminSearchResultListElementComponent } from './admin-search-page/admin-search-results/admin-search-result-list-element/community-search-result/community-admin-search-result-list-element.component';
|
|
||||||
import { CollectionAdminSearchResultListElementComponent } from './admin-search-page/admin-search-results/admin-search-result-list-element/collection-search-result/collection-admin-search-result-list-element.component';
|
|
||||||
import { ItemAdminSearchResultGridElementComponent } from './admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component';
|
|
||||||
import { CommunityAdminSearchResultGridElementComponent } from './admin-search-page/admin-search-results/admin-search-result-grid-element/community-search-result/community-admin-search-result-grid-element.component';
|
|
||||||
import { CollectionAdminSearchResultGridElementComponent } from './admin-search-page/admin-search-results/admin-search-result-grid-element/collection-search-result/collection-admin-search-result-grid-element.component';
|
|
||||||
import { ItemAdminSearchResultActionsComponent } from './admin-search-page/admin-search-results/item-admin-search-result-actions.component';
|
|
||||||
import { WorkflowItemSearchResultAdminWorkflowGridElementComponent } from './admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-grid-element/workflow-item/workflow-item-search-result-admin-workflow-grid-element.component';
|
|
||||||
import { WorkflowItemAdminWorkflowActionsComponent } from './admin-workflow-page/admin-workflow-search-results/workflow-item-admin-workflow-actions.component';
|
|
||||||
import { WorkflowItemSearchResultAdminWorkflowListElementComponent } from './admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component';
|
|
||||||
import { AdminWorkflowPageComponent } from './admin-workflow-page/admin-workflow-page.component';
|
|
||||||
import { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.component';
|
import { AdminCurationTasksComponent } from './admin-curation-tasks/admin-curation-tasks.component';
|
||||||
|
import { AdminWorkflowModuleModule } from './admin-workflow-page/admin-workflow.module';
|
||||||
|
import { AdminSearchModule } from './admin-search-page/admin-search.module';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
AdminRoutingModule,
|
AdminRoutingModule,
|
||||||
AdminRegistriesModule,
|
AdminRegistriesModule,
|
||||||
AdminAccessControlModule,
|
AdminAccessControlModule,
|
||||||
|
AdminSearchModule.withEntryComponents(),
|
||||||
|
AdminWorkflowModuleModule.withEntryComponents(),
|
||||||
SharedModule,
|
SharedModule,
|
||||||
SearchPageModule
|
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
AdminSearchPageComponent,
|
|
||||||
AdminWorkflowPageComponent,
|
|
||||||
ItemAdminSearchResultListElementComponent,
|
|
||||||
CommunityAdminSearchResultListElementComponent,
|
|
||||||
CollectionAdminSearchResultListElementComponent,
|
|
||||||
ItemAdminSearchResultGridElementComponent,
|
|
||||||
CommunityAdminSearchResultGridElementComponent,
|
|
||||||
CollectionAdminSearchResultGridElementComponent,
|
|
||||||
ItemAdminSearchResultActionsComponent,
|
|
||||||
AdminCurationTasksComponent,
|
AdminCurationTasksComponent,
|
||||||
|
|
||||||
WorkflowItemSearchResultAdminWorkflowListElementComponent,
|
|
||||||
WorkflowItemSearchResultAdminWorkflowGridElementComponent,
|
|
||||||
WorkflowItemAdminWorkflowActionsComponent,
|
|
||||||
|
|
||||||
MetadataImportPageComponent
|
|
||||||
|
|
||||||
],
|
|
||||||
entryComponents: [
|
|
||||||
ItemAdminSearchResultListElementComponent,
|
|
||||||
CommunityAdminSearchResultListElementComponent,
|
|
||||||
CollectionAdminSearchResultListElementComponent,
|
|
||||||
ItemAdminSearchResultGridElementComponent,
|
|
||||||
CommunityAdminSearchResultGridElementComponent,
|
|
||||||
CollectionAdminSearchResultGridElementComponent,
|
|
||||||
ItemAdminSearchResultActionsComponent,
|
|
||||||
|
|
||||||
WorkflowItemSearchResultAdminWorkflowListElementComponent,
|
|
||||||
WorkflowItemSearchResultAdminWorkflowGridElementComponent,
|
|
||||||
WorkflowItemAdminWorkflowActionsComponent,
|
|
||||||
|
|
||||||
MetadataImportPageComponent
|
MetadataImportPageComponent
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
21
src/app/+browse-by/browse-by-page.module.ts
Normal file
21
src/app/+browse-by/browse-by-page.module.ts
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { BrowseByRoutingModule } from './browse-by-routing.module';
|
||||||
|
import { BrowseByModule } from './browse-by.module';
|
||||||
|
import { ItemDataService } from '../core/data/item-data.service';
|
||||||
|
import { BrowseService } from '../core/browse/browse.service';
|
||||||
|
import { BrowseByGuard } from './browse-by-guard';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
BrowseByRoutingModule,
|
||||||
|
BrowseByModule.withEntryComponents()
|
||||||
|
],
|
||||||
|
providers: [
|
||||||
|
ItemDataService,
|
||||||
|
BrowseService,
|
||||||
|
BrowseByGuard
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class BrowseByPageModule {
|
||||||
|
|
||||||
|
}
|
@@ -1,33 +1,40 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { BrowseByTitlePageComponent } from './+browse-by-title-page/browse-by-title-page.component';
|
import { BrowseByTitlePageComponent } from './+browse-by-title-page/browse-by-title-page.component';
|
||||||
import { ItemDataService } from '../core/data/item-data.service';
|
|
||||||
import { SharedModule } from '../shared/shared.module';
|
import { SharedModule } from '../shared/shared.module';
|
||||||
import { BrowseByRoutingModule } from './browse-by-routing.module';
|
|
||||||
import { BrowseService } from '../core/browse/browse.service';
|
|
||||||
import { BrowseByMetadataPageComponent } from './+browse-by-metadata-page/browse-by-metadata-page.component';
|
import { BrowseByMetadataPageComponent } from './+browse-by-metadata-page/browse-by-metadata-page.component';
|
||||||
import { BrowseByDatePageComponent } from './+browse-by-date-page/browse-by-date-page.component';
|
import { BrowseByDatePageComponent } from './+browse-by-date-page/browse-by-date-page.component';
|
||||||
import { BrowseByGuard } from './browse-by-guard';
|
|
||||||
import { BrowseBySwitcherComponent } from './+browse-by-switcher/browse-by-switcher.component';
|
import { BrowseBySwitcherComponent } from './+browse-by-switcher/browse-by-switcher.component';
|
||||||
|
|
||||||
|
const ENTRY_COMPONENTS = [
|
||||||
|
// put only entry components that use custom decorator
|
||||||
|
BrowseByTitlePageComponent,
|
||||||
|
BrowseByMetadataPageComponent,
|
||||||
|
BrowseByDatePageComponent
|
||||||
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
BrowseByRoutingModule,
|
|
||||||
CommonModule,
|
CommonModule,
|
||||||
SharedModule
|
SharedModule
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
BrowseByTitlePageComponent,
|
BrowseBySwitcherComponent,
|
||||||
BrowseByMetadataPageComponent,
|
...ENTRY_COMPONENTS
|
||||||
BrowseByDatePageComponent,
|
|
||||||
BrowseBySwitcherComponent
|
|
||||||
],
|
],
|
||||||
providers: [
|
exports: [
|
||||||
ItemDataService,
|
BrowseBySwitcherComponent
|
||||||
BrowseService,
|
|
||||||
BrowseByGuard
|
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class BrowseByModule {
|
export class BrowseByModule {
|
||||||
|
/**
|
||||||
|
* NOTE: this method allows to resolve issue with components that using a custom decorator
|
||||||
|
* which are not loaded during CSR otherwise
|
||||||
|
*/
|
||||||
|
static withEntryComponents() {
|
||||||
|
return {
|
||||||
|
ngModule: SharedModule,
|
||||||
|
providers: ENTRY_COMPONENTS.map((component) => ({provide: component}))
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,14 +23,18 @@ import { UploadBitstreamComponent } from './bitstreams/upload/upload-bitstream.c
|
|||||||
import { StatisticsModule } from '../statistics/statistics.module';
|
import { StatisticsModule } from '../statistics/statistics.module';
|
||||||
import { AbstractIncrementalListComponent } from './simple/abstract-incremental-list/abstract-incremental-list.component';
|
import { AbstractIncrementalListComponent } from './simple/abstract-incremental-list/abstract-incremental-list.component';
|
||||||
import { UntypedItemComponent } from './simple/item-types/untyped-item/untyped-item.component';
|
import { UntypedItemComponent } from './simple/item-types/untyped-item/untyped-item.component';
|
||||||
|
import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module';
|
||||||
|
import { ResearchEntitiesModule } from '../entity-groups/research-entities/research-entities.module';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
SharedModule,
|
SharedModule.withEntryComponents(),
|
||||||
ItemPageRoutingModule,
|
ItemPageRoutingModule,
|
||||||
EditItemPageModule,
|
EditItemPageModule,
|
||||||
StatisticsModule.forRoot()
|
StatisticsModule.forRoot(),
|
||||||
|
JournalEntitiesModule.withEntryComponents(),
|
||||||
|
ResearchEntitiesModule.withEntryComponents()
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
ItemPageComponent,
|
ItemPageComponent,
|
||||||
|
@@ -6,41 +6,23 @@ import { SharedModule } from '../shared/shared.module';
|
|||||||
import { MyDspacePageRoutingModule } from './my-dspace-page-routing.module';
|
import { MyDspacePageRoutingModule } from './my-dspace-page-routing.module';
|
||||||
import { MyDSpacePageComponent } from './my-dspace-page.component';
|
import { MyDSpacePageComponent } from './my-dspace-page.component';
|
||||||
import { MyDSpaceResultsComponent } from './my-dspace-results/my-dspace-results.component';
|
import { MyDSpaceResultsComponent } from './my-dspace-results/my-dspace-results.component';
|
||||||
import { WorkspaceItemSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component';
|
|
||||||
import { ClaimedSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component';
|
|
||||||
import { PoolSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component';
|
|
||||||
import { MyDSpaceNewSubmissionComponent } from './my-dspace-new-submission/my-dspace-new-submission.component';
|
import { MyDSpaceNewSubmissionComponent } from './my-dspace-new-submission/my-dspace-new-submission.component';
|
||||||
import { ItemSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component';
|
|
||||||
import { WorkspaceItemSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component';
|
|
||||||
import { WorkflowItemSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component';
|
|
||||||
import { ClaimedTaskSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component';
|
|
||||||
import { MyDSpaceGuard } from './my-dspace.guard';
|
import { MyDSpaceGuard } from './my-dspace.guard';
|
||||||
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
||||||
import { ItemSearchResultListElementSubmissionComponent } from '../shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component';
|
|
||||||
import { WorkflowItemSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component';
|
|
||||||
import { PoolSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component';
|
|
||||||
import { CollectionSelectorComponent } from './collection-selector/collection-selector.component';
|
import { CollectionSelectorComponent } from './collection-selector/collection-selector.component';
|
||||||
|
import { MyDspaceSearchModule } from './my-dspace-search.module';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
SharedModule,
|
SharedModule,
|
||||||
MyDspacePageRoutingModule,
|
MyDspacePageRoutingModule,
|
||||||
|
MyDspaceSearchModule.withEntryComponents()
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
MyDSpacePageComponent,
|
MyDSpacePageComponent,
|
||||||
MyDSpaceResultsComponent,
|
MyDSpaceResultsComponent,
|
||||||
WorkspaceItemSearchResultListElementComponent,
|
|
||||||
WorkflowItemSearchResultListElementComponent,
|
|
||||||
ClaimedSearchResultListElementComponent,
|
|
||||||
PoolSearchResultListElementComponent,
|
|
||||||
ItemSearchResultDetailElementComponent,
|
|
||||||
WorkspaceItemSearchResultDetailElementComponent,
|
|
||||||
WorkflowItemSearchResultDetailElementComponent,
|
|
||||||
ClaimedTaskSearchResultDetailElementComponent,
|
|
||||||
PoolSearchResultDetailElementComponent,
|
|
||||||
MyDSpaceNewSubmissionComponent,
|
MyDSpaceNewSubmissionComponent,
|
||||||
ItemSearchResultListElementSubmissionComponent,
|
|
||||||
CollectionSelectorComponent
|
CollectionSelectorComponent
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
|
57
src/app/+my-dspace-page/my-dspace-search.module.ts
Normal file
57
src/app/+my-dspace-page/my-dspace-search.module.ts
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
|
||||||
|
import { SharedModule } from '../shared/shared.module';
|
||||||
|
|
||||||
|
import { MyDspacePageRoutingModule } from './my-dspace-page-routing.module';
|
||||||
|
import { WorkspaceItemSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/workspace-item-search-result/workspace-item-search-result-list-element.component';
|
||||||
|
import { ClaimedSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/claimed-search-result/claimed-search-result-list-element.component';
|
||||||
|
import { PoolSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/pool-search-result/pool-search-result-list-element.component';
|
||||||
|
import { ItemSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/item-search-result/item-search-result-detail-element.component';
|
||||||
|
import { WorkspaceItemSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/workspace-item-search-result/workspace-item-search-result-detail-element.component';
|
||||||
|
import { WorkflowItemSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/workflow-item-search-result/workflow-item-search-result-detail-element.component';
|
||||||
|
import { ClaimedTaskSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/claimed-task-search-result/claimed-task-search-result-detail-element.component';
|
||||||
|
import { ItemSearchResultListElementSubmissionComponent } from '../shared/object-list/my-dspace-result-list-element/item-search-result/item-search-result-list-element-submission.component';
|
||||||
|
import { WorkflowItemSearchResultListElementComponent } from '../shared/object-list/my-dspace-result-list-element/workflow-item-search-result/workflow-item-search-result-list-element.component';
|
||||||
|
import { PoolSearchResultDetailElementComponent } from '../shared/object-detail/my-dspace-result-detail-element/pool-search-result/pool-search-result-detail-element.component';
|
||||||
|
|
||||||
|
const ENTRY_COMPONENTS = [
|
||||||
|
// put only entry components that use custom decorator
|
||||||
|
WorkspaceItemSearchResultListElementComponent,
|
||||||
|
WorkflowItemSearchResultListElementComponent,
|
||||||
|
ClaimedSearchResultListElementComponent,
|
||||||
|
PoolSearchResultListElementComponent,
|
||||||
|
ItemSearchResultDetailElementComponent,
|
||||||
|
WorkspaceItemSearchResultDetailElementComponent,
|
||||||
|
WorkflowItemSearchResultDetailElementComponent,
|
||||||
|
ClaimedTaskSearchResultDetailElementComponent,
|
||||||
|
PoolSearchResultDetailElementComponent,
|
||||||
|
ItemSearchResultListElementSubmissionComponent
|
||||||
|
];
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
SharedModule,
|
||||||
|
MyDspacePageRoutingModule,
|
||||||
|
],
|
||||||
|
declarations: [
|
||||||
|
...ENTRY_COMPONENTS
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This module handles all components that are necessary for the mydspace page
|
||||||
|
*/
|
||||||
|
export class MyDspaceSearchModule {
|
||||||
|
/**
|
||||||
|
* NOTE: this method allows to resolve issue with components that using a custom decorator
|
||||||
|
* which are not loaded during CSR otherwise
|
||||||
|
*/
|
||||||
|
static withEntryComponents() {
|
||||||
|
return {
|
||||||
|
ngModule: MyDspaceSearchModule,
|
||||||
|
providers: ENTRY_COMPONENTS.map((component) => ({provide: component}))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
@@ -11,6 +11,8 @@ import { SearchPageComponent } from './search-page.component';
|
|||||||
import { SidebarFilterService } from '../shared/sidebar/filter/sidebar-filter.service';
|
import { SidebarFilterService } from '../shared/sidebar/filter/sidebar-filter.service';
|
||||||
import { SearchFilterService } from '../core/shared/search/search-filter.service';
|
import { SearchFilterService } from '../core/shared/search/search-filter.service';
|
||||||
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
|
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
|
||||||
|
import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module';
|
||||||
|
import { ResearchEntitiesModule } from '../entity-groups/research-entities/research-entities.module';
|
||||||
|
|
||||||
const components = [
|
const components = [
|
||||||
SearchPageComponent,
|
SearchPageComponent,
|
||||||
@@ -21,9 +23,11 @@ const components = [
|
|||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
SharedModule,
|
SharedModule.withEntryComponents(),
|
||||||
CoreModule.forRoot(),
|
CoreModule.forRoot(),
|
||||||
StatisticsModule.forRoot()
|
StatisticsModule.forRoot(),
|
||||||
|
JournalEntitiesModule.withEntryComponents(),
|
||||||
|
ResearchEntitiesModule.withEntryComponents()
|
||||||
],
|
],
|
||||||
declarations: components,
|
declarations: components,
|
||||||
providers: [
|
providers: [
|
||||||
|
@@ -106,8 +106,8 @@ import { ForbiddenComponent } from './forbidden/forbidden.component';
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'browse',
|
path: 'browse',
|
||||||
loadChildren: () => import('./+browse-by/browse-by.module')
|
loadChildren: () => import('./+browse-by/browse-by-page.module')
|
||||||
.then((m) => m.BrowseByModule),
|
.then((m) => m.BrowseByPageModule),
|
||||||
canActivate: [EndUserAgreementCurrentUserGuard]
|
canActivate: [EndUserAgreementCurrentUserGuard]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@@ -25,8 +25,6 @@ import { CheckAuthenticationTokenAction } from './core/auth/auth.actions';
|
|||||||
|
|
||||||
import { CoreModule } from './core/core.module';
|
import { CoreModule } from './core/core.module';
|
||||||
import { ClientCookieService } from './core/services/client-cookie.service';
|
import { ClientCookieService } from './core/services/client-cookie.service';
|
||||||
import { JournalEntitiesModule } from './entity-groups/journal-entities/journal-entities.module';
|
|
||||||
import { ResearchEntitiesModule } from './entity-groups/research-entities/research-entities.module';
|
|
||||||
import { FooterComponent } from './footer/footer.component';
|
import { FooterComponent } from './footer/footer.component';
|
||||||
import { HeaderNavbarWrapperComponent } from './header-nav-wrapper/header-navbar-wrapper.component';
|
import { HeaderNavbarWrapperComponent } from './header-nav-wrapper/header-navbar-wrapper.component';
|
||||||
import { HeaderComponent } from './header/header.component';
|
import { HeaderComponent } from './header/header.component';
|
||||||
@@ -66,11 +64,6 @@ const IMPORTS = [
|
|||||||
StoreRouterConnectingModule.forRoot(),
|
StoreRouterConnectingModule.forRoot(),
|
||||||
];
|
];
|
||||||
|
|
||||||
const ENTITY_IMPORTS = [
|
|
||||||
JournalEntitiesModule,
|
|
||||||
ResearchEntitiesModule
|
|
||||||
];
|
|
||||||
|
|
||||||
IMPORTS.push(
|
IMPORTS.push(
|
||||||
StoreDevtoolsModule.instrument({
|
StoreDevtoolsModule.instrument({
|
||||||
maxAge: 1000,
|
maxAge: 1000,
|
||||||
@@ -127,8 +120,7 @@ const EXPORTS = [
|
|||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
BrowserModule.withServerTransition({ appId: 'serverApp' }),
|
BrowserModule.withServerTransition({ appId: 'serverApp' }),
|
||||||
...IMPORTS,
|
...IMPORTS
|
||||||
...ENTITY_IMPORTS
|
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
...PROVIDERS
|
...PROVIDERS
|
||||||
|
@@ -20,7 +20,8 @@ import { JournalVolumeSidebarSearchListElementComponent } from './item-list-elem
|
|||||||
import { JournalIssueSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/journal-issue/journal-issue-sidebar-search-list-element.component';
|
import { JournalIssueSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/journal-issue/journal-issue-sidebar-search-list-element.component';
|
||||||
import { JournalSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/journal/journal-sidebar-search-list-element.component';
|
import { JournalSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/journal/journal-sidebar-search-list-element.component';
|
||||||
|
|
||||||
const COMPONENTS = [
|
const ENTRY_COMPONENTS = [
|
||||||
|
// put only entry components that use custom decorator
|
||||||
JournalComponent,
|
JournalComponent,
|
||||||
JournalIssueComponent,
|
JournalIssueComponent,
|
||||||
JournalVolumeComponent,
|
JournalVolumeComponent,
|
||||||
@@ -47,9 +48,19 @@ const COMPONENTS = [
|
|||||||
SharedModule
|
SharedModule
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
...COMPONENTS
|
...ENTRY_COMPONENTS
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class JournalEntitiesModule {
|
export class JournalEntitiesModule {
|
||||||
|
/**
|
||||||
|
* NOTE: this method allows to resolve issue with components that using a custom decorator
|
||||||
|
* which are not loaded during CSR otherwise
|
||||||
|
*/
|
||||||
|
static withEntryComponents() {
|
||||||
|
return {
|
||||||
|
ngModule: JournalEntitiesModule,
|
||||||
|
providers: ENTRY_COMPONENTS.map((component) => ({provide: component}))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -28,7 +28,8 @@ import { OrgUnitSidebarSearchListElementComponent } from './item-list-elements/s
|
|||||||
import { PersonSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component';
|
import { PersonSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/person/person-sidebar-search-list-element.component';
|
||||||
import { ProjectSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/project/project-sidebar-search-list-element.component';
|
import { ProjectSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/project/project-sidebar-search-list-element.component';
|
||||||
|
|
||||||
const COMPONENTS = [
|
const ENTRY_COMPONENTS = [
|
||||||
|
// put only entry components that use custom decorator
|
||||||
OrgUnitComponent,
|
OrgUnitComponent,
|
||||||
PersonComponent,
|
PersonComponent,
|
||||||
ProjectComponent,
|
ProjectComponent,
|
||||||
@@ -47,8 +48,6 @@ const COMPONENTS = [
|
|||||||
OrgUnitSearchResultGridElementComponent,
|
OrgUnitSearchResultGridElementComponent,
|
||||||
ProjectSearchResultGridElementComponent,
|
ProjectSearchResultGridElementComponent,
|
||||||
PersonSearchResultListSubmissionElementComponent,
|
PersonSearchResultListSubmissionElementComponent,
|
||||||
PersonInputSuggestionsComponent,
|
|
||||||
NameVariantModalComponent,
|
|
||||||
OrgUnitSearchResultListSubmissionElementComponent,
|
OrgUnitSearchResultListSubmissionElementComponent,
|
||||||
OrgUnitInputSuggestionsComponent,
|
OrgUnitInputSuggestionsComponent,
|
||||||
ExternalSourceEntryListSubmissionElementComponent,
|
ExternalSourceEntryListSubmissionElementComponent,
|
||||||
@@ -57,6 +56,12 @@ const COMPONENTS = [
|
|||||||
ProjectSidebarSearchListElementComponent,
|
ProjectSidebarSearchListElementComponent,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const COMPONENTS = [
|
||||||
|
NameVariantModalComponent,
|
||||||
|
PersonInputSuggestionsComponent,
|
||||||
|
...ENTRY_COMPONENTS
|
||||||
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
CommonModule,
|
||||||
@@ -67,5 +72,14 @@ const COMPONENTS = [
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class ResearchEntitiesModule {
|
export class ResearchEntitiesModule {
|
||||||
|
/**
|
||||||
|
* NOTE: this method allows to resolve issue with components that using a custom decorator
|
||||||
|
* which are not loaded during CSR otherwise
|
||||||
|
*/
|
||||||
|
static withEntryComponents() {
|
||||||
|
return {
|
||||||
|
ngModule: ResearchEntitiesModule,
|
||||||
|
providers: ENTRY_COMPONENTS.map((component) => ({provide: component}))
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -437,11 +437,9 @@ const COMPONENTS = [
|
|||||||
SearchResultGridElementComponent,
|
SearchResultGridElementComponent,
|
||||||
ItemListElementComponent,
|
ItemListElementComponent,
|
||||||
ItemGridElementComponent,
|
ItemGridElementComponent,
|
||||||
ItemSearchResultListElementComponent,
|
|
||||||
ItemSearchResultGridElementComponent,
|
ItemSearchResultGridElementComponent,
|
||||||
BrowseEntryListElementComponent,
|
BrowseEntryListElementComponent,
|
||||||
SearchResultDetailElementComponent,
|
SearchResultDetailElementComponent,
|
||||||
BrowseEntryListElementComponent,
|
|
||||||
PlainTextMetadataListElementComponent,
|
PlainTextMetadataListElementComponent,
|
||||||
ItemMetadataListElementComponent,
|
ItemMetadataListElementComponent,
|
||||||
MetadataRepresentationListElementComponent,
|
MetadataRepresentationListElementComponent,
|
||||||
@@ -458,6 +456,59 @@ const COMPONENTS = [
|
|||||||
CommunitySidebarSearchListElementComponent,
|
CommunitySidebarSearchListElementComponent,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const ENTRY_COMPONENTS = [
|
||||||
|
// put only entry components that use custom decorator
|
||||||
|
CollectionListElementComponent,
|
||||||
|
CommunityListElementComponent,
|
||||||
|
SearchResultListElementComponent,
|
||||||
|
CommunitySearchResultListElementComponent,
|
||||||
|
CollectionSearchResultListElementComponent,
|
||||||
|
CollectionGridElementComponent,
|
||||||
|
CommunityGridElementComponent,
|
||||||
|
CommunitySearchResultGridElementComponent,
|
||||||
|
CollectionSearchResultGridElementComponent,
|
||||||
|
SearchResultGridElementComponent,
|
||||||
|
ItemListElementComponent,
|
||||||
|
ItemGridElementComponent,
|
||||||
|
ItemSearchResultListElementComponent,
|
||||||
|
ItemSearchResultGridElementComponent,
|
||||||
|
BrowseEntryListElementComponent,
|
||||||
|
SearchResultDetailElementComponent,
|
||||||
|
StartsWithDateComponent,
|
||||||
|
StartsWithTextComponent,
|
||||||
|
CreateCommunityParentSelectorComponent,
|
||||||
|
CreateCollectionParentSelectorComponent,
|
||||||
|
CreateItemParentSelectorComponent,
|
||||||
|
EditCommunitySelectorComponent,
|
||||||
|
EditCollectionSelectorComponent,
|
||||||
|
EditItemSelectorComponent,
|
||||||
|
PlainTextMetadataListElementComponent,
|
||||||
|
ItemMetadataListElementComponent,
|
||||||
|
MetadataRepresentationListElementComponent,
|
||||||
|
CustomSwitchComponent,
|
||||||
|
ItemMetadataRepresentationListElementComponent,
|
||||||
|
SearchResultsComponent,
|
||||||
|
SearchFacetFilterComponent,
|
||||||
|
SearchRangeFilterComponent,
|
||||||
|
SearchTextFilterComponent,
|
||||||
|
SearchHierarchyFilterComponent,
|
||||||
|
SearchBooleanFilterComponent,
|
||||||
|
SearchFacetOptionComponent,
|
||||||
|
SearchFacetSelectedOptionComponent,
|
||||||
|
SearchFacetRangeOptionComponent,
|
||||||
|
SearchAuthorityFilterComponent,
|
||||||
|
LogInPasswordComponent,
|
||||||
|
LogInShibbolethComponent,
|
||||||
|
BundleListElementComponent,
|
||||||
|
ClaimedTaskActionsApproveComponent,
|
||||||
|
ClaimedTaskActionsRejectComponent,
|
||||||
|
ClaimedTaskActionsReturnToPoolComponent,
|
||||||
|
ClaimedTaskActionsEditMetadataComponent,
|
||||||
|
PublicationSidebarSearchListElementComponent,
|
||||||
|
CollectionSidebarSearchListElementComponent,
|
||||||
|
CommunitySidebarSearchListElementComponent
|
||||||
|
];
|
||||||
|
|
||||||
const SHARED_SEARCH_PAGE_COMPONENTS = [
|
const SHARED_SEARCH_PAGE_COMPONENTS = [
|
||||||
ConfigurationSearchPageComponent
|
ConfigurationSearchPageComponent
|
||||||
];
|
];
|
||||||
@@ -536,5 +587,14 @@ const DIRECTIVES = [
|
|||||||
* This module handles all components and pipes that need to be shared among multiple other modules
|
* This module handles all components and pipes that need to be shared among multiple other modules
|
||||||
*/
|
*/
|
||||||
export class SharedModule {
|
export class SharedModule {
|
||||||
|
/**
|
||||||
|
* NOTE: this method allows to resolve issue with components that using a custom decorator
|
||||||
|
* which are not loaded during CSR otherwise
|
||||||
|
*/
|
||||||
|
static withEntryComponents() {
|
||||||
|
return {
|
||||||
|
ngModule: SharedModule,
|
||||||
|
providers: ENTRY_COMPONENTS.map((component) => ({provide: component}))
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,13 +2,13 @@ import { HttpClient, HttpClientModule } from '@angular/common/http';
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { BrowserModule, makeStateKey, TransferState } from '@angular/platform-browser';
|
import { BrowserModule, makeStateKey, TransferState } from '@angular/platform-browser';
|
||||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
import { RouterModule } from '@angular/router';
|
import { NoPreloading, RouterModule } from '@angular/router';
|
||||||
import { REQUEST } from '@nguniversal/express-engine/tokens';
|
import { REQUEST } from '@nguniversal/express-engine/tokens';
|
||||||
|
|
||||||
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
||||||
import { TranslateJson5HttpLoader } from '../../ngx-translate-loaders/translate-json5-http.loader';
|
import { TranslateJson5HttpLoader } from '../../ngx-translate-loaders/translate-json5-http.loader';
|
||||||
|
|
||||||
import { IdlePreload, IdlePreloadModule } from 'angular-idle-preload';
|
import { IdlePreloadModule } from 'angular-idle-preload';
|
||||||
|
|
||||||
import { AppComponent } from '../../app/app.component';
|
import { AppComponent } from '../../app/app.component';
|
||||||
|
|
||||||
@@ -26,7 +26,8 @@ import { KlaroService } from '../../app/shared/cookies/klaro.service';
|
|||||||
import { HardRedirectService } from '../../app/core/services/hard-redirect.service';
|
import { HardRedirectService } from '../../app/core/services/hard-redirect.service';
|
||||||
import {
|
import {
|
||||||
BrowserHardRedirectService,
|
BrowserHardRedirectService,
|
||||||
LocationToken, locationProvider
|
locationProvider,
|
||||||
|
LocationToken
|
||||||
} from '../../app/core/services/browser-hard-redirect.service';
|
} from '../../app/core/services/browser-hard-redirect.service';
|
||||||
|
|
||||||
export const REQ_KEY = makeStateKey<string>('req');
|
export const REQ_KEY = makeStateKey<string>('req');
|
||||||
@@ -52,8 +53,7 @@ export function getRequest(transferState: TransferState): any {
|
|||||||
// enableTracing: true,
|
// enableTracing: true,
|
||||||
useHash: false,
|
useHash: false,
|
||||||
scrollPositionRestoration: 'enabled',
|
scrollPositionRestoration: 'enabled',
|
||||||
preloadingStrategy:
|
preloadingStrategy: NoPreloading
|
||||||
IdlePreload
|
|
||||||
}),
|
}),
|
||||||
StatisticsModule.forRoot(),
|
StatisticsModule.forRoot(),
|
||||||
Angulartics2RouterlessModule.forRoot(),
|
Angulartics2RouterlessModule.forRoot(),
|
||||||
|
Reference in New Issue
Block a user