diff --git a/src/app/item-page/alerts/item-alerts.component.ts b/src/app/item-page/alerts/item-alerts.component.ts index 7bf774be78..6196eaf9ec 100644 --- a/src/app/item-page/alerts/item-alerts.component.ts +++ b/src/app/item-page/alerts/item-alerts.component.ts @@ -13,16 +13,15 @@ import { map, Observable, } from 'rxjs'; -import { - getFirstCompletedRemoteData, - getPaginatedListPayload, - getRemoteDataPayload, -} from 'src/app/core/shared/operators'; +import { getFirstCompletedRemoteData } from 'src/app/core/shared/operators'; import { AuthorizationDataService } from '../../core/data/feature-authorization/authorization-data.service'; import { FeatureID } from '../../core/data/feature-authorization/feature-id'; +import { PaginatedList } from '../../core/data/paginated-list.model'; +import { RemoteData } from '../../core/data/remote-data'; import { Item } from '../../core/shared/item.model'; import { CorrectionTypeDataService } from '../../core/submission/correctiontype-data.service'; +import { CorrectionType } from '../../core/submission/models/correctiontype.model'; import { AlertComponent } from '../../shared/alert/alert.component'; import { AlertType } from '../../shared/alert/alert-type'; import { @@ -73,8 +72,7 @@ export class ItemAlertsComponent { showReinstateButton$(): Observable { const correction$ = this.correctionTypeDataService.findByItem(this.item.uuid, true).pipe( getFirstCompletedRemoteData(), - getRemoteDataPayload(), - getPaginatedListPayload(), + map((correctionTypeRD: RemoteData>) => correctionTypeRD.hasSucceeded ? correctionTypeRD.payload.page : []), ); const isAdmin$ = this.authService.isAuthorized(FeatureID.AdministratorOf); return combineLatest([isAdmin$, correction$]).pipe( 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 deleted file mode 100644 index 923928ea47..0000000000 --- a/src/app/item-page/edit-item-page/edit-item-page.module.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { DragDropModule } from '@angular/cdk/drag-drop'; -import { CommonModule } from '@angular/common'; -import { NgModule } from '@angular/core'; -import { - NgbModule, - NgbTooltipModule, -} from '@ng-bootstrap/ng-bootstrap'; - -import { BundleDataService } from '../../core/data/bundle-data.service'; -import { IdentifierDataService } from '../../core/data/identifier-data.service'; -import { SearchPageModule } from '../../search-page/search-page.module'; -import { IdentifierDataComponent } from '../../shared/object-list/identifier-data/identifier-data.component'; -import { ResourcePoliciesModule } from '../../shared/resource-policies/resource-policies.module'; -import { ObjectValuesPipe } from '../../shared/utils/object-values-pipe'; -import { ItemVersionsModule } from '../versions/item-versions.module'; -import { AbstractItemUpdateComponent } from './abstract-item-update/abstract-item-update.component'; -import { EditItemPageComponent } from './edit-item-page.component'; -import { ItemAccessControlComponent } from './item-access-control/item-access-control.component'; -import { ItemAuthorizationsComponent } from './item-authorizations/item-authorizations.component'; -import { ItemBitstreamsComponent } from './item-bitstreams/item-bitstreams.component'; -import { ItemEditBitstreamComponent } from './item-bitstreams/item-edit-bitstream/item-edit-bitstream.component'; -import { ItemEditBitstreamBundleComponent } from './item-bitstreams/item-edit-bitstream-bundle/item-edit-bitstream-bundle.component'; -import { PaginatedDragAndDropBitstreamListComponent } from './item-bitstreams/item-edit-bitstream-bundle/paginated-drag-and-drop-bitstream-list/paginated-drag-and-drop-bitstream-list.component'; -import { ItemEditBitstreamDragHandleComponent } from './item-bitstreams/item-edit-bitstream-drag-handle/item-edit-bitstream-drag-handle.component'; -import { ItemCollectionMapperComponent } from './item-collection-mapper/item-collection-mapper.component'; -import { ItemCurateComponent } from './item-curate/item-curate.component'; -import { ItemDeleteComponent } from './item-delete/item-delete.component'; -import { ItemMoveComponent } from './item-move/item-move.component'; -import { ItemOperationComponent } from './item-operation/item-operation.component'; -import { ItemPrivateComponent } from './item-private/item-private.component'; -import { ItemPublicComponent } from './item-public/item-public.component'; -import { ItemRegisterDoiComponent } from './item-register-doi/item-register-doi.component'; -import { ItemReinstateComponent } from './item-reinstate/item-reinstate.component'; -import { EditRelationshipComponent } from './item-relationships/edit-relationship/edit-relationship.component'; -import { EditRelationshipListComponent } from './item-relationships/edit-relationship-list/edit-relationship-list.component'; -import { ItemRelationshipsComponent } from './item-relationships/item-relationships.component'; -import { ItemStatusComponent } from './item-status/item-status.component'; -import { ThemedItemStatusComponent } from './item-status/themed-item-status.component'; -import { ItemVersionHistoryComponent } from './item-version-history/item-version-history.component'; -import { ItemWithdrawComponent } from './item-withdraw/item-withdraw.component'; -import { AbstractSimpleItemActionComponent } from './simple-item-action/abstract-simple-item-action.component'; -import { VirtualMetadataComponent } from './virtual-metadata/virtual-metadata.component'; - -/** - * Module that contains all components related to the Edit Item page administrator functionality - */ -@NgModule({ - imports: [ - CommonModule, - NgbTooltipModule, - SearchPageModule, - DragDropModule, - ResourcePoliciesModule, - NgbModule, - ItemVersionsModule, - EditItemPageComponent, - ItemOperationComponent, - AbstractSimpleItemActionComponent, - AbstractItemUpdateComponent, - ItemWithdrawComponent, - ItemReinstateComponent, - ItemPrivateComponent, - ItemPublicComponent, - ItemDeleteComponent, - ItemStatusComponent, - ThemedItemStatusComponent, - ItemRelationshipsComponent, - ItemBitstreamsComponent, - ItemVersionHistoryComponent, - ItemEditBitstreamComponent, - ItemEditBitstreamBundleComponent, - PaginatedDragAndDropBitstreamListComponent, - EditRelationshipComponent, - EditRelationshipListComponent, - ItemCollectionMapperComponent, - ItemMoveComponent, - ItemEditBitstreamDragHandleComponent, - VirtualMetadataComponent, - ItemAuthorizationsComponent, - IdentifierDataComponent, - ItemRegisterDoiComponent, - ItemCurateComponent, - ItemAccessControlComponent, - ], - providers: [ - BundleDataService, - IdentifierDataService, - ObjectValuesPipe, - ], - exports: [ - ItemOperationComponent, - ], -}) -export class EditItemPageModule { - -} diff --git a/src/app/item-page/versions/item-versions.module.ts b/src/app/item-page/versions/item-versions.module.ts deleted file mode 100644 index 59517c4369..0000000000 --- a/src/app/item-page/versions/item-versions.module.ts +++ /dev/null @@ -1,29 +0,0 @@ -/** - * The contents of this file are subject to the license and copyright - * detailed in the LICENSE and NOTICE files at the root of the source - * tree and available online at - * - * http://www.dspace.org/license/ - */ - -import { NgModule } from '@angular/core'; - -import { ItemVersionsComponent } from './item-versions.component'; -import { ItemVersionsNoticeComponent } from './notice/item-versions-notice.component'; - -const DECLARATIONS = [ - ItemVersionsComponent, - ItemVersionsNoticeComponent, -]; - -@NgModule({ - imports: [ - ...DECLARATIONS, - ], - exports: [ - ...DECLARATIONS, - ], -}) -export class ItemVersionsModule { - -} diff --git a/src/app/item-page/versions/notice/item-versions-notice.component.html b/src/app/item-page/versions/notice/item-versions-notice.component.html index fb6fa34746..90502c5df7 100644 --- a/src/app/item-page/versions/notice/item-versions-notice.component.html +++ b/src/app/item-page/versions/notice/item-versions-notice.component.html @@ -1,4 +1,4 @@ - diff --git a/src/app/item-page/versions/notice/item-versions-notice.component.ts b/src/app/item-page/versions/notice/item-versions-notice.component.ts index 184d97c959..c136d3f06f 100644 --- a/src/app/item-page/versions/notice/item-versions-notice.component.ts +++ b/src/app/item-page/versions/notice/item-versions-notice.component.ts @@ -8,7 +8,11 @@ import { OnInit, } from '@angular/core'; import { TranslateModule } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; +import { + EMPTY, + Observable, + of, +} from 'rxjs'; import { map, startWith, @@ -20,7 +24,7 @@ import { VersionHistoryDataService } from '../../../core/data/version-history-da import { Item } from '../../../core/shared/item.model'; import { getAllSucceededRemoteData, - getFirstSucceededRemoteDataPayload, + getFirstCompletedRemoteData, getRemoteDataPayload, } from '../../../core/shared/operators'; import { Version } from '../../../core/shared/version.model'; @@ -97,14 +101,27 @@ export class ItemVersionsNoticeComponent implements OnInit { ); this.latestVersion$ = this.versionHistoryRD$.pipe( - getFirstSucceededRemoteDataPayload(), - switchMap((vh) => this.versionHistoryService.getLatestVersionFromHistory$(vh)), + getFirstCompletedRemoteData(), + switchMap((vhRD: RemoteData) => { + if (vhRD.hasSucceeded) { + return this.versionHistoryService.getLatestVersionFromHistory$(vhRD.payload); + } else { + return EMPTY; + } + }), ); this.showLatestVersionNotice$ = this.versionRD$.pipe( - getFirstSucceededRemoteDataPayload(), - switchMap((version) => this.versionHistoryService.isLatest$(version)), - map((isLatest) => isLatest != null && !isLatest), + getFirstCompletedRemoteData(), + switchMap((versionRD: RemoteData) => { + if (versionRD.hasSucceeded) { + return this.versionHistoryService.isLatest$(versionRD.payload).pipe( + map((isLatest) => isLatest != null && !isLatest), + ); + } else { + return of(false); + } + }), startWith(false), ); } diff --git a/src/themes/custom/lazy-theme.module.ts b/src/themes/custom/lazy-theme.module.ts index 1188ef563f..837f563337 100644 --- a/src/themes/custom/lazy-theme.module.ts +++ b/src/themes/custom/lazy-theme.module.ts @@ -13,8 +13,6 @@ import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to'; import { IdlePreloadModule } from 'angular-idle-preload'; import { AppModule } from '../../app/app.module'; -import { EditItemPageModule } from '../../app/item-page/edit-item-page/edit-item-page.module'; -import { ItemVersionsModule } from '../../app/item-page/versions/item-versions.module'; import { NavbarModule } from '../../app/navbar/navbar.module'; import { RegisterEmailFormModule } from '../../app/register-email-form/register-email-form.module'; import { RootModule } from '../../app/root.module'; @@ -205,8 +203,6 @@ const DECLARATIONS = [ RootModule, CommonModule, DragDropModule, - EditItemPageModule, - ItemVersionsModule, FormsModule, HttpClientModule, IdlePreloadModule, diff --git a/src/themes/dspace/lazy-theme.module.ts b/src/themes/dspace/lazy-theme.module.ts index cfe868353d..75c0ae8230 100644 --- a/src/themes/dspace/lazy-theme.module.ts +++ b/src/themes/dspace/lazy-theme.module.ts @@ -12,8 +12,6 @@ import { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to'; import { IdlePreloadModule } from 'angular-idle-preload'; import { AppModule } from '../../app/app.module'; -import { EditItemPageModule } from '../../app/item-page/edit-item-page/edit-item-page.module'; -import { ItemVersionsModule } from '../../app/item-page/versions/item-versions.module'; import { NavbarModule } from '../../app/navbar/navbar.module'; import { RegisterEmailFormModule } from '../../app/register-email-form/register-email-form.module'; import { RootModule } from '../../app/root.module'; @@ -35,8 +33,6 @@ const DECLARATIONS = [ RootModule, CommonModule, DragDropModule, - EditItemPageModule, - ItemVersionsModule, FormsModule, HttpClientModule, IdlePreloadModule,