mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
33 lines
1.3 KiB
TypeScript
33 lines
1.3 KiB
TypeScript
import { Injectable } from '@angular/core';
|
|
import {
|
|
ActivatedRouteSnapshot,
|
|
RouterStateSnapshot,
|
|
} from '@angular/router';
|
|
|
|
import { BreadcrumbConfig } from '../breadcrumbs/breadcrumb/breadcrumb-config.model';
|
|
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
|
|
import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service';
|
|
|
|
/**
|
|
* This class resolves a BreadcrumbConfig object with an i18n key string for a route
|
|
* It adds the metadata field of the current browse-by page
|
|
*/
|
|
@Injectable({ providedIn: 'root' })
|
|
export class BrowseByI18nBreadcrumbResolver extends I18nBreadcrumbResolver {
|
|
constructor(protected breadcrumbService: I18nBreadcrumbsService) {
|
|
super(breadcrumbService);
|
|
}
|
|
|
|
/**
|
|
* Method for resolving a browse-by i18n breadcrumb configuration object
|
|
* @param {ActivatedRouteSnapshot} route The current ActivatedRouteSnapshot
|
|
* @param {RouterStateSnapshot} state The current RouterStateSnapshot
|
|
* @returns BreadcrumbConfig object for a browse-by page
|
|
*/
|
|
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): BreadcrumbConfig<string> {
|
|
const extendedBreadcrumbKey = route.data.breadcrumbKey + '.' + route.params.id;
|
|
route.data = Object.assign({}, route.data, { breadcrumbKey: extendedBreadcrumbKey });
|
|
return super.resolve(route, state);
|
|
}
|
|
}
|