From 09e31e758d6111852933a43e998e134638051206 Mon Sep 17 00:00:00 2001 From: Michael Spalti Date: Wed, 21 Dec 2022 12:02:56 -0800 Subject: [PATCH] New modules for back button and browse-by --- src/app/browse-by/browse-by-page.module.ts | 9 +++++-- src/app/browse-by/browse-by.module.ts | 6 ++--- src/app/item-page/item-page.module.ts | 2 +- src/app/item-page/item-shared.module.ts | 4 ++- .../item-types/shared/item.component.ts | 2 +- .../results-back-button.module.ts | 21 +++++++++++++++ .../browse-by.component.html | 0 .../browse-by.component.scss | 0 .../browse-by.component.spec.ts | 10 ++++++- .../browse-by.component.ts | 0 .../shared-browse-by.module.ts | 26 +++++++++++++++++++ src/app/shared/shared.module.ts | 7 ++--- src/themes/custom/eager-theme.module.ts | 4 +++ src/themes/custom/lazy-theme.module.ts | 4 +++ src/themes/dspace/eager-theme.module.ts | 4 +++ src/themes/dspace/lazy-theme.module.ts | 6 +++++ 16 files changed, 91 insertions(+), 14 deletions(-) create mode 100644 src/app/shared/results-back-button/results-back-button.module.ts rename src/app/shared/{browse-by => shared-browse-by}/browse-by.component.html (100%) rename src/app/shared/{browse-by => shared-browse-by}/browse-by.component.scss (100%) rename src/app/shared/{browse-by => shared-browse-by}/browse-by.component.spec.ts (95%) rename src/app/shared/{browse-by => shared-browse-by}/browse-by.component.ts (100%) create mode 100644 src/app/shared/shared-browse-by/shared-browse-by.module.ts diff --git a/src/app/browse-by/browse-by-page.module.ts b/src/app/browse-by/browse-by-page.module.ts index fea6668b3c..d91be38726 100644 --- a/src/app/browse-by/browse-by-page.module.ts +++ b/src/app/browse-by/browse-by-page.module.ts @@ -4,16 +4,21 @@ 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'; +import { SharedBrowseByModule } from '../shared/shared-browse-by/shared-browse-by.module'; @NgModule({ imports: [ + SharedBrowseByModule, BrowseByRoutingModule, - BrowseByModule.withEntryComponents() + BrowseByModule.withEntryComponents(), ], providers: [ ItemDataService, BrowseService, - BrowseByGuard + BrowseByGuard, + ], + declarations: [ + ] }) export class BrowseByPageModule { diff --git a/src/app/browse-by/browse-by.module.ts b/src/app/browse-by/browse-by.module.ts index 14e21f8b4c..0a7f45c1e2 100644 --- a/src/app/browse-by/browse-by.module.ts +++ b/src/app/browse-by/browse-by.module.ts @@ -1,7 +1,6 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { BrowseByTitlePageComponent } from './browse-by-title-page/browse-by-title-page.component'; -import { SharedModule } from '../shared/shared.module'; 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 { BrowseBySwitcherComponent } from './browse-by-switcher/browse-by-switcher.component'; @@ -10,6 +9,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 { SharedBrowseByModule } from '../shared/shared-browse-by/shared-browse-by.module'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -25,9 +25,9 @@ const ENTRY_COMPONENTS = [ @NgModule({ imports: [ + SharedBrowseByModule, CommonModule, ComcolModule, - SharedModule ], declarations: [ BrowseBySwitcherComponent, @@ -45,7 +45,7 @@ export class BrowseByModule { */ static withEntryComponents() { return { - ngModule: SharedModule, + ngModule: SharedBrowseByModule, providers: ENTRY_COMPONENTS.map((component) => ({provide: component})) }; } diff --git a/src/app/item-page/item-page.module.ts b/src/app/item-page/item-page.module.ts index de9f2f60c5..c306935a05 100644 --- a/src/app/item-page/item-page.module.ts +++ b/src/app/item-page/item-page.module.ts @@ -96,7 +96,7 @@ const DECLARATIONS = [ ResearchEntitiesModule.withEntryComponents(), NgxGalleryModule, NgbAccordionModule, - UploadModule, + UploadModule ], declarations: [ ...DECLARATIONS, diff --git a/src/app/item-page/item-shared.module.ts b/src/app/item-page/item-shared.module.ts index b191b6c4b3..4bf271fc72 100644 --- a/src/app/item-page/item-shared.module.ts +++ b/src/app/item-page/item-shared.module.ts @@ -7,6 +7,7 @@ import { TranslateModule } from '@ngx-translate/core'; import { DYNAMIC_FORM_CONTROL_MAP_FN } from '@ng-dynamic-forms/core'; import { dsDynamicFormControlMapFn } from '../shared/form/builder/ds-dynamic-form-ui/ds-dynamic-form-control-container.component'; import { TabbedRelatedEntitiesSearchComponent } from './simple/related-entities/tabbed-related-entities-search/tabbed-related-entities-search.component'; +import { ResultsBackButtonModule } from '../shared/results-back-button/results-back-button.module'; const COMPONENTS = [ RelatedEntitiesSearchComponent, @@ -21,7 +22,8 @@ const COMPONENTS = [ CommonModule, SearchModule, SharedModule, - TranslateModule + TranslateModule, + ResultsBackButtonModule ], exports: [ ...COMPONENTS diff --git a/src/app/item-page/simple/item-types/shared/item.component.ts b/src/app/item-page/simple/item-types/shared/item.component.ts index 297886dfaa..8479bd541a 100644 --- a/src/app/item-page/simple/item-types/shared/item.component.ts +++ b/src/app/item-page/simple/item-types/shared/item.component.ts @@ -58,7 +58,7 @@ export class ItemComponent implements OnInit { // Show the back to results button when the previous context was search, browse, // or recent submissions pagination. this.showBackButton = this.routeService.getPreviousUrl().pipe( - filter(url => /^(\/search|\/browse|\/collections)/.test(url)), + filter(url => /^(\/search|\/browse|\/collections|\/admin\/search|\/mydspace)/.test(url)), take(1), map(() => true) ); diff --git a/src/app/shared/results-back-button/results-back-button.module.ts b/src/app/shared/results-back-button/results-back-button.module.ts new file mode 100644 index 0000000000..64275ac7c0 --- /dev/null +++ b/src/app/shared/results-back-button/results-back-button.module.ts @@ -0,0 +1,21 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; +import { ResultsBackButtonComponent } from './results-back-button.component'; + + +@NgModule({ + declarations: [ + ResultsBackButtonComponent + ], + imports: [ + CommonModule, + TranslateModule + ], + exports: [ + ResultsBackButtonComponent + ] +}) +export class ResultsBackButtonModule { + +} diff --git a/src/app/shared/browse-by/browse-by.component.html b/src/app/shared/shared-browse-by/browse-by.component.html similarity index 100% rename from src/app/shared/browse-by/browse-by.component.html rename to src/app/shared/shared-browse-by/browse-by.component.html diff --git a/src/app/shared/browse-by/browse-by.component.scss b/src/app/shared/shared-browse-by/browse-by.component.scss similarity index 100% rename from src/app/shared/browse-by/browse-by.component.scss rename to src/app/shared/shared-browse-by/browse-by.component.scss diff --git a/src/app/shared/browse-by/browse-by.component.spec.ts b/src/app/shared/shared-browse-by/browse-by.component.spec.ts similarity index 95% rename from src/app/shared/browse-by/browse-by.component.spec.ts rename to src/app/shared/shared-browse-by/browse-by.component.spec.ts index 95c0a8fb32..425488c3ca 100644 --- a/src/app/shared/browse-by/browse-by.component.spec.ts +++ b/src/app/shared/shared-browse-by/browse-by.component.spec.ts @@ -44,6 +44,10 @@ import { ConfigurationProperty } from '../../core/shared/configuration-property. import { SearchConfigurationServiceStub } from '../testing/search-configuration-service.stub'; import { SearchConfigurationService } from '../../core/shared/search/search-configuration.service'; import { getMockThemeService } from '../mocks/theme-service.mock'; +import { ResultsBackButtonModule } from '../results-back-button/results-back-button.module'; +import { SharedModule } from '../shared.module'; +import { BrowseByRoutingModule } from '../../browse-by/browse-by-routing.module'; +import { AccessControlRoutingModule } from '../../access-control/access-control-routing.module'; @listableObjectComponent(BrowseEntry, ViewMode.ListElement, DEFAULT_CONTEXT, 'custom') @Component({ @@ -112,7 +116,11 @@ describe('BrowseByComponent', () => { themeService = getMockThemeService('dspace'); TestBed.configureTestingModule({ imports: [ + ResultsBackButtonModule, + BrowseByRoutingModule, + AccessControlRoutingModule, CommonModule, + SharedModule, NgbModule, TranslateModule.forRoot({ loader: { @@ -123,7 +131,7 @@ describe('BrowseByComponent', () => { RouterTestingModule, NoopAnimationsModule ], - declarations: [], + declarations: [BrowseByComponent], providers: [ { provide: SearchConfigurationService, useValue: new SearchConfigurationServiceStub() }, { provide: ConfigurationDataService, useValue: configurationDataService }, diff --git a/src/app/shared/browse-by/browse-by.component.ts b/src/app/shared/shared-browse-by/browse-by.component.ts similarity index 100% rename from src/app/shared/browse-by/browse-by.component.ts rename to src/app/shared/shared-browse-by/browse-by.component.ts diff --git a/src/app/shared/shared-browse-by/shared-browse-by.module.ts b/src/app/shared/shared-browse-by/shared-browse-by.module.ts new file mode 100644 index 0000000000..2036bbe02c --- /dev/null +++ b/src/app/shared/shared-browse-by/shared-browse-by.module.ts @@ -0,0 +1,26 @@ +import { NgModule } from '@angular/core'; +import { BrowseByComponent } from './browse-by.component'; +import { CommonModule } from '@angular/common'; +import { SharedModule } from '../shared.module'; +import { ResultsBackButtonModule } from '../results-back-button/results-back-button.module'; +import { BrowseByRoutingModule } from '../../browse-by/browse-by-routing.module'; +import { AccessControlRoutingModule } from '../../access-control/access-control-routing.module'; + +@NgModule({ + declarations: [ + BrowseByComponent, +], + imports: [ + ResultsBackButtonModule, + BrowseByRoutingModule, + AccessControlRoutingModule, + CommonModule, + SharedModule, + + ], + exports: [ + BrowseByComponent, + SharedModule, + ] +}) +export class SharedBrowseByModule { } diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 26c4de8dc2..3947b22083 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -95,7 +95,6 @@ import { ClaimedTaskActionsRejectComponent } from './mydspace-actions/claimed-task/reject/claimed-task-actions-reject.component'; import { ObjNgFor } from './utils/object-ngfor.pipe'; -import { BrowseByComponent } from './browse-by/browse-by.component'; import { BrowseEntryListElementComponent } from './object-list/browse-entry-list-element/browse-entry-list-element.component'; @@ -317,7 +316,6 @@ import { } from './object-list/listable-notification-object/listable-notification-object.component'; import { ThemedResultsBackButtonComponent } from './results-back-button/themed-results-back-button.component'; import { ThemedCollectionDropdownComponent } from './collection-dropdown/themed-collection-dropdown.component'; -import { ResultsBackButtonComponent } from './results-back-button/results-back-button.component'; const MODULES = [ @@ -338,7 +336,7 @@ const MODULES = [ DragDropModule, CdkTreeModule, GoogleRecaptchaModule, - MenuModule, + MenuModule ]; const ROOT_MODULES = [ @@ -398,7 +396,6 @@ const COMPONENTS = [ ItemSubmitterComponent, ItemDetailPreviewComponent, ItemDetailPreviewFieldComponent, - ResultsBackButtonComponent, ThemedResultsBackButtonComponent, ClaimedTaskActionsComponent, ClaimedTaskActionsLoaderComponent, @@ -409,7 +406,7 @@ const COMPONENTS = [ ViewModeSwitchComponent, TruncatableComponent, TruncatablePartComponent, - BrowseByComponent, + // BrowseByComponent, InputSuggestionsComponent, FilterInputSuggestionsComponent, ValidationSuggestionsComponent, diff --git a/src/themes/custom/eager-theme.module.ts b/src/themes/custom/eager-theme.module.ts index 93480cae57..7e30ca734e 100644 --- a/src/themes/custom/eager-theme.module.ts +++ b/src/themes/custom/eager-theme.module.ts @@ -45,6 +45,8 @@ import { CommunityListElementComponent } from './app/shared/object-list/communit import { CollectionListElementComponent} from './app/shared/object-list/collection-list-element/collection-list-element.component'; import { ResultsBackButtonComponent } from './app/shared/results-back-button/results-back-button.component'; import { CollectionDropdownComponent } from './app/shared/collection-dropdown/collection-dropdown.component'; +import { SharedBrowseByModule } from '../../app/shared/shared-browse-by/shared-browse-by.module'; +import { ResultsBackButtonModule } from '../../app/shared/results-back-button/results-back-button.module'; /** @@ -84,6 +86,8 @@ const DECLARATIONS = [ imports: [ CommonModule, SharedModule, + SharedBrowseByModule, + ResultsBackButtonModule, SearchModule, FormsModule, RootModule, diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index 2ff4af7946..868a2c59a2 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -117,6 +117,8 @@ import { BrowseByTitlePageComponent } from './app/browse-by/browse-by-title-page import { ExternalSourceEntryImportModalComponent } 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 { SharedBrowseByModule } from '../../app/shared/shared-browse-by/shared-browse-by.module'; +import { ResultsBackButtonModule } from '../../app/shared/results-back-button/results-back-button.module'; const DECLARATIONS = [ FileSectionComponent, @@ -212,6 +214,8 @@ const DECLARATIONS = [ ScrollToModule, SearchPageModule, SharedModule, + SharedBrowseByModule, + ResultsBackButtonModule, StatisticsModule, StatisticsPageModule, StoreModule, diff --git a/src/themes/dspace/eager-theme.module.ts b/src/themes/dspace/eager-theme.module.ts index 5dd114cd72..d9cb24c808 100644 --- a/src/themes/dspace/eager-theme.module.ts +++ b/src/themes/dspace/eager-theme.module.ts @@ -9,6 +9,8 @@ import { HeaderNavbarWrapperComponent } from './app/header-nav-wrapper/header-na import { SearchModule } from '../../app/shared/search/search.module'; import { RootModule } from '../../app/root.module'; import { NavbarModule } from '../../app/navbar/navbar.module'; +import { SharedBrowseByModule } from '../../app/shared/shared-browse-by/shared-browse-by.module'; +import { ResultsBackButtonModule } from '../../app/shared/results-back-button/results-back-button.module'; /** * Add components that use a custom decorator to ENTRY_COMPONENTS as well as DECLARATIONS. @@ -30,6 +32,8 @@ const DECLARATIONS = [ CommonModule, SharedModule, SearchModule, + SharedBrowseByModule, + ResultsBackButtonModule, FormsModule, RootModule, NavbarModule, diff --git a/src/themes/dspace/lazy-theme.module.ts b/src/themes/dspace/lazy-theme.module.ts index a4e8027a15..9aa24377a2 100644 --- a/src/themes/dspace/lazy-theme.module.ts +++ b/src/themes/dspace/lazy-theme.module.ts @@ -55,6 +55,9 @@ import { } from '../../app/shared/resource-policies/resource-policies.module'; import { ComcolModule } from '../../app/shared/comcol/comcol.module'; import { RootModule } from '../../app/root.module'; +import { BrowseByPageModule } from '../../app/browse-by/browse-by-page.module'; +import { ResultsBackButtonModule } from '../../app/shared/results-back-button/results-back-button.module'; +import { SharedBrowseByModule } from '../../app/shared/shared-browse-by/shared-browse-by.module'; const DECLARATIONS = [ ]; @@ -68,6 +71,8 @@ const DECLARATIONS = [ RootModule, BitstreamFormatsModule, BrowseByModule, + BrowseByPageModule, + ResultsBackButtonModule, CollectionFormModule, CollectionPageModule, CommonModule, @@ -95,6 +100,7 @@ const DECLARATIONS = [ ScrollToModule, SearchPageModule, SharedModule, + SharedBrowseByModule, StatisticsModule, StatisticsPageModule, StoreModule,