import { Route } from '@angular/router'; import { browseByGuard } from '../browse-by/browse-by-guard'; import { browseByI18nBreadcrumbResolver } from '../browse-by/browse-by-i18n-breadcrumb.resolver'; import { authenticatedGuard } from '../core/auth/authenticated.guard'; import { communityBreadcrumbResolver } from '../core/breadcrumbs/community-breadcrumb.resolver'; import { i18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver'; import { ComcolBrowseByComponent } from '../shared/comcol/sections/comcol-browse-by/comcol-browse-by.component'; import { ComcolSearchSectionComponent } from '../shared/comcol/sections/comcol-search-section/comcol-search-section.component'; import { dsoEditMenuResolver } from '../shared/dso-page/dso-edit-menu.resolver'; import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model'; import { MenuItemType } from '../shared/menu/menu-item-type.model'; import { communityPageResolver } from './community-page.resolver'; import { communityPageAdministratorGuard } from './community-page-administrator.guard'; import { COMMUNITY_CREATE_PATH, COMMUNITY_EDIT_PATH, } from './community-page-routing-paths'; import { CreateCommunityPageComponent } from './create-community-page/create-community-page.component'; import { createCommunityPageGuard } from './create-community-page/create-community-page.guard'; import { DeleteCommunityPageComponent } from './delete-community-page/delete-community-page.component'; import { SubComColSectionComponent } from './sections/sub-com-col-section/sub-com-col-section.component'; import { ThemedCommunityPageComponent } from './themed-community-page.component'; export const ROUTES: Route[] = [ { 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-routes') .then((m) => m.ROUTES), canActivate: [communityPageAdministratorGuard], }, { path: 'delete', pathMatch: 'full', component: DeleteCommunityPageComponent, canActivate: [authenticatedGuard], }, { path: '', component: ThemedCommunityPageComponent, resolve: { menu: dsoEditMenuResolver, }, children: [ { path: '', pathMatch: 'full', component: ComcolSearchSectionComponent, }, { path: 'subcoms-cols', pathMatch: 'full', component: SubComColSectionComponent, resolve: { breadcrumb: i18nBreadcrumbResolver, }, data: { breadcrumbKey: 'community.subcoms-cols' }, }, { path: 'browse/:id', pathMatch: 'full', component: ComcolBrowseByComponent, canActivate: [browseByGuard], resolve: { breadcrumb: browseByI18nBreadcrumbResolver, }, data: { breadcrumbKey: 'browse.metadata' }, }, ], }, ], data: { menu: { public: [{ id: 'statistics_community_:id', /* for GI this is set to false active: true, visible: true, */ active: false, visible: false, index: 2, model: { type: MenuItemType.LINK, text: 'menu.section.statistics', link: 'statistics/communities/:id/', } as LinkMenuItemModel, }], }, }, }, ];