diff --git a/src/app/browse-by/browse-by.module.ts b/src/app/browse-by/browse-by.module.ts index 14e21f8b4c..07165b1a28 100644 --- a/src/app/browse-by/browse-by.module.ts +++ b/src/app/browse-by/browse-by.module.ts @@ -10,6 +10,7 @@ import { ComcolModule } from '../shared/comcol/comcol.module'; import { ThemedBrowseByMetadataPageComponent } from './browse-by-metadata-page/themed-browse-by-metadata-page.component'; import { ThemedBrowseByDatePageComponent } from './browse-by-date-page/themed-browse-by-date-page.component'; import { ThemedBrowseByTitlePageComponent } from './browse-by-title-page/themed-browse-by-title-page.component'; +import { DsoPageModule } from '../shared/dso-page/dso-page.module'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -27,7 +28,8 @@ const ENTRY_COMPONENTS = [ imports: [ CommonModule, ComcolModule, - SharedModule + SharedModule, + DsoPageModule ], declarations: [ BrowseBySwitcherComponent, diff --git a/src/app/collection-page/collection-page.module.ts b/src/app/collection-page/collection-page.module.ts index ff49b983ff..e032694e0e 100644 --- a/src/app/collection-page/collection-page.module.ts +++ b/src/app/collection-page/collection-page.module.ts @@ -16,6 +16,7 @@ import { StatisticsModule } from '../statistics/statistics.module'; import { CollectionFormModule } from './collection-form/collection-form.module'; import { ThemedCollectionPageComponent } from './themed-collection-page.component'; import { ComcolModule } from '../shared/comcol/comcol.module'; +import { DsoPageModule } from '../shared/dso-page/dso-page.module'; @NgModule({ imports: [ @@ -26,6 +27,7 @@ import { ComcolModule } from '../shared/comcol/comcol.module'; EditItemPageModule, CollectionFormModule, ComcolModule, + DsoPageModule, ], declarations: [ CollectionPageComponent, diff --git a/src/app/community-page/community-page.module.ts b/src/app/community-page/community-page.module.ts index 1dd9e82499..45ffb2a786 100644 --- a/src/app/community-page/community-page.module.ts +++ b/src/app/community-page/community-page.module.ts @@ -19,6 +19,7 @@ import { import { ThemedCollectionPageSubCollectionListComponent } from './sub-collection-list/themed-community-page-sub-collection-list.component'; +import { DsoPageModule } from '../shared/dso-page/dso-page.module'; const DECLARATIONS = [CommunityPageComponent, ThemedCommunityPageComponent, @@ -37,6 +38,7 @@ const DECLARATIONS = [CommunityPageComponent, StatisticsModule.forRoot(), CommunityFormModule, ComcolModule, + DsoPageModule, ], declarations: [ ...DECLARATIONS diff --git a/src/app/entity-groups/journal-entities/journal-entities.module.ts b/src/app/entity-groups/journal-entities/journal-entities.module.ts index 3bf861e10d..9c214468d5 100644 --- a/src/app/entity-groups/journal-entities/journal-entities.module.ts +++ b/src/app/entity-groups/journal-entities/journal-entities.module.ts @@ -20,6 +20,7 @@ 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 { JournalSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/journal/journal-sidebar-search-list-element.component'; import { ItemSharedModule } from '../../item-page/item-shared.module'; +import { DsoPageModule } from '../../shared/dso-page/dso-page.module'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -47,7 +48,8 @@ const ENTRY_COMPONENTS = [ imports: [ CommonModule, ItemSharedModule, - SharedModule + SharedModule, + DsoPageModule ], declarations: [ ...ENTRY_COMPONENTS diff --git a/src/app/entity-groups/research-entities/research-entities.module.ts b/src/app/entity-groups/research-entities/research-entities.module.ts index 721a22be08..d115f61784 100644 --- a/src/app/entity-groups/research-entities/research-entities.module.ts +++ b/src/app/entity-groups/research-entities/research-entities.module.ts @@ -29,6 +29,7 @@ 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 { ProjectSidebarSearchListElementComponent } from './item-list-elements/sidebar-search-list-elements/project/project-sidebar-search-list-element.component'; import { ItemSharedModule } from '../../item-page/item-shared.module'; +import { DsoPageModule } from '../../shared/dso-page/dso-page.module'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -69,7 +70,8 @@ const COMPONENTS = [ CommonModule, ItemSharedModule, SharedModule, - NgbTooltipModule + NgbTooltipModule, + DsoPageModule ], declarations: [ ...COMPONENTS, diff --git a/src/app/item-page/item-page.module.ts b/src/app/item-page/item-page.module.ts index 5842e9e17e..bbe43ec590 100644 --- a/src/app/item-page/item-page.module.ts +++ b/src/app/item-page/item-page.module.ts @@ -51,6 +51,7 @@ import { ItemVersionsModule } from './versions/item-versions.module'; import { BitstreamRequestACopyPageComponent } from './bitstreams/request-a-copy/bitstream-request-a-copy-page.component'; import { FileSectionComponent } from './simple/field-components/file-section/file-section.component'; import { ItemSharedModule } from './item-shared.module'; +import { DsoPageModule } from '../shared/dso-page/dso-page.module'; const ENTRY_COMPONENTS = [ @@ -89,7 +90,6 @@ const DECLARATIONS = [ OrcidSyncSettingsComponent, OrcidQueueComponent, ItemAlertsComponent, - VersionedItemComponent, BitstreamRequestACopyPageComponent, ]; @@ -107,6 +107,7 @@ const DECLARATIONS = [ NgxGalleryModule, NgbAccordionModule, UploadModule, + DsoPageModule, ], declarations: [ ...DECLARATIONS, diff --git a/src/app/item-page/item-shared.module.ts b/src/app/item-page/item-shared.module.ts index c558b11692..0249e3cf22 100644 --- a/src/app/item-page/item-shared.module.ts +++ b/src/app/item-page/item-shared.module.ts @@ -10,16 +10,14 @@ import { TabbedRelatedEntitiesSearchComponent } from './simple/related-entities/ 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 { DsoPageVersionButtonComponent } from '../shared/dso-page/dso-page-version-button/dso-page-version-button.component'; -import { PersonPageClaimButtonComponent } from '../shared/dso-page/person-page-claim-button/person-page-claim-button.component'; import { 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 { DsoPageOrcidButtonComponent } from '../shared/dso-page/dso-page-orcid-button/dso-page-orcid-button.component'; const ENTRY_COMPONENTS = [ ItemVersionsDeleteModalComponent, ItemVersionsSummaryModalComponent, + ]; const COMPONENTS = [ @@ -27,12 +25,9 @@ const COMPONENTS = [ RelatedEntitiesSearchComponent, TabbedRelatedEntitiesSearchComponent, MetadataValuesComponent, - DsoPageVersionButtonComponent, - PersonPageClaimButtonComponent, GenericItemPageFieldComponent, MetadataRepresentationListComponent, RelatedItemsComponent, - DsoPageOrcidButtonComponent ]; @NgModule({ diff --git a/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu.component.spec.ts b/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu.component.spec.ts index 1502407081..5616e8ea10 100644 --- a/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu.component.spec.ts +++ b/src/app/shared/dso-page/dso-edit-menu/dso-edit-menu.component.spec.ts @@ -1,6 +1,6 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { TranslateModule } from '@ngx-translate/core'; -import { ChangeDetectionStrategy, Injector, NO_ERRORS_SCHEMA } from '@angular/core'; +import { Injector, NO_ERRORS_SCHEMA } from '@angular/core'; import { of as observableOf } from 'rxjs'; import { RouterTestingModule } from '@angular/router/testing'; import { ActivatedRoute } from '@angular/router'; @@ -10,13 +10,13 @@ import { AuthorizationDataService } from '../../../core/data/feature-authorizati import { AuthService } from '../../../core/auth/auth.service'; import { AuthServiceStub } from '../../testing/auth-service.stub'; import { MenuService } from '../../menu/menu.service'; -import { - ExpandableNavbarSectionComponent -} from '../../../navbar/expandable-navbar-section/expandable-navbar-section.component'; import { MenuItemModel } from '../../menu/menu-item/models/menu-item.model'; import { ThemeService } from '../../theme-support/theme.service'; import { getMockThemeService } from '../../mocks/theme-service.mock'; + +import { DsoPageModule } from '../dso-page.module'; + describe('DsoEditMenuComponent', () => { let comp: DsoEditMenuComponent; let fixture: ComponentFixture; @@ -46,7 +46,7 @@ describe('DsoEditMenuComponent', () => { }); spyOn(menuService, 'getMenuTopSections').and.returnValue(observableOf([section])); TestBed.configureTestingModule({ - imports: [TranslateModule.forRoot(), RouterTestingModule], + imports: [TranslateModule.forRoot(), RouterTestingModule, DsoPageModule], declarations: [DsoEditMenuComponent], providers: [ Injector, @@ -54,15 +54,10 @@ describe('DsoEditMenuComponent', () => { {provide: AuthService, useClass: AuthServiceStub}, {provide: ActivatedRoute, useValue: routeStub}, {provide: AuthorizationDataService, useValue: authorizationService}, - { provide: ThemeService, useValue: getMockThemeService() }, + {provide: ThemeService, useValue: getMockThemeService()}, ], schemas: [NO_ERRORS_SCHEMA] - }).overrideComponent(ExpandableNavbarSectionComponent, { - set: { - changeDetection: ChangeDetectionStrategy.Default, - } - }) - .compileComponents(); + }).compileComponents(); })); beforeEach(() => { diff --git a/src/app/shared/dso-page/dso-page.module.ts b/src/app/shared/dso-page/dso-page.module.ts index e69de29bb2..6820e8eb53 100644 --- a/src/app/shared/dso-page/dso-page.module.ts +++ b/src/app/shared/dso-page/dso-page.module.ts @@ -0,0 +1,55 @@ +import { NgModule } from '@angular/core'; +import { TranslateModule } from '@ngx-translate/core'; +import { RouterModule } from '@angular/router'; +import { CommonModule } from '@angular/common'; +import { DsoEditMenuComponent } from '../dso-page/dso-edit-menu/dso-edit-menu.component'; +import { + DsoEditMenuSectionComponent +} from '../dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component'; +import { + DsoEditMenuExpandableSectionComponent +} from '../dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component'; +import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; + +const COMPONENTS = [ + DsoEditMenuComponent, + DsoEditMenuSectionComponent, + DsoEditMenuExpandableSectionComponent, +]; + +const ENTRY_COMPONENTS = [ +]; + +const MODULES = [ + TranslateModule, + RouterModule, + CommonModule, + NgbTooltipModule, +]; +const PROVIDERS = [ + +]; + +@NgModule({ + imports: [ + ...MODULES + ], + declarations: [ + ...COMPONENTS, + ...ENTRY_COMPONENTS, + ], + providers: [ + ...PROVIDERS, + ...ENTRY_COMPONENTS, + ], + exports: [ + ...COMPONENTS + ] +}) + +/** + * This module handles all components, providers and modules that are needed for the menu + */ +export class DsoPageModule { + +} diff --git a/src/app/shared/dso-page/dso-versioning-modal-service/dso-versioning-modal.service.ts b/src/app/shared/dso-page/dso-versioning-modal-service/dso-versioning-modal.service.ts index 708b0431e7..46792294dd 100644 --- a/src/app/shared/dso-page/dso-versioning-modal-service/dso-versioning-modal.service.ts +++ b/src/app/shared/dso-page/dso-versioning-modal-service/dso-versioning-modal.service.ts @@ -1,6 +1,3 @@ -import { - ItemVersionsSummaryModalComponent -} from '../../item/item-versions/item-versions-summary-modal/item-versions-summary-modal.component'; import { getFirstCompletedRemoteData, getFirstSucceededRemoteDataPayload } from '../../../core/shared/operators'; import { RemoteData } from '../../../core/data/remote-data'; import { Version } from '../../../core/shared/version.model'; @@ -10,12 +7,15 @@ import { WorkspaceItem } from '../../../core/submission/models/workspaceitem.mod import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { VersionDataService } from '../../../core/data/version-data.service'; import { VersionHistoryDataService } from '../../../core/data/version-history-data.service'; -import { ItemVersionsSharedService } from '../../item/item-versions/item-versions-shared.service'; import { Router } from '@angular/router'; import { WorkspaceitemDataService } from '../../../core/submission/workspaceitem-data.service'; import { ItemDataService } from '../../../core/data/item-data.service'; import { Injectable } from '@angular/core'; import { Observable, of } from 'rxjs'; +import { ItemVersionsSharedService } from '../../../item-page/versions/item-versions-shared.service'; +import { + ItemVersionsSummaryModalComponent +} from '../../../item-page/versions/item-versions-summary-modal/item-versions-summary-modal.component'; /** * Service to take care of all the functionality related to the version creation modal @@ -25,6 +25,7 @@ import { Observable, of } from 'rxjs'; }) export class DsoVersioningModalService { + constructor( protected modalService: NgbModal, protected versionService: VersionDataService, diff --git a/src/app/shared/menu/menu.module.ts b/src/app/shared/menu/menu.module.ts index c007af517d..28bdab9987 100644 --- a/src/app/shared/menu/menu.module.ts +++ b/src/app/shared/menu/menu.module.ts @@ -24,7 +24,7 @@ const ENTRY_COMPONENTS = [ const MODULES = [ TranslateModule, RouterModule, - CommonModule + CommonModule, ]; const PROVIDERS = [ diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 095af56c56..445ee82c83 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -101,19 +101,19 @@ import { CreateCommunityParentSelectorComponent } from './dso-selector/modal-wrappers/create-community-parent-selector/create-community-parent-selector.component'; import { - ThemedCreateCommunityParentSelectorComponent + ThemedCreateCommunityParentSelectorComponent } from './dso-selector/modal-wrappers/create-community-parent-selector/themed-create-community-parent-selector.component'; import { CreateItemParentSelectorComponent } from './dso-selector/modal-wrappers/create-item-parent-selector/create-item-parent-selector.component'; import { - ThemedCreateItemParentSelectorComponent + ThemedCreateItemParentSelectorComponent } from './dso-selector/modal-wrappers/create-item-parent-selector/themed-create-item-parent-selector.component'; import { CreateCollectionParentSelectorComponent } from './dso-selector/modal-wrappers/create-collection-parent-selector/create-collection-parent-selector.component'; import { - ThemedCreateCollectionParentSelectorComponent + ThemedCreateCollectionParentSelectorComponent } from './dso-selector/modal-wrappers/create-collection-parent-selector/themed-create-collection-parent-selector.component'; import { CommunitySearchResultListElementComponent @@ -125,19 +125,19 @@ import { EditItemSelectorComponent } from './dso-selector/modal-wrappers/edit-item-selector/edit-item-selector.component'; import { - ThemedEditItemSelectorComponent + ThemedEditItemSelectorComponent } from './dso-selector/modal-wrappers/edit-item-selector/themed-edit-item-selector.component'; import { EditCommunitySelectorComponent } from './dso-selector/modal-wrappers/edit-community-selector/edit-community-selector.component'; import { - ThemedEditCommunitySelectorComponent + ThemedEditCommunitySelectorComponent } from './dso-selector/modal-wrappers/edit-community-selector/themed-edit-community-selector.component'; import { EditCollectionSelectorComponent } from './dso-selector/modal-wrappers/edit-collection-selector/edit-collection-selector.component'; import { - ThemedEditCollectionSelectorComponent + ThemedEditCollectionSelectorComponent } from './dso-selector/modal-wrappers/edit-collection-selector/themed-edit-collection-selector.component'; import { RoleDirective } from './roles/role.directive'; import { UserMenuComponent } from './auth-nav-menu/user-menu/user-menu.component'; @@ -238,13 +238,6 @@ import { ItemPageTitleFieldComponent } from '../item-page/simple/field-components/specific-field/title/item-page-title-field.component'; import { MarkdownPipe } from './utils/markdown.pipe'; -import { - DsoEditMenuSectionComponent -} from './dso-page/dso-edit-menu/dso-edit-menu-section/dso-edit-menu-section.component'; -import { DsoEditMenuComponent } from './dso-page/dso-edit-menu/dso-edit-menu.component'; -import { - DsoEditMenuExpandableSectionComponent -} from './dso-page/dso-edit-menu/dso-edit-expandable-menu-section/dso-edit-menu-expandable-section.component'; import { GoogleRecaptchaModule } from '../core/google-recaptcha/google-recaptcha.module'; import { MenuModule } from './menu/menu.module'; import { @@ -351,7 +344,6 @@ const COMPONENTS = [ ItemPageTitleFieldComponent, ThemedSearchNavbarComponent, ListableNotificationObjectComponent, - DsoPageEditButtonComponent, MetadataFieldWrapperComponent, ]; @@ -409,9 +401,6 @@ const ENTRY_COMPONENTS = [ CommunitySidebarSearchListElementComponent, ScopeSelectorModalComponent, ListableNotificationObjectComponent, - ExternalLinkMenuItemComponent, - DsoEditMenuSectionComponent, - DsoEditMenuExpandableSectionComponent, ]; const PROVIDERS = [ diff --git a/src/themes/custom/eager-theme.module.ts b/src/themes/custom/eager-theme.module.ts index 50b56252d3..ed0f1a9285 100644 --- a/src/themes/custom/eager-theme.module.ts +++ b/src/themes/custom/eager-theme.module.ts @@ -42,6 +42,7 @@ import { import { CommunityListElementComponent } from './app/shared/object-list/community-list-element/community-list-element.component'; import { CollectionListElementComponent } from './app/shared/object-list/collection-list-element/collection-list-element.component'; import { CollectionDropdownComponent } from './app/shared/collection-dropdown/collection-dropdown.component'; +import { DsoPageModule } from '../../app/shared/dso-page/dso-page.module'; /** @@ -84,6 +85,7 @@ const DECLARATIONS = [ NavbarModule, ItemPageModule, ItemSharedModule, + DsoPageModule, ], declarations: DECLARATIONS, providers: [ diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index 871764bc66..701c1e656f 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -119,6 +119,7 @@ import { } from './app/shared/form/builder/ds-dynamic-form-ui/relation-lookup-modal/external-source-tab/external-source-entry-import-modal/external-source-entry-import-modal.component'; import { ItemVersionsModule } from '../../app/item-page/versions/item-versions.module'; import { ItemSharedModule } from '../../app/item-page/item-shared.module'; +import { DsoPageModule } from '../../app/shared/dso-page/dso-page.module'; const DECLARATIONS = [ FileSectionComponent, @@ -206,6 +207,7 @@ const DECLARATIONS = [ InfoModule, JournalEntitiesModule, MenuModule, + DsoPageModule, MyDspaceSearchModule, NavbarModule, NgbModule, diff --git a/src/themes/dspace/eager-theme.module.ts b/src/themes/dspace/eager-theme.module.ts index 584c83a617..015283a0d6 100644 --- a/src/themes/dspace/eager-theme.module.ts +++ b/src/themes/dspace/eager-theme.module.ts @@ -12,8 +12,7 @@ import { NavbarModule } from '../../app/navbar/navbar.module'; * Add components that use a custom decorator to ENTRY_COMPONENTS as well as DECLARATIONS. * This will ensure that decorator gets picked up when the app loads */ -const ENTRY_COMPONENTS = [ -]; +const ENTRY_COMPONENTS = []; const DECLARATIONS = [ ...ENTRY_COMPONENTS, @@ -32,7 +31,7 @@ const DECLARATIONS = [ ], declarations: DECLARATIONS, providers: [ - ...ENTRY_COMPONENTS.map((component) => ({ provide: component })) + ...ENTRY_COMPONENTS.map((component) => ({provide: component})) ], }) /**