Files
dspace-angular/src/app/bitstream-page/bitstream-page-routes.ts

88 lines
3.2 KiB
TypeScript

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 { ThemedEditBitstreamPageComponent } from './edit-bitstream-page/themed-edit-bitstream-page.component';
import { legacyBitstreamUrlResolver } from './legacy-bitstream-url.resolver';
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,
resolve: {
bitstream: legacyBitstreamUrlResolver,
},
},
{
// Resolve JSPUI bitstream download URLs
path: ':prefix/:suffix/:sequence_id/:filename',
component: BitstreamDownloadPageComponent,
resolve: {
bitstream: legacyBitstreamUrlResolver,
},
},
{
// 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,
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 },
},
],
},
];