Merge branch 'DURACOM-191' into DURACOM-191-align-to-angular-16

# Conflicts:
#	package.json
#	src/app/access-control/epeople-registry/eperson-resolver.service.ts
#	src/app/admin/admin-registries/bitstream-formats/bitstream-formats.resolver.ts
#	src/app/admin/admin-search-page/admin-search-results/admin-search-result-grid-element/item-search-result/item-admin-search-result-grid-element.component.ts
#	src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-grid-element/workflow-item/workflow-item-search-result-admin-workflow-grid-element.component.ts
#	src/app/admin/admin-workflow-page/admin-workflow-search-results/admin-workflow-search-result-grid-element/workspace-item/workspace-item-search-result-admin-workflow-grid-element.component.ts
#	src/app/app.module.ts
#	src/app/bitstream-page/bitstream-page.resolver.ts
#	src/app/bitstream-page/legacy-bitstream-url.resolver.ts
#	src/app/browse-by/browse-by-guard.ts
#	src/app/collection-page/collection-page.resolver.ts
#	src/app/collection-page/create-collection-page/create-collection-page.guard.ts
#	src/app/collection-page/edit-item-template-page/item-template-page.resolver.ts
#	src/app/community-page/community-page.resolver.ts
#	src/app/community-page/create-community-page/create-community-page.guard.ts
#	src/app/core/auth/auth-blocking.guard.ts
#	src/app/core/auth/authenticated.guard.ts
#	src/app/core/breadcrumbs/dso-breadcrumb.resolver.ts
#	src/app/core/breadcrumbs/i18n-breadcrumb.resolver.ts
#	src/app/core/breadcrumbs/quality-assurance-breadcrumb.resolver.ts
#	src/app/core/data/feature-authorization/feature-authorization-guard/dso-page-single-feature.guard.spec.ts
#	src/app/core/data/feature-authorization/feature-authorization-guard/dso-page-some-feature.guard.spec.ts
#	src/app/core/data/feature-authorization/feature-authorization-guard/dso-page-some-feature.guard.ts
#	src/app/core/data/feature-authorization/feature-authorization-guard/some-feature-authorization.guard.ts
#	src/app/core/end-user-agreement/abstract-end-user-agreement.guard.ts
#	src/app/core/feedback/feedback.guard.ts
#	src/app/core/reload/reload.guard.ts
#	src/app/core/server-check/server-check.guard.ts
#	src/app/core/submission/resolver/submission-object.resolver.ts
#	src/app/home-page/home-page.resolver.ts
#	src/app/init.service.ts
#	src/app/item-page/edit-item-page/edit-item-page.component.spec.ts
#	src/app/item-page/edit-item-page/edit-item-page.component.ts
#	src/app/item-page/item.resolver.ts
#	src/app/item-page/version-page/version.resolver.ts
#	src/app/lookup-by-id/lookup-guard.ts
#	src/app/menu.resolver.ts
#	src/app/my-dspace-page/my-dspace.guard.ts
#	src/app/process-page/process-breadcrumb.resolver.ts
#	src/app/process-page/process-page.resolver.ts
#	src/app/quality-assurance-notifications-pages/quality-assurance-events-page/quality-assurance-events-page.resolver.ts
#	src/app/quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-data.resolver.ts
#	src/app/quality-assurance-notifications-pages/quality-assurance-source-page-component/quality-assurance-source-page-resolver.service.ts
#	src/app/quality-assurance-notifications-pages/quality-assurance-topics-page/quality-assurance-topics-page-resolver.service.ts
#	src/app/register-email-form/registration.resolver.ts
#	src/app/register-page/registration.guard.ts
#	src/app/request-copy/request-copy.resolver.ts
#	src/app/search-page/configuration-search-page.guard.ts
#	src/app/shared/context-help.directive.ts
#	src/app/shared/dso-page/dso-edit-menu.resolver.ts
#	src/app/shared/form/chips/chips.component.spec.ts
#	src/app/shared/form/chips/chips.component.ts
#	src/app/shared/form/form.module.ts
#	src/app/shared/metadata-representation/metadata-representation-loader.component.ts
#	src/app/shared/mydspace-actions/claimed-task/switcher/claimed-task-actions-loader.component.ts
#	src/app/shared/resource-policies/resolvers/resource-policy-target.resolver.ts
#	src/app/shared/resource-policies/resolvers/resource-policy.resolver.ts
#	src/app/shared/theme-support/themed.component.ts
#	src/app/shared/utils/markdown.pipe.ts
#	src/app/submission/sections/upload/accessConditions/submission-section-upload-access-conditions.component.ts
#	src/app/workflowitems-edit-page/advanced-workflow-action/advanced-workflow-actions-loader/advanced-workflow-actions-loader.component.ts
#	src/app/workflowitems-edit-page/item-from-workflow.resolver.ts
#	src/app/workflowitems-edit-page/workflow-item-page.resolver.ts
#	src/app/workspaceitems-edit-page/item-from-workspace.resolver.ts
#	src/app/workspaceitems-edit-page/workspace-item-page.resolver.ts
#	src/config/app-config.interface.ts
#	src/main.server.ts
#	src/modules/app/browser-app.module.ts
#	src/modules/app/browser-init.service.ts
#	src/modules/app/server-app.module.ts
#	src/modules/app/server-init.service.ts
#	src/ngx-translate-loaders/translate-browser.loader.ts
#	src/ngx-translate-loaders/translate-server.loader.ts
#	src/themes/custom/lazy-theme.module.ts
#	src/themes/dspace/lazy-theme.module.ts
#	yarn.lock
This commit is contained in:
Andrea Barbasso
2024-03-15 13:07:20 +01:00
2976 changed files with 97745 additions and 62091 deletions

View File

@@ -1,41 +1,44 @@
import { followLink } from '../../../shared/utils/follow-link-config.model';
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs';
import { ActivatedRouteSnapshot,
RouterStateSnapshot,
} from '@angular/router';
import { Store } from '@ngrx/store';
import { Observable } from 'rxjs';
import { switchMap } from 'rxjs/operators';
import { followLink } from '../../../shared/utils/follow-link-config.model';
import { IdentifiableDataService } from '../../data/base/identifiable-data.service';
import { RemoteData } from '../../data/remote-data';
import { getFirstCompletedRemoteData } from '../../shared/operators';
import { IdentifiableDataService } from '../../data/base/identifiable-data.service';
/**
* This class represents a resolver that requests a specific item before the route is activated
*/
@Injectable()
@Injectable({ providedIn: 'root' })
export class SubmissionObjectResolver<T> {
constructor(
constructor(
protected dataService: IdentifiableDataService<any>,
protected store: Store<any>,
) {
}
) {
}
/**
/**
* Method for resolving an item based on the parameters in the current route
* @param {ActivatedRouteSnapshot} route The current ActivatedRouteSnapshot
* @param {RouterStateSnapshot} state The current RouterStateSnapshot
* @returns Observable<<RemoteData<Item>> Emits the found item based on the parameters in the current route,
* or an error if something went wrong
*/
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<RemoteData<T>> {
const itemRD$ = this.dataService.findById(route.params.id,
true,
false,
followLink('item'),
).pipe(
getFirstCompletedRemoteData(),
switchMap((wfiRD: RemoteData<any>) => wfiRD.payload.item as Observable<RemoteData<T>>),
getFirstCompletedRemoteData()
);
return itemRD$;
}
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<RemoteData<T>> {
const itemRD$ = this.dataService.findById(route.params.id,
true,
false,
followLink('item'),
).pipe(
getFirstCompletedRemoteData(),
switchMap((wfiRD: RemoteData<any>) => wfiRD.payload.item as Observable<RemoteData<T>>),
getFirstCompletedRemoteData(),
);
return itemRD$;
}
}