mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-18 07:23:03 +00:00
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:
@@ -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$;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user