77349: Add themeable components - pt. 1

This commit is contained in:
Yana De Pauw
2021-03-03 11:05:52 +01:00
committed by Art Lowel
parent 66463cfc04
commit 8b7a33bff2
81 changed files with 833 additions and 51 deletions

View File

@@ -0,0 +1,28 @@
import { Component, OnInit } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { BrowseBySwitcherComponent } from './browse-by-switcher.component';
@Component({
selector: 'ds-themed-browse-by-switcher',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html'
})
/**
* Component for determining what Browse-By component to use depending on the metadata (browse ID) provided
*/
export class ThemedBrowseBySwitcherComponent extends ThemedComponent<BrowseBySwitcherComponent> {
protected getComponentName(): string {
return 'BrowseBySwitcherComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/+browse-by/+browse-by-switcher/browse-by-switcher.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./browse-by-switcher.component`);
}
}

View File

@@ -1,9 +1,9 @@
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { BrowseByGuard } from './browse-by-guard'; import { BrowseByGuard } from './browse-by-guard';
import { BrowseBySwitcherComponent } from './+browse-by-switcher/browse-by-switcher.component';
import { BrowseByDSOBreadcrumbResolver } from './browse-by-dso-breadcrumb.resolver'; import { BrowseByDSOBreadcrumbResolver } from './browse-by-dso-breadcrumb.resolver';
import { BrowseByI18nBreadcrumbResolver } from './browse-by-i18n-breadcrumb.resolver'; import { BrowseByI18nBreadcrumbResolver } from './browse-by-i18n-breadcrumb.resolver';
import { ThemedBrowseBySwitcherComponent } from './+browse-by-switcher/themed-browse-by-switcher.component';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -14,7 +14,7 @@ import { BrowseByI18nBreadcrumbResolver } from './browse-by-i18n-breadcrumb.reso
children: [ children: [
{ {
path: ':id', path: ':id',
component: BrowseBySwitcherComponent, component: ThemedBrowseBySwitcherComponent,
canActivate: [BrowseByGuard], canActivate: [BrowseByGuard],
resolve: { breadcrumb: BrowseByI18nBreadcrumbResolver }, resolve: { breadcrumb: BrowseByI18nBreadcrumbResolver },
data: { title: 'browse.title', breadcrumbKey: 'browse.metadata' } data: { title: 'browse.title', breadcrumbKey: 'browse.metadata' }

View File

@@ -5,6 +5,7 @@ import { SharedModule } from '../shared/shared.module';
import { BrowseByMetadataPageComponent } from './+browse-by-metadata-page/browse-by-metadata-page.component'; import { BrowseByMetadataPageComponent } from './+browse-by-metadata-page/browse-by-metadata-page.component';
import { BrowseByDatePageComponent } from './+browse-by-date-page/browse-by-date-page.component'; import { BrowseByDatePageComponent } from './+browse-by-date-page/browse-by-date-page.component';
import { BrowseBySwitcherComponent } from './+browse-by-switcher/browse-by-switcher.component'; import { BrowseBySwitcherComponent } from './+browse-by-switcher/browse-by-switcher.component';
import { ThemedBrowseBySwitcherComponent } from './+browse-by-switcher/themed-browse-by-switcher.component';
const ENTRY_COMPONENTS = [ const ENTRY_COMPONENTS = [
// put only entry components that use custom decorator // put only entry components that use custom decorator
@@ -20,6 +21,7 @@ const ENTRY_COMPONENTS = [
], ],
declarations: [ declarations: [
BrowseBySwitcherComponent, BrowseBySwitcherComponent,
ThemedBrowseBySwitcherComponent,
...ENTRY_COMPONENTS ...ENTRY_COMPONENTS
], ],
exports: [ exports: [

View File

@@ -1,7 +1,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { CollectionPageComponent } from './collection-page.component';
import { CollectionPageResolver } from './collection-page.resolver'; import { CollectionPageResolver } from './collection-page.resolver';
import { CreateCollectionPageComponent } from './create-collection-page/create-collection-page.component'; import { CreateCollectionPageComponent } from './create-collection-page/create-collection-page.component';
import { AuthenticatedGuard } from '../core/auth/authenticated.guard'; import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
@@ -21,6 +20,7 @@ import {
import { CollectionPageAdministratorGuard } from './collection-page-administrator.guard'; import { CollectionPageAdministratorGuard } from './collection-page-administrator.guard';
import { MenuItemType } from '../shared/menu/initial-menus-state'; import { MenuItemType } from '../shared/menu/initial-menus-state';
import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model'; import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model';
import { ThemedCollectionPageComponent } from './themed-collection-page.component';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -62,7 +62,7 @@ import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model';
}, },
{ {
path: '', path: '',
component: CollectionPageComponent, component: ThemedCollectionPageComponent,
pathMatch: 'full', pathMatch: 'full',
} }
], ],

View File

@@ -13,6 +13,7 @@ import { CollectionItemMapperComponent } from './collection-item-mapper/collecti
import { SearchService } from '../core/shared/search/search.service'; import { SearchService } from '../core/shared/search/search.service';
import { StatisticsModule } from '../statistics/statistics.module'; import { StatisticsModule } from '../statistics/statistics.module';
import { CollectionFormModule } from './collection-form/collection-form.module'; import { CollectionFormModule } from './collection-form/collection-form.module';
import { ThemedCollectionPageComponent } from './themed-collection-page.component';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -25,6 +26,7 @@ import { CollectionFormModule } from './collection-form/collection-form.module';
], ],
declarations: [ declarations: [
CollectionPageComponent, CollectionPageComponent,
ThemedCollectionPageComponent,
CreateCollectionPageComponent, CreateCollectionPageComponent,
DeleteCollectionPageComponent, DeleteCollectionPageComponent,
EditItemTemplatePageComponent, EditItemTemplatePageComponent,

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../shared/theme-support/themed.component';
import { CollectionPageComponent } from './collection-page.component';
@Component({
selector: 'ds-themed-community-page',
styleUrls: [],
templateUrl: '../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedCollectionPageComponent extends ThemedComponent<CollectionPageComponent> {
protected getComponentName(): string {
return 'CollectionPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../themes/${themeName}/app/+collection-page/collection-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./collection-page.component`);
}
}

View File

@@ -1,7 +1,6 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { CommunityPageComponent } from './community-page.component';
import { CommunityPageResolver } from './community-page.resolver'; import { CommunityPageResolver } from './community-page.resolver';
import { CreateCommunityPageComponent } from './create-community-page/create-community-page.component'; import { CreateCommunityPageComponent } from './create-community-page/create-community-page.component';
import { AuthenticatedGuard } from '../core/auth/authenticated.guard'; import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
@@ -14,6 +13,7 @@ import { COMMUNITY_EDIT_PATH, COMMUNITY_CREATE_PATH } from './community-page-rou
import { CommunityPageAdministratorGuard } from './community-page-administrator.guard'; import { CommunityPageAdministratorGuard } from './community-page-administrator.guard';
import { MenuItemType } from '../shared/menu/initial-menus-state'; import { MenuItemType } from '../shared/menu/initial-menus-state';
import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model'; import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model';
import { ThemedCommunityPageComponent } from './themed-community-page.component';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -45,7 +45,7 @@ import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model';
}, },
{ {
path: '', path: '',
component: CommunityPageComponent, component: ThemedCommunityPageComponent,
pathMatch: 'full', pathMatch: 'full',
} }
], ],

View File

@@ -11,6 +11,14 @@ import { CreateCommunityPageComponent } from './create-community-page/create-com
import { DeleteCommunityPageComponent } from './delete-community-page/delete-community-page.component'; import { DeleteCommunityPageComponent } from './delete-community-page/delete-community-page.component';
import { StatisticsModule } from '../statistics/statistics.module'; import { StatisticsModule } from '../statistics/statistics.module';
import { CommunityFormModule } from './community-form/community-form.module'; import { CommunityFormModule } from './community-form/community-form.module';
import { ThemedCommunityPageComponent } from './themed-community-page.component';
const DECLARATIONS = [CommunityPageComponent,
ThemedCommunityPageComponent,
CommunityPageSubCollectionListComponent,
CommunityPageSubCommunityListComponent,
CreateCommunityPageComponent,
DeleteCommunityPageComponent];
@NgModule({ @NgModule({
imports: [ imports: [
@@ -21,11 +29,10 @@ import { CommunityFormModule } from './community-form/community-form.module';
CommunityFormModule CommunityFormModule
], ],
declarations: [ declarations: [
CommunityPageComponent, ...DECLARATIONS
CommunityPageSubCollectionListComponent, ],
CommunityPageSubCommunityListComponent, exports: [
CreateCommunityPageComponent, ...DECLARATIONS
DeleteCommunityPageComponent
] ]
}) })

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../shared/theme-support/themed.component';
import { CommunityPageComponent } from './community-page.component';
@Component({
selector: 'ds-themed-community-page',
styleUrls: [],
templateUrl: '../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedCommunityPageComponent extends ThemedComponent<CommunityPageComponent> {
protected getComponentName(): string {
return 'CommunityPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../themes/${themeName}/app/+community-page/community-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./community-page.component`);
}
}

View File

@@ -1,8 +1,8 @@
import { LookupGuard } from './lookup-guard'; import { LookupGuard } from './lookup-guard';
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule, UrlSegment } from '@angular/router'; import { RouterModule, UrlSegment } from '@angular/router';
import { ObjectNotFoundComponent } from './objectnotfound/objectnotfound.component';
import { isNotEmpty } from '../shared/empty.util'; import { isNotEmpty } from '../shared/empty.util';
import { ThemedObjectNotFoundComponent } from './objectnotfound/themed-objectnotfound.component';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -10,7 +10,7 @@ import { isNotEmpty } from '../shared/empty.util';
{ {
matcher: urlMatcher, matcher: urlMatcher,
canActivate: [LookupGuard], canActivate: [LookupGuard],
component: ObjectNotFoundComponent } component: ThemedObjectNotFoundComponent }
]) ])
], ],
providers: [ providers: [

View File

@@ -4,6 +4,7 @@ import { SharedModule } from '../shared/shared.module';
import { LookupRoutingModule } from './lookup-by-id-routing.module'; import { LookupRoutingModule } from './lookup-by-id-routing.module';
import { ObjectNotFoundComponent } from './objectnotfound/objectnotfound.component'; import { ObjectNotFoundComponent } from './objectnotfound/objectnotfound.component';
import { DsoRedirectDataService } from '../core/data/dso-redirect-data.service'; import { DsoRedirectDataService } from '../core/data/dso-redirect-data.service';
import { ThemedObjectNotFoundComponent } from './objectnotfound/themed-objectnotfound.component';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -12,7 +13,8 @@ import { DsoRedirectDataService } from '../core/data/dso-redirect-data.service';
SharedModule, SharedModule,
], ],
declarations: [ declarations: [
ObjectNotFoundComponent ObjectNotFoundComponent,
ThemedObjectNotFoundComponent
], ],
providers: [ providers: [
DsoRedirectDataService DsoRedirectDataService

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { ObjectNotFoundComponent } from './objectnotfound.component';
@Component({
selector: 'ds-themed-objnotfound',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedObjectNotFoundComponent extends ThemedComponent<ObjectNotFoundComponent> {
protected getComponentName(): string {
return 'ObjectNotFoundComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/+lookup-by-id/objectnotfound/objectnotfound.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./objectnotfound.component`);
}
}

View File

@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { ConfigurationSearchPageGuard } from './configuration-search-page.guard'; import { ConfigurationSearchPageGuard } from './configuration-search-page.guard';
import { ConfigurationSearchPageComponent } from './configuration-search-page.component';
import { SearchPageComponent } from './search-page.component';
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver'; import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service'; import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service';
import { SearchPageModule } from './search-page.module'; import { SearchPageModule } from './search-page.module';
import { ThemedSearchPageComponent } from './themed-search-page.component';
import { ThemedConfigurationSearchPageComponent } from './themed-configuration-search-page.component';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -15,8 +15,8 @@ import { SearchPageModule } from './search-page.module';
path: '', path: '',
resolve: { breadcrumb: I18nBreadcrumbResolver }, data: { title: 'search.title', breadcrumbKey: 'search' }, resolve: { breadcrumb: I18nBreadcrumbResolver }, data: { title: 'search.title', breadcrumbKey: 'search' },
children: [ children: [
{ path: '', component: SearchPageComponent }, { path: '', component: ThemedSearchPageComponent },
{ path: ':configuration', component: ConfigurationSearchPageComponent, canActivate: [ConfigurationSearchPageGuard] } { path: ':configuration', component: ThemedConfigurationSearchPageComponent, canActivate: [ConfigurationSearchPageGuard] }
] ]
}] }]
) )

View File

@@ -13,11 +13,13 @@ import { SearchFilterService } from '../core/shared/search/search-filter.service
import { SearchConfigurationService } from '../core/shared/search/search-configuration.service'; import { SearchConfigurationService } from '../core/shared/search/search-configuration.service';
import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module'; import { JournalEntitiesModule } from '../entity-groups/journal-entities/journal-entities.module';
import { ResearchEntitiesModule } from '../entity-groups/research-entities/research-entities.module'; import { ResearchEntitiesModule } from '../entity-groups/research-entities/research-entities.module';
import { ThemedSearchPageComponent } from './themed-search-page.component';
const components = [ const components = [
SearchPageComponent, SearchPageComponent,
SearchComponent, SearchComponent,
SearchTrackerComponent SearchTrackerComponent,
ThemedSearchPageComponent
]; ];
@NgModule({ @NgModule({

View File

@@ -0,0 +1,73 @@
import { Component, Input } from '@angular/core';
import { ThemedComponent } from '../shared/theme-support/themed.component';
import { ConfigurationSearchPageComponent } from './configuration-search-page.component';
import { Observable } from 'rxjs';
import { Context } from '../core/shared/context.model';
@Component({
selector: 'ds-themed-configuration-search-page',
styleUrls: [],
templateUrl: '../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedConfigurationSearchPageComponent extends ThemedComponent<ConfigurationSearchPageComponent> {
/**
* The configuration to use for the search options
* If empty, the configuration will be determined by the route parameter called 'configuration'
*/
@Input() configuration: string;
/**
* The actual query for the fixed filter.
* If empty, the query will be determined by the route parameter called 'filter'
*/
@Input() fixedFilterQuery: string;
/**
* True when the search component should show results on the current page
*/
@Input() inPlaceSearch = true;
/**
* Whether or not the search bar should be visible
*/
@Input()
searchEnabled = true;
/**
* The width of the sidebar (bootstrap columns)
*/
@Input()
sideBarWidth = 3;
/**
* The currently applied configuration (determines title of search)
*/
@Input()
configuration$: Observable<string>;
/**
* The current context
*/
@Input()
context: Context;
protected inAndOutputNames: (keyof ConfigurationSearchPageComponent & keyof this)[] =
['configuration', 'fixedFilterQuery', 'inPlaceSearch', 'searchEnabled', 'sideBarWidth', 'configuration$', 'context'];
protected getComponentName(): string {
return 'ConfigurationSearchPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../themes/${themeName}/app/+search-page/configuration-search-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./configuration-search-page.component`);
}
}

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../shared/theme-support/themed.component';
import { SearchPageComponent } from './search-page.component';
@Component({
selector: 'ds-themed-search-page',
styleUrls: [],
templateUrl: '../shared/theme-support/themed.component.html',
})
/**
* This component represents the whole search page
* It renders search results depending on the current search options
*/
export class ThemedSearchPageComponent extends ThemedComponent<SearchPageComponent> {
protected getComponentName(): string {
return 'SearchPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../themes/${themeName}/app/+search-page/search-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./search-page.component`);
}
}

View File

@@ -2,7 +2,6 @@ import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { AuthBlockingGuard } from './core/auth/auth-blocking.guard'; import { AuthBlockingGuard } from './core/auth/auth-blocking.guard';
import { PageNotFoundComponent } from './pagenotfound/pagenotfound.component';
import { AuthenticatedGuard } from './core/auth/authenticated.guard'; import { AuthenticatedGuard } from './core/auth/authenticated.guard';
import { SiteAdministratorGuard } from './core/data/feature-authorization/feature-authorization-guard/site-administrator.guard'; import { SiteAdministratorGuard } from './core/data/feature-authorization/feature-authorization-guard/site-administrator.guard';
import { import {
@@ -23,6 +22,8 @@ import { ReloadGuard } from './core/reload/reload.guard';
import { EndUserAgreementCurrentUserGuard } from './core/end-user-agreement/end-user-agreement-current-user.guard'; import { EndUserAgreementCurrentUserGuard } from './core/end-user-agreement/end-user-agreement-current-user.guard';
import { SiteRegisterGuard } from './core/data/feature-authorization/feature-authorization-guard/site-register.guard'; import { SiteRegisterGuard } from './core/data/feature-authorization/feature-authorization-guard/site-register.guard';
import { ForbiddenComponent } from './forbidden/forbidden.component'; import { ForbiddenComponent } from './forbidden/forbidden.component';
import { ThemedPageNotFoundComponent } from './pagenotfound/themed-pagenotfound.component';
import { ThemedForbiddenComponent } from './forbidden/themed-forbidden.component';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -30,7 +31,7 @@ import { ForbiddenComponent } from './forbidden/forbidden.component';
path: '', canActivate: [AuthBlockingGuard], path: '', canActivate: [AuthBlockingGuard],
children: [ children: [
{ path: '', redirectTo: '/home', pathMatch: 'full' }, { path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: 'reload/:rnd', component: PageNotFoundComponent, pathMatch: 'full', canActivate: [ReloadGuard] }, { path: 'reload/:rnd', component: ThemedPageNotFoundComponent, pathMatch: 'full', canActivate: [ReloadGuard] },
{ {
path: 'home', path: 'home',
loadChildren: () => import('./+home-page/home-page.module') loadChildren: () => import('./+home-page/home-page.module')
@@ -173,14 +174,14 @@ import { ForbiddenComponent } from './forbidden/forbidden.component';
}, },
{ {
path: FORBIDDEN_PATH, path: FORBIDDEN_PATH,
component: ForbiddenComponent component: ThemedForbiddenComponent
}, },
{ {
path: 'statistics', path: 'statistics',
loadChildren: () => import('./statistics-page/statistics-page-routing.module') loadChildren: () => import('./statistics-page/statistics-page-routing.module')
.then((m) => m.StatisticsPageRoutingModule), .then((m) => m.StatisticsPageRoutingModule),
}, },
{ path: '**', pathMatch: 'full', component: PageNotFoundComponent }, { path: '**', pathMatch: 'full', component: ThemedPageNotFoundComponent },
]} ]}
],{ ],{
onSameUrlNavigation: 'reload', onSameUrlNavigation: 'reload',

View File

@@ -46,6 +46,8 @@ import { XsrfInterceptor } from './core/xsrf/xsrf.interceptor';
import { RootComponent } from './root/root.component'; import { RootComponent } from './root/root.component';
import { ThemedRootComponent } from './root/themed-root.component'; import { ThemedRootComponent } from './root/themed-root.component';
import { ThemedEntryComponentModule } from '../themes/themed-entry-component.module'; import { ThemedEntryComponentModule } from '../themes/themed-entry-component.module';
import { ThemedPageNotFoundComponent } from './pagenotfound/themed-pagenotfound.component';
import { ThemedForbiddenComponent } from './forbidden/themed-forbidden.component';
export function getBase() { export function getBase() {
return environment.ui.nameSpace; return environment.ui.nameSpace;
@@ -133,11 +135,13 @@ const DECLARATIONS = [
ExpandableAdminSidebarSectionComponent, ExpandableAdminSidebarSectionComponent,
FooterComponent, FooterComponent,
PageNotFoundComponent, PageNotFoundComponent,
ThemedPageNotFoundComponent,
NotificationComponent, NotificationComponent,
NotificationsBoardComponent, NotificationsBoardComponent,
SearchNavbarComponent, SearchNavbarComponent,
BreadcrumbsComponent, BreadcrumbsComponent,
ForbiddenComponent, ForbiddenComponent,
ThemedForbiddenComponent,
]; ];
const EXPORTS = [ const EXPORTS = [

View File

@@ -4,7 +4,14 @@ import { SharedModule } from '../shared/shared.module';
import { CommunityListPageComponent } from './community-list-page.component'; import { CommunityListPageComponent } from './community-list-page.component';
import { CommunityListPageRoutingModule } from './community-list-page.routing.module'; import { CommunityListPageRoutingModule } from './community-list-page.routing.module';
import { CommunityListComponent } from './community-list/community-list.component'; import { CommunityListComponent } from './community-list/community-list.component';
import { ThemedCommunityListPageComponent } from './themed-community-list-page.component';
const DECLARATIONS = [
CommunityListPageComponent,
CommunityListComponent,
ThemedCommunityListPageComponent
];
/** /**
* The page which houses a title and the community list, as described in community-list.component * The page which houses a title and the community list, as described in community-list.component
*/ */
@@ -15,9 +22,11 @@ import { CommunityListComponent } from './community-list/community-list.componen
CommunityListPageRoutingModule CommunityListPageRoutingModule
], ],
declarations: [ declarations: [
CommunityListPageComponent, ...DECLARATIONS
CommunityListComponent ],
] exports: [
...DECLARATIONS,
],
}) })
export class CommunityListPageModule { export class CommunityListPageModule {

View File

@@ -2,8 +2,8 @@ import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { CdkTreeModule } from '@angular/cdk/tree'; import { CdkTreeModule } from '@angular/cdk/tree';
import { CommunityListPageComponent } from './community-list-page.component';
import { CommunityListService } from './community-list-service'; import { CommunityListService } from './community-list-service';
import { ThemedCommunityListPageComponent } from './themed-community-list-page.component';
/** /**
* RouterModule to help navigate to the page with the community list tree * RouterModule to help navigate to the page with the community list tree
@@ -13,7 +13,7 @@ import { CommunityListService } from './community-list-service';
RouterModule.forChild([ RouterModule.forChild([
{ {
path: '', path: '',
component: CommunityListPageComponent, component: ThemedCommunityListPageComponent,
pathMatch: 'full', pathMatch: 'full',
data: { title: 'communityList.tabTitle' } data: { title: 'communityList.tabTitle' }
} }

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../shared/theme-support/themed.component';
import { CommunityListPageComponent } from './community-list-page.component';
/**
* Page with title and the community list tree, as described in community-list.component;
* navigated to with community-list.page.routing.module
*/
@Component({
selector: 'ds-themed-community-list-page',
styleUrls: [],
templateUrl: '../shared/theme-support/themed.component.html',
})
export class ThemedCommunityListPageComponent extends ThemedComponent<CommunityListPageComponent> {
protected getComponentName(): string {
return 'CommunityListPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../themes/${themeName}/app/community-list-page/community-list-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./community-list-page.component`);
}
}

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../shared/theme-support/themed.component';
import { ForbiddenComponent } from './forbidden.component';
@Component({
selector: 'ds-themed-forbidden',
styleUrls: [],
templateUrl: '../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedForbiddenComponent extends ThemedComponent<ForbiddenComponent> {
protected getComponentName(): string {
return 'ForbiddenComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../themes/${themeName}/app/forbidden/forbidden.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./forbidden.component`);
}
}

View File

@@ -0,0 +1,28 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { EndUserAgreementComponent } from './end-user-agreement.component';
@Component({
selector: 'ds-themed-end-user-agreement',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedEndUserAgreementComponent extends ThemedComponent<EndUserAgreementComponent> {
protected getComponentName(): string {
return 'EndUserAgreementComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/info/end-user-agreement/end-user-agreement.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./end-user-agreement.component`);
}
}

View File

@@ -1,16 +1,16 @@
import { NgModule } from '@angular/core'; import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { EndUserAgreementComponent } from './end-user-agreement/end-user-agreement.component';
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver'; import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
import { PrivacyComponent } from './privacy/privacy.component';
import { PRIVACY_PATH, END_USER_AGREEMENT_PATH } from './info-routing-paths'; import { PRIVACY_PATH, END_USER_AGREEMENT_PATH } from './info-routing-paths';
import { ThemedEndUserAgreementComponent } from './end-user-agreement/themed-end-user-agreement.component';
import { ThemedPrivacyComponent } from './privacy/themed-privacy.component';
@NgModule({ @NgModule({
imports: [ imports: [
RouterModule.forChild([ RouterModule.forChild([
{ {
path: END_USER_AGREEMENT_PATH, path: END_USER_AGREEMENT_PATH,
component: EndUserAgreementComponent, component: ThemedEndUserAgreementComponent,
resolve: { breadcrumb: I18nBreadcrumbResolver }, resolve: { breadcrumb: I18nBreadcrumbResolver },
data: { title: 'info.end-user-agreement.title', breadcrumbKey: 'info.end-user-agreement' } data: { title: 'info.end-user-agreement.title', breadcrumbKey: 'info.end-user-agreement' }
} }
@@ -18,7 +18,7 @@ import { PRIVACY_PATH, END_USER_AGREEMENT_PATH } from './info-routing-paths';
RouterModule.forChild([ RouterModule.forChild([
{ {
path: PRIVACY_PATH, path: PRIVACY_PATH,
component: PrivacyComponent, component: ThemedPrivacyComponent,
resolve: { breadcrumb: I18nBreadcrumbResolver }, resolve: { breadcrumb: I18nBreadcrumbResolver },
data: { title: 'info.privacy.title', breadcrumbKey: 'info.privacy' } data: { title: 'info.privacy.title', breadcrumbKey: 'info.privacy' }
} }

View File

@@ -6,6 +6,17 @@ import { InfoRoutingModule } from './info-routing.module';
import { EndUserAgreementContentComponent } from './end-user-agreement/end-user-agreement-content/end-user-agreement-content.component'; import { EndUserAgreementContentComponent } from './end-user-agreement/end-user-agreement-content/end-user-agreement-content.component';
import { PrivacyComponent } from './privacy/privacy.component'; import { PrivacyComponent } from './privacy/privacy.component';
import { PrivacyContentComponent } from './privacy/privacy-content/privacy-content.component'; import { PrivacyContentComponent } from './privacy/privacy-content/privacy-content.component';
import { ThemedEndUserAgreementComponent } from './end-user-agreement/themed-end-user-agreement.component';
import { ThemedPrivacyComponent } from './privacy/themed-privacy.component';
const DECLARATIONS = [
EndUserAgreementComponent,
ThemedEndUserAgreementComponent,
EndUserAgreementContentComponent,
PrivacyComponent,
PrivacyContentComponent,
ThemedPrivacyComponent
];
@NgModule({ @NgModule({
imports: [ imports: [
@@ -14,10 +25,10 @@ import { PrivacyContentComponent } from './privacy/privacy-content/privacy-conte
InfoRoutingModule InfoRoutingModule
], ],
declarations: [ declarations: [
EndUserAgreementComponent, ...DECLARATIONS
EndUserAgreementContentComponent, ],
PrivacyComponent, exports: [
PrivacyContentComponent ...DECLARATIONS
] ]
}) })
export class InfoModule { export class InfoModule {

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { PrivacyComponent } from './privacy.component';
@Component({
selector: 'ds-themed-privacy',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedPrivacyComponent extends ThemedComponent<PrivacyComponent> {
protected getComponentName(): string {
return 'PrivacyComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/info/privacy/privacy.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./privacy.component`);
}
}

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../shared/theme-support/themed.component';
import { PageNotFoundComponent } from './pagenotfound.component';
@Component({
selector: 'ds-themed-search-page',
styleUrls: [],
templateUrl: '../shared/theme-support/themed.component.html',
})
/**
* This component represents the whole search page
* It renders search results depending on the current search options
*/
export class ThemedPageNotFoundComponent extends ThemedComponent<PageNotFoundComponent> {
protected getComponentName(): string {
return 'PageNotFoundComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../themes/${themeName}/app/pagenotfound/pagenotfound.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./pagenotfound.component`);
}
}

View File

@@ -232,6 +232,7 @@ import { ConfigurationSearchPageComponent } from '../+search-page/configuration-
import { LinkMenuItemComponent } from './menu/menu-item/link-menu-item.component'; import { LinkMenuItemComponent } from './menu/menu-item/link-menu-item.component';
import { OnClickMenuItemComponent } from './menu/menu-item/onclick-menu-item.component'; import { OnClickMenuItemComponent } from './menu/menu-item/onclick-menu-item.component';
import { TextMenuItemComponent } from './menu/menu-item/text-menu-item.component'; import { TextMenuItemComponent } from './menu/menu-item/text-menu-item.component';
import { ThemedConfigurationSearchPageComponent } from '../+search-page/themed-configuration-search-page.component';
/** /**
* Declaration needed to make sure all decorator functions are called in time * Declaration needed to make sure all decorator functions are called in time
@@ -516,7 +517,8 @@ const ENTRY_COMPONENTS = [
]; ];
const SHARED_SEARCH_PAGE_COMPONENTS = [ const SHARED_SEARCH_PAGE_COMPONENTS = [
ConfigurationSearchPageComponent ConfigurationSearchPageComponent,
ThemedConfigurationSearchPageComponent
]; ];
const SHARED_ITEM_PAGE_COMPONENTS = [ const SHARED_ITEM_PAGE_COMPONENTS = [

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { CollectionStatisticsPageComponent } from './collection-statistics-page.component';
@Component({
selector: 'ds-themed-collection-statistics-page',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedCollectionStatisticsPageComponent extends ThemedComponent<CollectionStatisticsPageComponent> {
protected getComponentName(): string {
return 'CollectionStatisticsPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/statistics-page/collection-statistics-page/collection-statistics-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./collection-statistics-page.component`);
}
}

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { CommunityStatisticsPageComponent } from './community-statistics-page.component';
@Component({
selector: 'ds-themed-collection-statistics-page',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedCommunityStatisticsPageComponent extends ThemedComponent<CommunityStatisticsPageComponent> {
protected getComponentName(): string {
return 'CommunityStatisticsPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/statistics-page/community-statistics-page/community-statistics-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./community-statistics-page.component`);
}
}

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { ItemStatisticsPageComponent } from './item-statistics-page.component';
@Component({
selector: 'ds-themed-item-statistics-page',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedItemStatisticsPageComponent extends ThemedComponent<ItemStatisticsPageComponent> {
protected getComponentName(): string {
return 'ItemStatisticsPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/statistics-page/item-statistics-page/item-statistics-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./item-statistics-page.component`);
}
}

View File

@@ -0,0 +1,27 @@
import { Component } from '@angular/core';
import { ThemedComponent } from '../../shared/theme-support/themed.component';
import { SiteStatisticsPageComponent } from './site-statistics-page.component';
@Component({
selector: 'ds-themed-site-statistics-page',
styleUrls: [],
templateUrl: '../../shared/theme-support/themed.component.html',
})
/**
* Component to render the news section on the home page
*/
export class ThemedSiteStatisticsPageComponent extends ThemedComponent<SiteStatisticsPageComponent> {
protected getComponentName(): string {
return 'SiteStatisticsPageComponent';
}
protected importThemedComponent(themeName: string): Promise<any> {
return import(`../../../themes/${themeName}/app/statistics-page/site-statistics-page/site-statistics-page.component`);
}
protected importUnthemedComponent(): Promise<any> {
return import(`./site-statistics-page.component`);
}
}

View File

@@ -3,13 +3,13 @@ import { RouterModule } from '@angular/router';
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver'; import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service'; import { I18nBreadcrumbsService } from '../core/breadcrumbs/i18n-breadcrumbs.service';
import { StatisticsPageModule } from './statistics-page.module'; import { StatisticsPageModule } from './statistics-page.module';
import { SiteStatisticsPageComponent } from './site-statistics-page/site-statistics-page.component';
import { ItemPageResolver } from '../+item-page/item-page.resolver'; import { ItemPageResolver } from '../+item-page/item-page.resolver';
import { ItemStatisticsPageComponent } from './item-statistics-page/item-statistics-page.component';
import { CollectionPageResolver } from '../+collection-page/collection-page.resolver'; import { CollectionPageResolver } from '../+collection-page/collection-page.resolver';
import { CollectionStatisticsPageComponent } from './collection-statistics-page/collection-statistics-page.component';
import { CommunityPageResolver } from '../+community-page/community-page.resolver'; import { CommunityPageResolver } from '../+community-page/community-page.resolver';
import { CommunityStatisticsPageComponent } from './community-statistics-page/community-statistics-page.component'; import { ThemedCollectionStatisticsPageComponent } from './collection-statistics-page/themed-collection-statistics-page.component';
import { ThemedCommunityStatisticsPageComponent } from './community-statistics-page/themed-community-statistics-page.component';
import { ThemedItemStatisticsPageComponent } from './item-statistics-page/themed-item-statistics-page.component';
import { ThemedSiteStatisticsPageComponent } from './site-statistics-page/themed-site-statistics-page.component';
@NgModule({ @NgModule({
imports: [ imports: [
@@ -27,7 +27,7 @@ import { CommunityStatisticsPageComponent } from './community-statistics-page/co
children: [ children: [
{ {
path: '', path: '',
component: SiteStatisticsPageComponent, component: ThemedSiteStatisticsPageComponent,
}, },
] ]
}, },
@@ -41,7 +41,7 @@ import { CommunityStatisticsPageComponent } from './community-statistics-page/co
title: 'statistics.title', title: 'statistics.title',
breadcrumbKey: 'statistics' breadcrumbKey: 'statistics'
}, },
component: ItemStatisticsPageComponent, component: ThemedItemStatisticsPageComponent,
}, },
{ {
path: `collections/:id`, path: `collections/:id`,
@@ -53,7 +53,7 @@ import { CommunityStatisticsPageComponent } from './community-statistics-page/co
title: 'statistics.title', title: 'statistics.title',
breadcrumbKey: 'statistics' breadcrumbKey: 'statistics'
}, },
component: CollectionStatisticsPageComponent, component: ThemedCollectionStatisticsPageComponent,
}, },
{ {
path: `communities/:id`, path: `communities/:id`,
@@ -65,7 +65,7 @@ import { CommunityStatisticsPageComponent } from './community-statistics-page/co
title: 'statistics.title', title: 'statistics.title',
breadcrumbKey: 'statistics' breadcrumbKey: 'statistics'
}, },
component: CommunityStatisticsPageComponent, component: ThemedCommunityStatisticsPageComponent,
}, },
] ]
) )
@@ -75,6 +75,7 @@ import { CommunityStatisticsPageComponent } from './community-statistics-page/co
I18nBreadcrumbsService, I18nBreadcrumbsService,
CollectionPageResolver, CollectionPageResolver,
CommunityPageResolver, CommunityPageResolver,
ItemPageResolver
] ]
}) })
export class StatisticsPageRoutingModule { export class StatisticsPageRoutingModule {

View File

@@ -10,13 +10,21 @@ import { StatisticsTableComponent } from './statistics-table/statistics-table.co
import { ItemStatisticsPageComponent } from './item-statistics-page/item-statistics-page.component'; import { ItemStatisticsPageComponent } from './item-statistics-page/item-statistics-page.component';
import { CollectionStatisticsPageComponent } from './collection-statistics-page/collection-statistics-page.component'; import { CollectionStatisticsPageComponent } from './collection-statistics-page/collection-statistics-page.component';
import { CommunityStatisticsPageComponent } from './community-statistics-page/community-statistics-page.component'; import { CommunityStatisticsPageComponent } from './community-statistics-page/community-statistics-page.component';
import { ThemedCollectionStatisticsPageComponent } from './collection-statistics-page/themed-collection-statistics-page.component';
import { ThemedCommunityStatisticsPageComponent } from './community-statistics-page/themed-community-statistics-page.component';
import { ThemedItemStatisticsPageComponent } from './item-statistics-page/themed-item-statistics-page.component';
import { ThemedSiteStatisticsPageComponent } from './site-statistics-page/themed-site-statistics-page.component';
const components = [ const components = [
StatisticsTableComponent, StatisticsTableComponent,
SiteStatisticsPageComponent, SiteStatisticsPageComponent,
ItemStatisticsPageComponent, ItemStatisticsPageComponent,
CollectionStatisticsPageComponent, CollectionStatisticsPageComponent,
CommunityStatisticsPageComponent CommunityStatisticsPageComponent,
ThemedCollectionStatisticsPageComponent,
ThemedCommunityStatisticsPageComponent,
ThemedItemStatisticsPageComponent,
ThemedSiteStatisticsPageComponent
]; ];
@NgModule({ @NgModule({

View File

@@ -251,10 +251,10 @@ export const environment: GlobalConfig = {
// name: 'custom', // name: 'custom',
// uuid: '0958c910-2037-42a9-81c7-dca80e3892b4' // uuid: '0958c910-2037-42a9-81c7-dca80e3892b4'
// }, // },
// { {
// // A theme with only a name will match every route // A theme with only a name will match every route
// name: 'custom' name: 'custom'
// }, },
{ {
// This theme will use the default bootstrap styling for DSpace components // This theme will use the default bootstrap styling for DSpace components

View File

@@ -0,0 +1,15 @@
import { Component } from '@angular/core';
import { BrowseBySwitcherComponent as BaseComponent } from '../../../../../app/+browse-by/+browse-by-switcher/browse-by-switcher.component';
@Component({
selector: 'ds-browse-by-switcher',
// styleUrls: ['./browse-by-switcher.component.scss'],
// templateUrl: './browse-by-switcher.component.html'
templateUrl: '../../../../../app/+browse-by/+browse-by-switcher/browse-by-switcher.component.html'
})
/**
* Component to render the news section on the home page
*/
export class BrowseBySwitcherComponent extends BaseComponent {}

View File

@@ -0,0 +1,17 @@
import { Component } from '@angular/core';
import { CollectionPageComponent as BaseComponent} from '../../../../app/+collection-page/collection-page.component';
/**
* This component representing the `Forbidden` DSpace page.
*/
@Component({
selector: 'ds-collection-page',
// templateUrl: './collection-page.component.html',
templateUrl: '../../../../app/+collection-page/collection-page.component.html',
// styleUrls: ['./collection-page.component.scss']
styleUrls: ['../../../../app/+collection-page/collection-page.component.scss']
})
/**
* Component to render the news section on the home page
*/
export class CollectionPageComponent extends BaseComponent {}

View File

@@ -0,0 +1,17 @@
import { Component } from '@angular/core';
import { CommunityPageComponent as BaseComponent} from '../../../../app/+community-page/community-page.component';
/**
* This component representing the `Forbidden` DSpace page.
*/
@Component({
selector: 'ds-community-page',
// templateUrl: './community-page.component.html',
templateUrl: '../../../../app/+community-page/community-page.component.html',
// styleUrls: ['./community-page.component.scss']
styleUrls: ['../../../../app/+community-page/community-page.component.scss']
})
/**
* Component to render the news section on the home page
*/
export class CommunityPageComponent extends BaseComponent {}

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { ObjectNotFoundComponent as BaseComponent } from '../../../../../app/+lookup-by-id/objectnotfound/objectnotfound.component';
@Component({
selector: 'ds-objnotfound',
// styleUrls: ['./objectnotfound.component.scss'],
styleUrls: ['../../../../../app/+lookup-by-id/objectnotfound/objectnotfound.component.scss'],
// templateUrl: './objectnotfound.component.html',
templateUrl: '../../../../../app/+lookup-by-id/objectnotfound/objectnotfound.component.html'
})
/**
* Component to render the news section on the home page
*/
export class ObjectNotFoundComponent extends BaseComponent {}

View File

@@ -0,0 +1,15 @@
import { Component } from '@angular/core';
import { SearchPageComponent as BaseComponent } from '../../../../app/+search-page/search-page.component';
@Component({
selector: 'ds-configuration-search-page',
// styleUrls: ['./configuration-search-page.component.html'],
// templateUrl: './configuration-search-page.component.html'
templateUrl: '../../../../app/+search-page/search.component.html'
})
/**
* Component to render the news section on the home page
*/
export class ConfigurationSearchPageComponent extends BaseComponent {}

View File

@@ -0,0 +1,15 @@
import { Component } from '@angular/core';
import { SearchPageComponent as BaseComponent } from '../../../../app/+search-page/search-page.component';
@Component({
selector: 'ds-search-page',
// styleUrls: ['./search-page.component.scss'],
// templateUrl: './search-page.component.html'
templateUrl: '../../../../app/+search-page/search-page.component.html'
})
/**
* Component to render the news section on the home page
*/
export class SearchPageComponent extends BaseComponent {}

View File

@@ -0,0 +1,15 @@
import { Component } from '@angular/core';
import { CommunityListPageComponent as BaseComponent } from '../../../../app/community-list-page/community-list-page.component';
@Component({
selector: 'ds-community-list-page',
// styleUrls: ['./community-list-page.component.scss'],
// templateUrl: './community-list-page.component.html'
templateUrl: '../../../../app/community-list-page/community-list-page.component.html'
})
/**
* Component to render the news section on the home page
*/
export class CommunityListPageComponent extends BaseComponent {}

View File

@@ -0,0 +1,17 @@
import { Component } from '@angular/core';
import { ForbiddenComponent as BaseComponent } from '../../../../app/forbidden/forbidden.component';
/**
* This component representing the `Forbidden` DSpace page.
*/
@Component({
selector: 'ds-forbidden',
// templateUrl: './forbidden.component.html',
templateUrl: '../../../../app/forbidden/forbidden.component.html',
// styleUrls: ['./forbidden.component.scss']
styleUrls: ['../../../../app/forbidden/forbidden.component.scss']
})
/**
* Component to render the news section on the home page
*/
export class ForbiddenComponent extends BaseComponent {}

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { EndUserAgreementComponent as BaseComponent } from '../../../../../app/info/end-user-agreement/end-user-agreement.component';
@Component({
selector: 'ds-home-news',
// styleUrls: ['./end-user-agreement.component.scss'],
styleUrls: ['../../../../../app/info/end-user-agreement/end-user-agreement.component.scss'],
// templateUrl: './end-user-agreement.component.html'
templateUrl: '../../../../../app/info/end-user-agreement/end-user-agreement.component.html'
})
/**
* Component to render the news section on the home page
*/
export class EndUserAgreementComponent extends BaseComponent {}

View File

@@ -0,0 +1,15 @@
import { Component } from '@angular/core';
import { PrivacyComponent as BaseComponent } from '../../../../../app/info/privacy/privacy.component';
@Component({
selector: 'ds-privacy',
// styleUrls: ['./privacy.component.scss'],
styleUrls: ['../../../../../app/info/privacy/privacy.component.scss'],
// templateUrl: './privacy.component.html'
templateUrl: '../../../../../app/info/privacy/privacy.component.html'
})
/**
* Component to render the news section on the home page
*/
export class PrivacyComponent extends BaseComponent {}

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { PageNotFoundComponent as BaseComponent } from '../../../../app/pagenotfound/pagenotfound.component';
@Component({
selector: 'ds-pagenotfound',
// styleUrls: ['./pagenotfound.component.scss'],
styleUrls: ['../../../../app/pagenotfound/pagenotfound.component.scss'],
// templateUrl: './pagenotfound.component.html'
templateUrl: '../../../../app/pagenotfound/pagenotfound.component.html'
})
/**
* Component to render the news section on the home page
*/
export class PageNotFoundComponent extends BaseComponent {}

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { CollectionStatisticsPageComponent as BaseComponent } from '../../../../../app/statistics-page/collection-statistics-page/collection-statistics-page.component';
@Component({
selector: 'ds-collection-statistics-page',
// styleUrls: ['./collection-statistics-page.component.scss'],
styleUrls: ['../../../../../app/statistics-page/collection-statistics-page/collection-statistics-page.component.scss'],
// templateUrl: './collection-statistics-page.component.html',
templateUrl: '../../../../../app/statistics-page/statistics-page/statistics-page.component.html'
})
/**
* Component to render the news section on the home page
*/
export class CollectionStatisticsPageComponent extends BaseComponent {}

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { CommunityStatisticsPageComponent as BaseComponent } from '../../../../../app/statistics-page/community-statistics-page/community-statistics-page.component';
@Component({
selector: 'ds-collection-statistics-page',
// styleUrls: ['./community-statistics-page.component.scss'],
styleUrls: ['../../../../../app/statistics-page/community-statistics-page/community-statistics-page.component.scss'],
// templateUrl: './community-statistics-page.component.html',
templateUrl: '../../../../../app/statistics-page/statistics-page/statistics-page.component.html'
})
/**
* Component to render the news section on the home page
*/
export class CommunityStatisticsPageComponent extends BaseComponent {}

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { ItemStatisticsPageComponent as BaseComponent } from '../../../../../app/statistics-page/item-statistics-page/item-statistics-page.component';
@Component({
selector: 'ds-item-statistics-page',
// styleUrls: ['./item-statistics-page.component.scss'],
styleUrls: ['../../../../../app/statistics-page/item-statistics-page/item-statistics-page.component.scss'],
// templateUrl: './item-statistics-page.component.html',
templateUrl: '../../../../../app/statistics-page/statistics-page/statistics-page.component.html'
})
/**
* Component to render the news section on the home page
*/
export class ItemStatisticsPageComponent extends BaseComponent {}

View File

@@ -0,0 +1,16 @@
import { Component } from '@angular/core';
import { SiteStatisticsPageComponent as BaseComponent } from '../../../../../app/statistics-page/site-statistics-page/site-statistics-page.component';
@Component({
selector: 'ds-site-statistics-page',
// styleUrls: ['./site-statistics-page.component.scss'],
styleUrls: ['../../../../../app/statistics-page/site-statistics-page/site-statistics-page.component.scss'],
// templateUrl: './site-statistics-page.component.html',
templateUrl: '../../../../../app/statistics-page/statistics-page/statistics-page.component.html'
})
/**
* Component to render the news section on the home page
*/
export class SiteStatisticsPageComponent extends BaseComponent {}

View File

@@ -37,12 +37,47 @@ import { AppModule } from '../../app/app.module';
import { PublicationComponent } from './app/+item-page/simple/item-types/publication/publication.component'; import { PublicationComponent } from './app/+item-page/simple/item-types/publication/publication.component';
import { ItemPageModule } from '../../app/+item-page/item-page.module'; import { ItemPageModule } from '../../app/+item-page/item-page.module';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { BrowseBySwitcherComponent } from './app/+browse-by/+browse-by-switcher/browse-by-switcher.component';
import { CommunityListPageComponent } from './app/community-list-page/community-list-page.component';
import { CommunityListPageModule } from '../../app/community-list-page/community-list-page.module';
import { SearchPageComponent } from './app/+search-page/search-page.component';
import { InfoModule } from '../../app/info/info.module';
import { EndUserAgreementComponent } from './app/info/end-user-agreement/end-user-agreement.component';
import { PageNotFoundComponent } from './app/pagenotfound/pagenotfound.component';
import { ObjectNotFoundComponent } from './app/+lookup-by-id/objectnotfound/objectnotfound.component';
import { ForbiddenComponent } from './app/forbidden/forbidden.component';
import { PrivacyComponent } from './app/info/privacy/privacy.component';
import { CollectionStatisticsPageComponent } from './app/statistics-page/collection-statistics-page/collection-statistics-page.component';
import { CommunityStatisticsPageComponent } from './app/statistics-page/community-statistics-page/community-statistics-page.component';
import { StatisticsPageModule } from '../../app/statistics-page/statistics-page.module';
import { ItemStatisticsPageComponent } from './app/statistics-page/item-statistics-page/item-statistics-page.component';
import { SiteStatisticsPageComponent } from './app/statistics-page/site-statistics-page/site-statistics-page.component';
import { CommunityPageComponent } from './app/+community-page/community-page.component';
import { CollectionPageComponent } from './app/+collection-page/collection-page.component';
import { CommunityPageModule } from '../../app/+community-page/community-page.module';
import { CollectionPageModule } from '../../app/+collection-page/collection-page.module';
import { ConfigurationSearchPageComponent } from './app/+search-page/configuration-search-page.component';
const DECLARATIONS = [ const DECLARATIONS = [
HomePageComponent, HomePageComponent,
HomeNewsComponent, HomeNewsComponent,
RootComponent, RootComponent,
PublicationComponent PublicationComponent,
BrowseBySwitcherComponent,
CommunityListPageComponent,
SearchPageComponent,
ConfigurationSearchPageComponent,
EndUserAgreementComponent,
PageNotFoundComponent,
ObjectNotFoundComponent,
ForbiddenComponent,
PrivacyComponent,
CollectionStatisticsPageComponent,
CommunityStatisticsPageComponent,
ItemStatisticsPageComponent,
SiteStatisticsPageComponent,
CommunityPageComponent,
CollectionPageComponent
]; ];
@NgModule({ @NgModule({
@@ -55,8 +90,11 @@ const DECLARATIONS = [
BitstreamFormatsModule, BitstreamFormatsModule,
BrowseByModule, BrowseByModule,
CollectionFormModule, CollectionFormModule,
CollectionPageModule,
CommonModule, CommonModule,
CommunityFormModule, CommunityFormModule,
CommunityListPageModule,
CommunityPageModule,
CoreModule, CoreModule,
DragDropModule, DragDropModule,
ItemPageModule, ItemPageModule,
@@ -65,6 +103,7 @@ const DECLARATIONS = [
HomePageModule, HomePageModule,
HttpClientModule, HttpClientModule,
IdlePreloadModule, IdlePreloadModule,
InfoModule,
JournalEntitiesModule, JournalEntitiesModule,
MenuModule, MenuModule,
MyDspaceSearchModule, MyDspaceSearchModule,
@@ -78,6 +117,7 @@ const DECLARATIONS = [
SearchPageModule, SearchPageModule,
SharedModule, SharedModule,
StatisticsModule, StatisticsModule,
StatisticsPageModule,
StoreModule, StoreModule,
StoreRouterConnectingModule, StoreRouterConnectingModule,
TranslateModule, TranslateModule,