From 9979d8664d4562e5f79c4cabec711ff66f8f02e0 Mon Sep 17 00:00:00 2001 From: lotte Date: Wed, 11 Jan 2023 10:27:30 +0100 Subject: [PATCH 001/162] Made SearchFiltersComponent themeable --- .../themed-search-filters.component.ts | 35 +++++++++++++++++++ .../search-sidebar.component.html | 4 +-- src/app/shared/search/search.module.ts | 4 ++- .../search-filters.component.html | 1 + .../search-filters.component.scss | 0 .../search-filters.component.ts | 32 +++++++++++++++++ src/themes/custom/theme.module.ts | 4 ++- 7 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 src/app/shared/search/search-filters/themed-search-filters.component.ts create mode 100644 src/themes/custom/app/shared/search/search-filters/search-filters.component.html create mode 100644 src/themes/custom/app/shared/search/search-filters/search-filters.component.scss create mode 100644 src/themes/custom/app/shared/search/search-filters/search-filters.component.ts diff --git a/src/app/shared/search/search-filters/themed-search-filters.component.ts b/src/app/shared/search/search-filters/themed-search-filters.component.ts new file mode 100644 index 0000000000..7bf2d3d0ac --- /dev/null +++ b/src/app/shared/search/search-filters/themed-search-filters.component.ts @@ -0,0 +1,35 @@ +import { Component, Input } from '@angular/core'; +import { ThemedComponent } from '../../theme-support/themed.component'; +import { SearchFiltersComponent } from './search-filters.component'; +import { Observable } from 'rxjs/internal/Observable'; + +/** + * Themed wrapper for SearchFiltersComponent + */ +@Component({ + selector: 'ds-themed-search-filters', + styleUrls: [], + templateUrl: '../../theme-support/themed.component.html', +}) +export class ThemedSearchFiltersComponent extends ThemedComponent { + + @Input() currentConfiguration; + @Input() currentScope: string; + @Input() inPlaceSearch; + @Input() refreshFilters: Observable; + + protected inAndOutputNames: (keyof SearchFiltersComponent & keyof this)[] = [ + 'currentConfiguration', 'currentScope', 'inPlaceSearch', 'refreshFilters']; + + protected getComponentName(): string { + return 'SearchFiltersComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../themes/${themeName}/app/shared/search/search-filters/search-filters.component`); + } + + protected importUnthemedComponent(): Promise { + return import('./search-filters.component'); + } +} diff --git a/src/app/shared/search/search-sidebar/search-sidebar.component.html b/src/app/shared/search/search-sidebar/search-sidebar.component.html index e17fe941ba..de89001999 100644 --- a/src/app/shared/search/search-sidebar/search-sidebar.component.html +++ b/src/app/shared/search/search-sidebar/search-sidebar.component.html @@ -17,10 +17,10 @@ [defaultConfiguration]="configuration" [inPlaceSearch]="inPlaceSearch" (changeConfiguration)="changeConfiguration.emit($event)"> - + [inPlaceSearch]="inPlaceSearch"> diff --git a/src/app/shared/search/search.module.ts b/src/app/shared/search/search.module.ts index 797d35d88f..6bbe4baab1 100644 --- a/src/app/shared/search/search.module.ts +++ b/src/app/shared/search/search.module.ts @@ -29,6 +29,7 @@ import { SharedModule } from '../shared.module'; import { SearchResultsComponent } from './search-results/search-results.component'; import { SearchComponent } from './search.component'; import { ThemedSearchComponent } from './themed-search.component'; +import { ThemedSearchFiltersComponent } from './search-filters/themed-search-filters.component'; const COMPONENTS = [ SearchComponent, @@ -52,7 +53,8 @@ const COMPONENTS = [ SearchAuthorityFilterComponent, SearchSwitchConfigurationComponent, ConfigurationSearchPageComponent, - ThemedConfigurationSearchPageComponent + ThemedConfigurationSearchPageComponent, + ThemedSearchFiltersComponent, ]; const ENTRY_COMPONENTS = [ diff --git a/src/themes/custom/app/shared/search/search-filters/search-filters.component.html b/src/themes/custom/app/shared/search/search-filters/search-filters.component.html new file mode 100644 index 0000000000..2a02d41ce2 --- /dev/null +++ b/src/themes/custom/app/shared/search/search-filters/search-filters.component.html @@ -0,0 +1 @@ +TEST diff --git a/src/themes/custom/app/shared/search/search-filters/search-filters.component.scss b/src/themes/custom/app/shared/search/search-filters/search-filters.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/search/search-filters/search-filters.component.ts b/src/themes/custom/app/shared/search/search-filters/search-filters.component.ts new file mode 100644 index 0000000000..ad3ec93383 --- /dev/null +++ b/src/themes/custom/app/shared/search/search-filters/search-filters.component.ts @@ -0,0 +1,32 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE_ATMIRE and NOTICE_ATMIRE files at the root of the source + * tree and available online at + * + * https://www.atmire.com/software-license/ + */ +import { Component } from '@angular/core'; +import { + SearchFiltersComponent as BaseComponent, +} from '../../../../../../app/shared/search/search-filters/search-filters.component'; +import { SEARCH_CONFIG_SERVICE } from '../../../../../../app/my-dspace-page/my-dspace-page.component'; +import { SearchConfigurationService } from '../../../../../../app/core/shared/search/search-configuration.service'; + + +@Component({ + selector: 'ds-search-filters', + // styleUrls: ['./search-filters.component.scss'], + styleUrls: ['../../../../../../app/shared/search/search-filters/search-filters.component.scss'], + // templateUrl: './search-filters.component.html', + templateUrl: '../../../../../../app/shared/search/search-filters/search-filters.component.html', + providers: [ + { + provide: SEARCH_CONFIG_SERVICE, + useClass: SearchConfigurationService + } + ] + +}) + +export class SearchFiltersComponent extends BaseComponent { +} diff --git a/src/themes/custom/theme.module.ts b/src/themes/custom/theme.module.ts index e2e97b9087..fba0ce894a 100644 --- a/src/themes/custom/theme.module.ts +++ b/src/themes/custom/theme.module.ts @@ -84,6 +84,7 @@ import { SearchModule } from '../../app/shared/search/search.module'; import { ResourcePoliciesModule } from '../../app/shared/resource-policies/resource-policies.module'; import { ComcolModule } from '../../app/shared/comcol/comcol.module'; import { FeedbackComponent } from './app/info/feedback/feedback.component'; +import { SearchFiltersComponent } from './app/shared/search/search-filters/search-filters.component'; const DECLARATIONS = [ FileSectionComponent, @@ -126,7 +127,8 @@ const DECLARATIONS = [ NavbarComponent, HeaderNavbarWrapperComponent, BreadcrumbsComponent, - FeedbackComponent + FeedbackComponent, + SearchFiltersComponent, ]; @NgModule({ From 9fdac08c678b5f19e0521ffc6f55ccc26091c504 Mon Sep 17 00:00:00 2001 From: lotte Date: Wed, 11 Jan 2023 10:53:32 +0100 Subject: [PATCH 002/162] removed unnecessary text in html file --- .../shared/search/search-filters/search-filters.component.html | 1 - 1 file changed, 1 deletion(-) diff --git a/src/themes/custom/app/shared/search/search-filters/search-filters.component.html b/src/themes/custom/app/shared/search/search-filters/search-filters.component.html index 2a02d41ce2..e69de29bb2 100644 --- a/src/themes/custom/app/shared/search/search-filters/search-filters.component.html +++ b/src/themes/custom/app/shared/search/search-filters/search-filters.component.html @@ -1 +0,0 @@ -TEST From 7926277acdf4389244b0447dc7348a7d668ab772 Mon Sep 17 00:00:00 2001 From: lotte Date: Wed, 11 Jan 2023 11:24:42 +0100 Subject: [PATCH 003/162] added new input to ThemedSearchFiltersComponent --- .../search/search-filters/themed-search-filters.component.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/app/shared/search/search-filters/themed-search-filters.component.ts b/src/app/shared/search/search-filters/themed-search-filters.component.ts index 7bf2d3d0ac..a9a9c10e51 100644 --- a/src/app/shared/search/search-filters/themed-search-filters.component.ts +++ b/src/app/shared/search/search-filters/themed-search-filters.component.ts @@ -2,6 +2,8 @@ import { Component, Input } from '@angular/core'; import { ThemedComponent } from '../../theme-support/themed.component'; import { SearchFiltersComponent } from './search-filters.component'; import { Observable } from 'rxjs/internal/Observable'; +import { RemoteData } from '../../../core/data/remote-data'; +import { SearchFilterConfig } from '../models/search-filter-config.model'; /** * Themed wrapper for SearchFiltersComponent @@ -17,9 +19,10 @@ export class ThemedSearchFiltersComponent extends ThemedComponent; + @Input() filters: Observable>; protected inAndOutputNames: (keyof SearchFiltersComponent & keyof this)[] = [ - 'currentConfiguration', 'currentScope', 'inPlaceSearch', 'refreshFilters']; + 'filters', 'currentConfiguration', 'currentScope', 'inPlaceSearch', 'refreshFilters']; protected getComponentName(): string { return 'SearchFiltersComponent'; From c3d71cbdd615ff707482852fd3d76f688950e1f1 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe Date: Wed, 11 Jan 2023 14:18:20 +0100 Subject: [PATCH 004/162] 98422: Themed ItemStatusComponent and EditBitstreamPageComponent --- .../bitstream-page-routing.module.ts | 4 ++-- .../bitstream-page/bitstream-page.module.ts | 4 +++- .../themed-edit-bitstream-page.component.ts | 22 ++++++++++++++++++ .../edit-item-page/edit-item-page.module.ts | 2 ++ .../edit-item-page.routing.module.ts | 4 ++-- .../themed-item-status.component.ts | 23 +++++++++++++++++++ .../edit-bitstream-page.component.html | 0 .../edit-bitstream-page.component.scss | 0 .../edit-bitstream-page.component.ts | 13 +++++++++++ .../item-status/item-status.component.html | 0 .../item-status/item-status.component.ts | 16 +++++++++++++ src/themes/custom/theme.module.ts | 6 ++++- 12 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 src/app/bitstream-page/edit-bitstream-page/themed-edit-bitstream-page.component.ts create mode 100644 src/app/item-page/edit-item-page/item-status/themed-item-status.component.ts create mode 100644 src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.html create mode 100644 src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.scss create mode 100644 src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.ts create mode 100644 src/themes/custom/app/item-page/edit-item-page/item-status/item-status.component.html create mode 100644 src/themes/custom/app/item-page/edit-item-page/item-status/item-status.component.ts diff --git a/src/app/bitstream-page/bitstream-page-routing.module.ts b/src/app/bitstream-page/bitstream-page-routing.module.ts index 27b9db9a05..bab5e91467 100644 --- a/src/app/bitstream-page/bitstream-page-routing.module.ts +++ b/src/app/bitstream-page/bitstream-page-routing.module.ts @@ -1,6 +1,5 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { EditBitstreamPageComponent } from './edit-bitstream-page/edit-bitstream-page.component'; import { AuthenticatedGuard } from '../core/auth/authenticated.guard'; import { BitstreamPageResolver } from './bitstream-page.resolver'; import { BitstreamDownloadPageComponent } from '../shared/bitstream-download-page/bitstream-download-page.component'; @@ -10,6 +9,7 @@ import { ResourcePolicyResolver } from '../shared/resource-policies/resolvers/re import { ResourcePolicyEditComponent } from '../shared/resource-policies/edit/resource-policy-edit.component'; import { BitstreamAuthorizationsComponent } from './bitstream-authorizations/bitstream-authorizations.component'; import { LegacyBitstreamUrlResolver } from './legacy-bitstream-url.resolver'; +import { ThemedEditBitstreamPageComponent } from './edit-bitstream-page/themed-edit-bitstream-page.component'; const EDIT_BITSTREAM_PATH = ':id/edit'; const EDIT_BITSTREAM_AUTHORIZATIONS_PATH = ':id/authorizations'; @@ -46,7 +46,7 @@ const EDIT_BITSTREAM_AUTHORIZATIONS_PATH = ':id/authorizations'; }, { path: EDIT_BITSTREAM_PATH, - component: EditBitstreamPageComponent, + component: ThemedEditBitstreamPageComponent, resolve: { bitstream: BitstreamPageResolver }, diff --git a/src/app/bitstream-page/bitstream-page.module.ts b/src/app/bitstream-page/bitstream-page.module.ts index d168a06db2..ea8ed510e1 100644 --- a/src/app/bitstream-page/bitstream-page.module.ts +++ b/src/app/bitstream-page/bitstream-page.module.ts @@ -6,6 +6,7 @@ import { BitstreamPageRoutingModule } from './bitstream-page-routing.module'; import { BitstreamAuthorizationsComponent } from './bitstream-authorizations/bitstream-authorizations.component'; import { FormModule } from '../shared/form/form.module'; import { ResourcePoliciesModule } from '../shared/resource-policies/resource-policies.module'; +import { ThemedEditBitstreamPageComponent } from './edit-bitstream-page/themed-edit-bitstream-page.component'; /** * This module handles all components that are necessary for Bitstream related pages @@ -20,7 +21,8 @@ import { ResourcePoliciesModule } from '../shared/resource-policies/resource-pol ], declarations: [ BitstreamAuthorizationsComponent, - EditBitstreamPageComponent + EditBitstreamPageComponent, + ThemedEditBitstreamPageComponent, ] }) export class BitstreamPageModule { diff --git a/src/app/bitstream-page/edit-bitstream-page/themed-edit-bitstream-page.component.ts b/src/app/bitstream-page/edit-bitstream-page/themed-edit-bitstream-page.component.ts new file mode 100644 index 0000000000..dcca28a495 --- /dev/null +++ b/src/app/bitstream-page/edit-bitstream-page/themed-edit-bitstream-page.component.ts @@ -0,0 +1,22 @@ +import { Component } from '@angular/core'; +import { EditBitstreamPageComponent } from './edit-bitstream-page.component'; +import { ThemedComponent } from '../../shared/theme-support/themed.component'; + +@Component({ + selector: 'ds-themed-edit-bitstream-page', + styleUrls: [], + templateUrl: '../../shared/theme-support/themed.component.html', +}) +export class ThemedEditBitstreamPageComponent extends ThemedComponent { + protected getComponentName(): string { + return 'EditBitstreamPageComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../themes/${themeName}/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component`); + } + + protected importUnthemedComponent(): Promise { + return import('./edit-bitstream-page.component'); + } +} diff --git a/src/app/item-page/edit-item-page/edit-item-page.module.ts b/src/app/item-page/edit-item-page/edit-item-page.module.ts index 97901bd7c8..e033919dba 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.module.ts @@ -35,6 +35,7 @@ import { ItemVersionHistoryComponent } from './item-version-history/item-version import { ItemAuthorizationsComponent } from './item-authorizations/item-authorizations.component'; import { ObjectValuesPipe } from '../../shared/utils/object-values-pipe'; import { ResourcePoliciesModule } from '../../shared/resource-policies/resource-policies.module'; +import { ThemedItemStatusComponent } from './item-status/themed-item-status.component'; /** @@ -61,6 +62,7 @@ import { ResourcePoliciesModule } from '../../shared/resource-policies/resource- ItemPublicComponent, ItemDeleteComponent, ItemStatusComponent, + ThemedItemStatusComponent, ItemMetadataComponent, ItemRelationshipsComponent, ItemBitstreamsComponent, diff --git a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts index 2535e42216..6deffe47a8 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts @@ -6,7 +6,6 @@ import { ItemReinstateComponent } from './item-reinstate/item-reinstate.componen import { ItemPrivateComponent } from './item-private/item-private.component'; import { ItemPublicComponent } from './item-public/item-public.component'; import { ItemDeleteComponent } from './item-delete/item-delete.component'; -import { ItemStatusComponent } from './item-status/item-status.component'; import { ItemMetadataComponent } from './item-metadata/item-metadata.component'; import { ItemBitstreamsComponent } from './item-bitstreams/item-bitstreams.component'; import { ItemCollectionMapperComponent } from './item-collection-mapper/item-collection-mapper.component'; @@ -38,6 +37,7 @@ import { ItemPageBitstreamsGuard } from './item-page-bitstreams.guard'; import { ItemPageRelationshipsGuard } from './item-page-relationships.guard'; import { ItemPageVersionHistoryGuard } from './item-page-version-history.guard'; import { ItemPageCollectionMapperGuard } from './item-page-collection-mapper.guard'; +import { ThemedItemPageComponent } from '../simple/themed-item-page.component'; /** * Routing module that handles the routing for the Edit Item page administrator functionality @@ -63,7 +63,7 @@ import { ItemPageCollectionMapperGuard } from './item-page-collection-mapper.gua }, { path: 'status', - component: ItemStatusComponent, + component: ThemedItemPageComponent, data: { title: 'item.edit.tabs.status.title', showBreadcrumbs: true }, canActivate: [ItemPageStatusGuard] }, diff --git a/src/app/item-page/edit-item-page/item-status/themed-item-status.component.ts b/src/app/item-page/edit-item-page/item-status/themed-item-status.component.ts new file mode 100644 index 0000000000..eac5a53702 --- /dev/null +++ b/src/app/item-page/edit-item-page/item-status/themed-item-status.component.ts @@ -0,0 +1,23 @@ +import { Component } from '@angular/core'; +import { ThemedComponent } from '../../../shared/theme-support/themed.component'; +import { ItemStatusComponent } from './item-status.component'; + +@Component({ + selector: 'ds-themed-item-status', + styleUrls: [], + templateUrl: '../../../shared/theme-support/themed.component.html', +}) +export class ThemedItemStatusComponent extends ThemedComponent { + protected getComponentName(): string { + return 'ItemStatusComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../themes/${themeName}/app/item-page/edit-item-page/item-status/item-status.component`); + } + + protected importUnthemedComponent(): Promise { + return import('./item-status.component'); + } + +} diff --git a/src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.html b/src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.scss b/src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.ts b/src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.ts new file mode 100644 index 0000000000..f8ca14addb --- /dev/null +++ b/src/themes/custom/app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.ts @@ -0,0 +1,13 @@ +import { EditBitstreamPageComponent as BaseComponent } from '../../../../../app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component'; +import { ChangeDetectionStrategy, Component } from '@angular/core'; + +@Component({ + selector: 'ds-edit-bitstream-page', + // styleUrls: ['./edit-bitstream-page.component.scss'], + styleUrls: ['../../../../../app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.scss'], + // templateUrl: './edit-bitstream-page.component.html', + templateUrl: '../../../../../app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component.html', + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class EditBitstreamPageComponent extends BaseComponent { +} diff --git a/src/themes/custom/app/item-page/edit-item-page/item-status/item-status.component.html b/src/themes/custom/app/item-page/edit-item-page/item-status/item-status.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/item-page/edit-item-page/item-status/item-status.component.ts b/src/themes/custom/app/item-page/edit-item-page/item-status/item-status.component.ts new file mode 100644 index 0000000000..95acec2275 --- /dev/null +++ b/src/themes/custom/app/item-page/edit-item-page/item-status/item-status.component.ts @@ -0,0 +1,16 @@ +import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { fadeIn, fadeInOut } from '../../../../../../app/shared/animations/fade'; +import { ItemStatusComponent as BaseComponent } from '../../../../../../app/item-page/edit-item-page/item-status/item-status.component'; + +@Component({ + selector: 'ds-item-status', + // templateUrl: './item-status.component.html', + templateUrl: '../../../../../../app/item-page/edit-item-page/item-status/item-status.component.html', + changeDetection: ChangeDetectionStrategy.Default, + animations: [ + fadeIn, + fadeInOut + ] +}) +export class ItemStatusComponent extends BaseComponent { +} diff --git a/src/themes/custom/theme.module.ts b/src/themes/custom/theme.module.ts index e2e97b9087..ab69e86a8e 100644 --- a/src/themes/custom/theme.module.ts +++ b/src/themes/custom/theme.module.ts @@ -84,6 +84,8 @@ import { SearchModule } from '../../app/shared/search/search.module'; import { ResourcePoliciesModule } from '../../app/shared/resource-policies/resource-policies.module'; import { ComcolModule } from '../../app/shared/comcol/comcol.module'; import { FeedbackComponent } from './app/info/feedback/feedback.component'; +import { ItemStatusComponent } from './app/item-page/edit-item-page/item-status/item-status.component'; +import { EditBitstreamPageComponent } from './app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component'; const DECLARATIONS = [ FileSectionComponent, @@ -126,7 +128,9 @@ const DECLARATIONS = [ NavbarComponent, HeaderNavbarWrapperComponent, BreadcrumbsComponent, - FeedbackComponent + FeedbackComponent, + ItemStatusComponent, + EditBitstreamPageComponent, ]; @NgModule({ From cb982d6552adbb676a7653984e82d4b2e928b1c8 Mon Sep 17 00:00:00 2001 From: lotte Date: Wed, 11 Jan 2023 14:46:37 +0100 Subject: [PATCH 005/162] Made SearchSidebarComponent themeable --- .../themed-search-sidebar.component.ts | 51 +++++++++++++++++++ src/app/shared/search/search.module.ts | 2 + .../search-sidebar.component.html | 0 .../search-sidebar.component.scss | 0 .../search-sidebar.component.ts | 32 ++++++++++++ src/themes/custom/theme.module.ts | 2 + 6 files changed, 87 insertions(+) create mode 100644 src/app/shared/search/search-sidebar/themed-search-sidebar.component.ts create mode 100644 src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.html create mode 100644 src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.scss create mode 100644 src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.ts diff --git a/src/app/shared/search/search-sidebar/themed-search-sidebar.component.ts b/src/app/shared/search/search-sidebar/themed-search-sidebar.component.ts new file mode 100644 index 0000000000..470c947162 --- /dev/null +++ b/src/app/shared/search/search-sidebar/themed-search-sidebar.component.ts @@ -0,0 +1,51 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { ThemedComponent } from '../../theme-support/themed.component'; +import { SearchSidebarComponent } from './search-sidebar.component'; +import { SearchConfigurationOption } from '../search-switch-configuration/search-configuration-option.model'; +import { SortOptions } from '../../../core/cache/models/sort-options.model'; +import { ViewMode } from '../../../core/shared/view-mode.model'; +import { PaginatedSearchOptions } from '../models/paginated-search-options.model'; +import { Observable } from 'rxjs'; + +/** + * Themed wrapper for SearchSidebarComponent + */ +@Component({ + selector: 'ds-themed-search-sidebar', + styleUrls: [], + templateUrl: '../../theme-support/themed.component.html', +}) +export class ThemedSearchSidebarComponent extends ThemedComponent { + + @Input() configuration; + @Input() configurationList: SearchConfigurationOption[]; + @Input() currentScope: string; + @Input() currentSortOption: SortOptions; + @Input() resultCount; + @Input() viewModeList: ViewMode[]; + @Input() showViewModes = true; + @Input() inPlaceSearch; + @Input() searchOptions: PaginatedSearchOptions; + @Input() sortOptionsList: SortOptions[]; + @Input() refreshFilters: Observable; + @Output() toggleSidebar = new EventEmitter(); + @Output() changeConfiguration: EventEmitter = new EventEmitter(); + @Output() changeViewMode: EventEmitter = new EventEmitter(); + + protected inAndOutputNames: (keyof SearchSidebarComponent & keyof this)[] = [ + 'configuration', 'configurationList', 'currentScope', 'currentSortOption', + 'resultCount', 'viewModeList', 'showViewModes', 'inPlaceSearch', + 'searchOptions', 'sortOptionsList', 'refreshFilters', 'toggleSidebar', 'changeConfiguration', 'changeViewMode']; + + protected getComponentName(): string { + return 'SearchSidebarComponent'; + } + + protected importThemedComponent(themeName: string): Promise { + return import(`../../../../themes/${themeName}/app/shared/search/search-sidebar/search-sidebar.component`); + } + + protected importUnthemedComponent(): Promise { + return import('./search-sidebar.component'); + } +} diff --git a/src/app/shared/search/search.module.ts b/src/app/shared/search/search.module.ts index 6bbe4baab1..be7fb0b044 100644 --- a/src/app/shared/search/search.module.ts +++ b/src/app/shared/search/search.module.ts @@ -30,6 +30,7 @@ import { SearchResultsComponent } from './search-results/search-results.componen import { SearchComponent } from './search.component'; import { ThemedSearchComponent } from './themed-search.component'; import { ThemedSearchFiltersComponent } from './search-filters/themed-search-filters.component'; +import { ThemedSearchSidebarComponent } from './search-sidebar/themed-search-sidebar.component'; const COMPONENTS = [ SearchComponent, @@ -55,6 +56,7 @@ const COMPONENTS = [ ConfigurationSearchPageComponent, ThemedConfigurationSearchPageComponent, ThemedSearchFiltersComponent, + ThemedSearchSidebarComponent, ]; const ENTRY_COMPONENTS = [ diff --git a/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.html b/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.scss b/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.ts b/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.ts new file mode 100644 index 0000000000..aed31b91e2 --- /dev/null +++ b/src/themes/custom/app/shared/search/search-sidebar/search-sidebar.component.ts @@ -0,0 +1,32 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE_ATMIRE and NOTICE_ATMIRE files at the root of the source + * tree and available online at + * + * https://www.atmire.com/software-license/ + */ +import { Component } from '@angular/core'; +import { + SearchSidebarComponent as BaseComponent, +} from '../../../../../../app/shared/search/search-sidebar/search-sidebar.component'; +import { SEARCH_CONFIG_SERVICE } from '../../../../../../app/my-dspace-page/my-dspace-page.component'; +import { SearchConfigurationService } from '../../../../../../app/core/shared/search/search-configuration.service'; + + +@Component({ + selector: 'ds-search-sidebar', + // styleUrls: ['./search-sidebar.component.scss'], + styleUrls: ['../../../../../../app/shared/search/search-sidebar/search-sidebar.component.scss'], + // templateUrl: './search-sidebar.component.html', + templateUrl: '../../../../../../app/shared/search/search-sidebar/search-sidebar.component.html', + providers: [ + { + provide: SEARCH_CONFIG_SERVICE, + useClass: SearchConfigurationService + } + ] + +}) + +export class SearchSidebarComponent extends BaseComponent { +} diff --git a/src/themes/custom/theme.module.ts b/src/themes/custom/theme.module.ts index fba0ce894a..1ab61cbc42 100644 --- a/src/themes/custom/theme.module.ts +++ b/src/themes/custom/theme.module.ts @@ -85,6 +85,7 @@ import { ResourcePoliciesModule } from '../../app/shared/resource-policies/resou import { ComcolModule } from '../../app/shared/comcol/comcol.module'; import { FeedbackComponent } from './app/info/feedback/feedback.component'; import { SearchFiltersComponent } from './app/shared/search/search-filters/search-filters.component'; +import { SearchSidebarComponent } from './app/shared/search/search-sidebar/search-sidebar.component'; const DECLARATIONS = [ FileSectionComponent, @@ -129,6 +130,7 @@ const DECLARATIONS = [ BreadcrumbsComponent, FeedbackComponent, SearchFiltersComponent, + SearchSidebarComponent, ]; @NgModule({ From de7fcb30da5711b73bd9d88c37923de913aacdc6 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe Date: Wed, 11 Jan 2023 14:49:21 +0100 Subject: [PATCH 006/162] 98422: Themed component import fixes --- src/app/item-page/edit-item-page/edit-item-page.module.ts | 3 ++- .../item-page/edit-item-page/edit-item-page.routing.module.ts | 3 ++- src/themes/custom/theme.module.ts | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/app/item-page/edit-item-page/edit-item-page.module.ts b/src/app/item-page/edit-item-page/edit-item-page.module.ts index e033919dba..8ef9c9f82f 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.module.ts @@ -85,7 +85,8 @@ import { ThemedItemStatusComponent } from './item-status/themed-item-status.comp ObjectValuesPipe ], exports: [ - ItemMetadataComponent + ItemMetadataComponent, + ItemOperationComponent, ] }) export class EditItemPageModule { diff --git a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts index 6deffe47a8..0221043d55 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts @@ -38,6 +38,7 @@ import { ItemPageRelationshipsGuard } from './item-page-relationships.guard'; import { ItemPageVersionHistoryGuard } from './item-page-version-history.guard'; import { ItemPageCollectionMapperGuard } from './item-page-collection-mapper.guard'; import { ThemedItemPageComponent } from '../simple/themed-item-page.component'; +import { ThemedItemStatusComponent } from './item-status/themed-item-status.component'; /** * Routing module that handles the routing for the Edit Item page administrator functionality @@ -63,7 +64,7 @@ import { ThemedItemPageComponent } from '../simple/themed-item-page.component'; }, { path: 'status', - component: ThemedItemPageComponent, + component: ThemedItemStatusComponent, data: { title: 'item.edit.tabs.status.title', showBreadcrumbs: true }, canActivate: [ItemPageStatusGuard] }, diff --git a/src/themes/custom/theme.module.ts b/src/themes/custom/theme.module.ts index ab69e86a8e..964909b3c1 100644 --- a/src/themes/custom/theme.module.ts +++ b/src/themes/custom/theme.module.ts @@ -86,6 +86,7 @@ import { ComcolModule } from '../../app/shared/comcol/comcol.module'; import { FeedbackComponent } from './app/info/feedback/feedback.component'; import { ItemStatusComponent } from './app/item-page/edit-item-page/item-status/item-status.component'; import { EditBitstreamPageComponent } from './app/bitstream-page/edit-bitstream-page/edit-bitstream-page.component'; +import { FormModule } from '../../app/shared/form/form.module'; const DECLARATIONS = [ FileSectionComponent, @@ -180,7 +181,8 @@ const DECLARATIONS = [ SearchModule, FormsModule, ResourcePoliciesModule, - ComcolModule + ComcolModule, + FormModule, ], declarations: DECLARATIONS }) From 4ba64fdfcc5b2a7ac6c291b712f14b3623d104d8 Mon Sep 17 00:00:00 2001 From: Kristof De Langhe Date: Wed, 11 Jan 2023 14:55:16 +0100 Subject: [PATCH 007/162] 98422: Remove unused import --- .../item-page/edit-item-page/edit-item-page.routing.module.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts index 0221043d55..bc8b614643 100644 --- a/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts +++ b/src/app/item-page/edit-item-page/edit-item-page.routing.module.ts @@ -37,7 +37,6 @@ import { ItemPageBitstreamsGuard } from './item-page-bitstreams.guard'; import { ItemPageRelationshipsGuard } from './item-page-relationships.guard'; import { ItemPageVersionHistoryGuard } from './item-page-version-history.guard'; import { ItemPageCollectionMapperGuard } from './item-page-collection-mapper.guard'; -import { ThemedItemPageComponent } from '../simple/themed-item-page.component'; import { ThemedItemStatusComponent } from './item-status/themed-item-status.component'; /** From bcb27f666aa6994eac44be286b10b2d4834603f5 Mon Sep 17 00:00:00 2001 From: lotte Date: Wed, 11 Jan 2023 15:14:19 +0100 Subject: [PATCH 008/162] replace ds-search-sidebar with ds-themed-search-sidebar --- src/app/shared/search/search.component.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app/shared/search/search.component.html b/src/app/shared/search/search.component.html index c292c94c44..ce37f054eb 100644 --- a/src/app/shared/search/search.component.html +++ b/src/app/shared/search/search.component.html @@ -44,7 +44,7 @@ - - + - + From 6114337660de2c8154402de7185d3064d9c3192f Mon Sep 17 00:00:00 2001 From: lotte Date: Mon, 23 Jan 2023 12:16:05 +0100 Subject: [PATCH 009/162] Split up process module to be importable --- .../process-page-shared.module.ts | 49 +++++++++++++++++++ src/app/process-page/process-page.module.ts | 18 +------ 2 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 src/app/process-page/process-page-shared.module.ts diff --git a/src/app/process-page/process-page-shared.module.ts b/src/app/process-page/process-page-shared.module.ts new file mode 100644 index 0000000000..efa154f26b --- /dev/null +++ b/src/app/process-page/process-page-shared.module.ts @@ -0,0 +1,49 @@ +import { NgModule } from '@angular/core'; +import { SharedModule } from '../shared/shared.module'; +import { ProcessPageRoutingModule } from './process-page-routing.module'; +import { NewProcessComponent } from './new/new-process.component'; +import { ScriptsSelectComponent } from './form/scripts-select/scripts-select.component'; +import { ScriptHelpComponent } from './form/script-help/script-help.component'; +import { ParameterSelectComponent } from './form/process-parameters/parameter-select/parameter-select.component'; +import { ProcessParametersComponent } from './form/process-parameters/process-parameters.component'; +import { StringValueInputComponent } from './form/process-parameters/parameter-value-input/string-value-input/string-value-input.component'; +import { ParameterValueInputComponent } from './form/process-parameters/parameter-value-input/parameter-value-input.component'; +import { FileValueInputComponent } from './form/process-parameters/parameter-value-input/file-value-input/file-value-input.component'; +import { BooleanValueInputComponent } from './form/process-parameters/parameter-value-input/boolean-value-input/boolean-value-input.component'; +import { DateValueInputComponent } from './form/process-parameters/parameter-value-input/date-value-input/date-value-input.component'; +import { ProcessOverviewComponent } from './overview/process-overview.component'; +import { ProcessDetailComponent } from './detail/process-detail.component'; +import { ProcessDetailFieldComponent } from './detail/process-detail-field/process-detail-field.component'; +import { ProcessBreadcrumbsService } from './process-breadcrumbs.service'; +import { ProcessBreadcrumbResolver } from './process-breadcrumb.resolver'; +import { ProcessFormComponent } from './form/process-form.component'; + +@NgModule({ + imports: [ + SharedModule, + ], + declarations: [ + NewProcessComponent, + ScriptsSelectComponent, + ScriptHelpComponent, + ParameterSelectComponent, + ProcessParametersComponent, + StringValueInputComponent, + ParameterValueInputComponent, + FileValueInputComponent, + BooleanValueInputComponent, + DateValueInputComponent, + ProcessOverviewComponent, + ProcessDetailComponent, + ProcessDetailFieldComponent, + ProcessFormComponent + ], + providers: [ + ProcessBreadcrumbResolver, + ProcessBreadcrumbsService + ] +}) + +export class ProcessPageSharedModule { + +} diff --git a/src/app/process-page/process-page.module.ts b/src/app/process-page/process-page.module.ts index ebe03e4537..471b55cf46 100644 --- a/src/app/process-page/process-page.module.ts +++ b/src/app/process-page/process-page.module.ts @@ -17,31 +17,17 @@ import { ProcessDetailFieldComponent } from './detail/process-detail-field/proce import { ProcessBreadcrumbsService } from './process-breadcrumbs.service'; import { ProcessBreadcrumbResolver } from './process-breadcrumb.resolver'; import { ProcessFormComponent } from './form/process-form.component'; +import { ProcessPageSharedModule } from './process-page-shared.module'; @NgModule({ imports: [ ProcessPageRoutingModule, SharedModule, + ProcessPageSharedModule, ], declarations: [ - NewProcessComponent, - ScriptsSelectComponent, - ScriptHelpComponent, - ParameterSelectComponent, - ProcessParametersComponent, - StringValueInputComponent, - ParameterValueInputComponent, - FileValueInputComponent, - BooleanValueInputComponent, - DateValueInputComponent, - ProcessOverviewComponent, - ProcessDetailComponent, - ProcessDetailFieldComponent, - ProcessFormComponent ], providers: [ - ProcessBreadcrumbResolver, - ProcessBreadcrumbsService ] }) From a4679ca7e54f1f2e4383f2e610713259d55095db Mon Sep 17 00:00:00 2001 From: lotte Date: Mon, 23 Jan 2023 12:33:01 +0100 Subject: [PATCH 010/162] Made ListableObjectComponentLoaderComponent themeable --- ...-search-result-list-element.component.html | 4 +- ...admin-workflow-list-element.component.html | 4 +- .../item-delete/item-delete.component.html | 8 ++-- .../edit-relationship.component.html | 4 +- .../virtual-metadata.component.html | 4 +- .../item-page/simple/item-page.component.html | 2 +- .../related-items.component.html | 4 +- .../related-items.component.spec.ts | 2 +- .../shared/browse-by/browse-by.component.html | 2 +- .../dso-selector/dso-selector.component.html | 4 +- ...sting-relation-list-element.component.html | 2 +- .../dso-input-suggestions.component.html | 2 +- ...table-object-component-loader.component.ts | 43 +++++++++++++++++++ .../object-detail.component.html | 2 +- .../object-grid/object-grid.component.html | 2 +- .../item-metadata-list-element.component.html | 2 +- ...em-metadata-list-element.component.spec.ts | 2 +- .../object-list/object-list.component.html | 4 +- src/app/shared/shared.module.ts | 2 + ...ble-object-component-loader.component.html | 0 ...ble-object-component-loader.component.scss | 0 ...table-object-component-loader.component.ts | 13 ++++++ src/themes/custom/theme.module.ts | 2 + 23 files changed, 87 insertions(+), 27 deletions(-) create mode 100644 src/app/shared/object-collection/shared/listable-object/themed-listable-object-component-loader.component.ts create mode 100644 src/themes/custom/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.html create mode 100644 src/themes/custom/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.scss create mode 100644 src/themes/custom/app/shared/object-collection/shared/listable-object/listable-object-component-loader.component.ts diff --git a/src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html b/src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html index 259512552c..b34868f736 100644 --- a/src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html +++ b/src/app/admin/admin-search-page/admin-search-results/admin-search-result-list-element/item-search-result/item-admin-search-result-list-element.component.html @@ -1,7 +1,7 @@ - + [hideBadges]="true"> diff --git a/src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component.html b/src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component.html index 192cc751f2..909882361a 100644 --- a/src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component.html +++ b/src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-list-element/workflow-item/workflow-item-search-result-admin-workflow-list-element.component.html @@ -1,10 +1,10 @@
{{ "admin.workflow.item.workflow" | translate }}
- + [listID]="listID"> diff --git a/src/app/item-page/edit-item-page/item-delete/item-delete.component.html b/src/app/item-page/edit-item-page/item-delete/item-delete.component.html index df50e13b48..fb8acb61f3 100644 --- a/src/app/item-page/edit-item-page/item-delete/item-delete.component.html +++ b/src/app/item-page/edit-item-page/item-delete/item-delete.component.html @@ -31,11 +31,11 @@ class="d-flex flex-row"> - - +