diff --git a/src/app/item-page/version-page/version-page/version-page.component.ts b/src/app/item-page/version-page/version-page/version-page.component.ts index d58c98a967..e61b26cd19 100644 --- a/src/app/item-page/version-page/version-page/version-page.component.ts +++ b/src/app/item-page/version-page/version-page/version-page.component.ts @@ -47,7 +47,6 @@ export class VersionPageComponent implements OnInit { redirectOn4xx(this.router, this.authService), getFirstCompletedRemoteData(), ).subscribe((itemRD) => { - console.log(JSON.stringify(itemRD)); if (itemRD.hasNoContent) { this.router.navigateByUrl(getPageNotFoundRoute(), { skipLocationChange: true }); } else { diff --git a/src/app/shared/item/item-versions/item-versions.component.html b/src/app/shared/item/item-versions/item-versions.component.html index f39f2b8b70..c3bf6a9beb 100644 --- a/src/app/shared/item/item-versions/item-versions.component.html +++ b/src/app/shared/item/item-versions/item-versions.component.html @@ -75,7 +75,7 @@ diff --git a/src/app/shared/item/item-versions/item-versions.component.ts b/src/app/shared/item/item-versions/item-versions.component.ts index cdd4bc79f9..b542a2a0a2 100644 --- a/src/app/shared/item/item-versions/item-versions.component.ts +++ b/src/app/shared/item/item-versions/item-versions.component.ts @@ -131,11 +131,6 @@ export class ItemVersionsComponent implements OnInit { pageSize: this.pageSize }); - /** - * The current page being displayed - */ - currentPage$ = new BehaviorSubject(1); - /** * The routes to the versions their item pages * Key: Item ID @@ -253,6 +248,29 @@ export class ItemVersionsComponent implements OnInit { ); } + getVersionHistory$(version: Version): Observable { + return this.versionHistoryService.getHistoryIdFromVersion$(version).pipe( + take(1), + switchMap((res) => this.versionHistoryService.findById(res)), + getFirstSucceededRemoteDataPayload(), + ); + } + + deleteItemAndGetResult$(item: Item): Observable { + return this.itemService.delete(item.id).pipe( + getFirstCompletedRemoteData(), + map((deleteItemRes) => deleteItemRes.hasSucceeded), + take(1), + ); + } + + getLatestVersionItem$(versionHistory: VersionHistory): Observable { + return this.versionHistoryService.getLatestVersionFromHistory$(versionHistory).pipe( + switchMap((newLatestVersion) => newLatestVersion.item), + getFirstSucceededRemoteDataPayload(), + ); + } + /** * Deletes the specified version * @param version the version to be deleted @@ -269,8 +287,6 @@ export class ItemVersionsComponent implements OnInit { activeModal.componentInstance.versionNumber = version.version; activeModal.componentInstance.firstVersion = false; - - // OLD const versionHistory$ = this.versionHistoryService.getHistoryIdFromVersion$(version).pipe( take(1), switchMap((res) => this.versionHistoryService.findById(res)), @@ -280,118 +296,27 @@ export class ItemVersionsComponent implements OnInit { // On modal submit/dismiss activeModal.result.then(() => { - /*const versionHistory$ = this.versionHistoryService.getHistoryIdFromVersion$(version).pipe( - take(1), - map((versionHistoryId) => { - console.log('Version history ID = ' + versionHistoryId); - return versionHistoryId; - }), - switchMap((res) => this.versionHistoryService.findById(res)), - getFirstSucceededRemoteDataPayload(), - );*/ - - /*const deleteResultWithVersionHistory$ = versionHistory$.pipe( - switchMap((versionHisory) => combineLatest([ - versionItem$.pipe( - getFirstSucceededRemoteDataPayload(), - switchMap((itemBeingDeleted) => this.itemService.delete(itemBeingDeleted.id)), - getFirstCompletedRemoteData(), - map((deleteItemRes) => deleteItemRes.hasSucceeded), - ), - of(versionHisory) - ]) - ) - );*/ - - /*const deleteResultWithNewLatestVersion = deleteResultWithVersionHistory$.pipe( - switchMap( ([deleteHasSucceeded, versionHisory]) => [ - of(deleteHasSucceeded), - of(versionHisory).pipe( - switchMap((vh) => this.versionHistoryService.getLatestVersionFromHistory$(vh)), - switchMap((newLatestVersion) => newLatestVersion.item), - getFirstSucceededRemoteDataPayload(), - ) - ]), - ).subscribe(([deleteHasSucceeded, newLatestVersionItem] ) => { - if (deleteHasSucceeded) { - this.notificationsService.success(null, this.translateService.get(successMessageKey, {'version': versionNumber})); - } else { - this.notificationsService.error(null, this.translateService.get(failureMessageKey, {'version': versionNumber})); - } - console.log('LATEST VERSION = ' + newLatestVersionItem.uuid); - if (redirectToLatest) { - const tmpPath = getItemEditVersionhistoryRoute(newLatestVersionItem); - console.log('PATH = ' + tmpPath); - this.router.navigateByUrl(tmpPath); - } - return this.versionHistoryService.getLatestVersion$(version); - });*/ - - /* - * 1. recuperare version history - * 2. successivamente eliminare l'item - * 3. dopo aver eliminato l'item, recuperare la nuova versione - * 4. fare il redirect - */ - - /*versionItem$.pipe( - getFirstSucceededRemoteDataPayload(), - map((item) => item.id), - mergeMap((itemId) => combineLatest([ - of(itemId).pipe( - // BEGIN DELETE - switchMap((id) => this.itemService.delete(id)), - getFirstCompletedRemoteData(), - map((deleteItemRes) => deleteItemRes.hasSucceeded), - // END DELETE - ), - - this.versionHistoryService.getHistoryIdFromVersion$(version).pipe( - take(1), - map((versionHistoryId) => { - console.log('Version history ID = ' + versionHistoryId); - return versionHistoryId; - }), - switchMap((res) => this.versionHistoryService.findById(res)), - getFirstSucceededRemoteDataPayload(), - switchMap((vh) => this.versionHistoryService.getLatestVersionFromHistory$(vh)), - switchMap((newLatestVersion) => newLatestVersion.item), - getFirstSucceededRemoteDataPayload(), - mergeMap((deleteHasSucceeded) => combineLatest([])) - ) - - ]) - ), - ).subscribe(([deleteHasSucceeded, newLatestVersionItem]) => { - if (deleteHasSucceeded) { - this.notificationsService.success(null, this.translateService.get(successMessageKey, {'version': versionNumber})); - } else { - this.notificationsService.error(null, this.translateService.get(failureMessageKey, {'version': versionNumber})); - } - console.log('LATEST VERSION = ' + newLatestVersionItem.uuid); - if (redirectToLatest) { - const tmpPath = getItemEditVersionhistoryRoute(newLatestVersionItem); - console.log('PATH = ' + tmpPath); - this.router.navigateByUrl(tmpPath); - } - return this.versionHistoryService.getLatestVersion$(version); - });*/ - versionItem$.pipe( getFirstSucceededRemoteDataPayload(), - map((item) => item.id), - switchMap((itemId) => this.itemService.delete(itemId)), - getFirstCompletedRemoteData(), - map((deleteItemRes) => deleteItemRes.hasSucceeded), - mergeMap((deleteHasSucceeded) => combineLatest([ - of(deleteHasSucceeded), - versionHistory$.pipe( - switchMap((vh) => this.versionHistoryService.getLatestVersionFromHistory$(vh)), - switchMap((newLatestVersion) => newLatestVersion.item), - getFirstSucceededRemoteDataPayload() - ) - ]) - ), + mergeMap((item) => combineLatest([ + // passa item, recupera vh + of(item), + versionHistory$.pipe( + switchMap((vh) => this.versionHistoryService.getLatestVersionFromHistory$(vh)), + switchMap((newLatestVersion) => newLatestVersion.item), + getFirstSucceededRemoteDataPayload() + ) + ])), + mergeMap(([item, versionHistory]) => combineLatest([ + // cancella item, passa vh + of(item).pipe( + map((itemBeingDeleted) => itemBeingDeleted.id), + switchMap((itemId) => this.itemService.delete(itemId)), + getFirstCompletedRemoteData(), + map((deleteItemRes) => deleteItemRes.hasSucceeded) + ), + of(versionHistory) + ])), ).subscribe(([deleteHasSucceeded, newLatestVersionItem]) => { if (deleteHasSucceeded) { this.notificationsService.success(null, this.translateService.get(successMessageKey, {'version': versionNumber})); @@ -452,11 +377,11 @@ export class ItemVersionsComponent implements OnInit { ); }*/ - canEditVersion$(versionItem: Version) { + canEditVersion$(versionItem: Version): Observable { return this.authorizationService.isAuthorized(FeatureID.CanEditVersion, versionItem.self); } - canDeleteVersion$(versionItem: Version) { + canDeleteVersion$(versionItem: Version): Observable { return this.authorizationService.isAuthorized(FeatureID.CanDeleteVersion, versionItem.self); }