Files
dspace-angular/src/app/community-page/community-page-routing.module.ts
Alexandre Vryghem 6988df519e Merge branch 'w2p-120109_fix-findByHref-and-findListByHref-skipping-their-response_contribute-7.6' into dspace-7_x
# Conflicts:
#	src/app/core/data/base/base-data.service.spec.ts
#	src/app/core/data/base/base-data.service.ts
#	src/app/item-page/edit-item-page/abstract-item-update/abstract-item-update.component.ts
2024-12-05 23:49:13 +01:00

105 lines
3.5 KiB
TypeScript

import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { CommunityPageResolver } from './community-page.resolver';
import { CreateCommunityPageComponent } from './create-community-page/create-community-page.component';
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
import { CreateCommunityPageGuard } from './create-community-page/create-community-page.guard';
import { DeleteCommunityPageComponent } from './delete-community-page/delete-community-page.component';
import { CommunityBreadcrumbResolver } from '../core/breadcrumbs/community-breadcrumb.resolver';
import { DSOBreadcrumbsService } from '../core/breadcrumbs/dso-breadcrumbs.service';
import { LinkService } from '../core/cache/builders/link.service';
import { COMMUNITY_EDIT_PATH, COMMUNITY_CREATE_PATH } from './community-page-routing-paths';
import { CommunityPageAdministratorGuard } from './community-page-administrator.guard';
import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model';
import { ThemedCommunityPageComponent } from './themed-community-page.component';
import { MenuItemType } from '../shared/menu/menu-item-type.model';
import { DSOEditMenuResolver } from '../shared/dso-page/dso-edit-menu.resolver';
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
@NgModule({
imports: [
RouterModule.forChild([
{
path: COMMUNITY_CREATE_PATH,
children: [
{
path: '',
component: CreateCommunityPageComponent,
resolve: {
breadcrumb: I18nBreadcrumbResolver,
},
data: {
breadcrumbKey: 'community.create',
},
}
],
canActivate: [AuthenticatedGuard, CreateCommunityPageGuard],
data: {
breadcrumbQueryParam: 'parent',
},
resolve: {
breadcrumb: CommunityBreadcrumbResolver,
},
runGuardsAndResolvers: 'always',
},
{
path: ':id',
resolve: {
dso: CommunityPageResolver,
breadcrumb: CommunityBreadcrumbResolver,
},
runGuardsAndResolvers: 'always',
children: [
{
path: COMMUNITY_EDIT_PATH,
loadChildren: () => import('./edit-community-page/edit-community-page.module')
.then((m) => m.EditCommunityPageModule),
canActivate: [CommunityPageAdministratorGuard]
},
{
path: 'delete',
pathMatch: 'full',
component: DeleteCommunityPageComponent,
canActivate: [AuthenticatedGuard],
},
{
path: '',
component: ThemedCommunityPageComponent,
pathMatch: 'full',
resolve: {
menu: DSOEditMenuResolver,
},
}
],
data: {
menu: {
public: [{
id: 'statistics_community_:id',
active: true,
visible: true,
index: 2,
model: {
type: MenuItemType.LINK,
text: 'menu.section.statistics',
link: 'statistics/communities/:id/',
} as LinkMenuItemModel,
}],
},
},
},
])
],
providers: [
CommunityPageResolver,
CommunityBreadcrumbResolver,
DSOBreadcrumbsService,
LinkService,
CreateCommunityPageGuard,
CommunityPageAdministratorGuard,
]
})
export class CommunityPageRoutingModule {
}