import { Route } from '@angular/router'; import { authenticatedGuard } from '../core/auth/authenticated.guard'; import { bitstreamBreadcrumbResolver } from '../core/breadcrumbs/bitstream-breadcrumb.resolver'; import { i18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver'; import { ResourcePolicyCreateComponent } from '../shared/resource-policies/create/resource-policy-create.component'; import { ResourcePolicyEditComponent } from '../shared/resource-policies/edit/resource-policy-edit.component'; import { resourcePolicyResolver } from '../shared/resource-policies/resolvers/resource-policy.resolver'; import { resourcePolicyTargetResolver } from '../shared/resource-policies/resolvers/resource-policy-target.resolver'; import { BitstreamAuthorizationsComponent } from './bitstream-authorizations/bitstream-authorizations.component'; import { BitstreamDownloadPageComponent } from './bitstream-download-page/bitstream-download-page.component'; import { bitstreamPageResolver } from './bitstream-page.resolver'; import { bitstreamPageAuthorizationsGuard } from './bitstream-page-authorizations.guard'; import { ThemedEditBitstreamPageComponent } from './edit-bitstream-page/themed-edit-bitstream-page.component'; import { legacyBitstreamURLRedirectGuard } from './legacy-bitstream-url-redirect.guard'; const EDIT_BITSTREAM_PATH = ':id/edit'; const EDIT_BITSTREAM_AUTHORIZATIONS_PATH = ':id/authorizations'; /** * Routing module to help navigate Bitstream pages */ export const ROUTES: Route[] = [ { // Resolve XMLUI bitstream download URLs path: 'handle/:prefix/:suffix/:filename', component: BitstreamDownloadPageComponent, canActivate: [legacyBitstreamURLRedirectGuard], }, { // Resolve JSPUI bitstream download URLs path: ':prefix/:suffix/:sequence_id/:filename', component: BitstreamDownloadPageComponent, canActivate: [legacyBitstreamURLRedirectGuard], }, { // Resolve angular bitstream download URLs path: ':id/download', component: BitstreamDownloadPageComponent, resolve: { bitstream: bitstreamPageResolver, }, }, { path: EDIT_BITSTREAM_PATH, component: ThemedEditBitstreamPageComponent, resolve: { bitstream: bitstreamPageResolver, breadcrumb: bitstreamBreadcrumbResolver, }, canActivate: [authenticatedGuard], }, { path: EDIT_BITSTREAM_AUTHORIZATIONS_PATH, canActivate: [bitstreamPageAuthorizationsGuard], children: [ { path: 'create', resolve: { resourcePolicyTarget: resourcePolicyTargetResolver, }, component: ResourcePolicyCreateComponent, data: { title: 'resource-policies.create.page.title', showBreadcrumbs: true }, }, { path: 'edit', resolve: { breadcrumb: i18nBreadcrumbResolver, resourcePolicy: resourcePolicyResolver, }, component: ResourcePolicyEditComponent, data: { breadcrumbKey: 'item.edit', title: 'resource-policies.edit.page.title', showBreadcrumbs: true }, }, { path: '', resolve: { bitstream: bitstreamPageResolver, breadcrumb: bitstreamBreadcrumbResolver, }, component: BitstreamAuthorizationsComponent, data: { title: 'bitstream.edit.authorizations.title', showBreadcrumbs: true }, }, ], }, ];