mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 10:04:11 +00:00
Merge pull request #1042 from atmire/add-themeable-components
Make all non-admin page-level components themeable
This commit is contained in:
@@ -0,0 +1,28 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { BrowseBySwitcherComponent } from './browse-by-switcher.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for BrowseBySwitcherComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-browse-by-switcher',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@@ -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' }
|
||||||
|
@@ -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: [
|
||||||
|
@@ -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',
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@@ -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,
|
||||||
|
26
src/app/+collection-page/themed-collection-page.component.ts
Normal file
26
src/app/+collection-page/themed-collection-page.component.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { CollectionPageComponent } from './collection-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for CollectionPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-community-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -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',
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@@ -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
|
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
26
src/app/+community-page/themed-community-page.component.ts
Normal file
26
src/app/+community-page/themed-community-page.component.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { CommunityPageComponent } from './community-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for CommunityPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-community-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -1,7 +1,7 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
||||||
import { SubmissionImportExternalComponent } from '../submission/import-external/submission-import-external.component';
|
import { ThemedSubmissionImportExternalComponent } from '../submission/import-external/themed-submission-import-external.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -9,7 +9,7 @@ import { SubmissionImportExternalComponent } from '../submission/import-external
|
|||||||
{
|
{
|
||||||
canActivate: [ AuthenticatedGuard ],
|
canActivate: [ AuthenticatedGuard ],
|
||||||
path: '',
|
path: '',
|
||||||
component: SubmissionImportExternalComponent,
|
component: ThemedSubmissionImportExternalComponent,
|
||||||
pathMatch: 'full',
|
pathMatch: 'full',
|
||||||
data: {
|
data: {
|
||||||
title: 'submission.import-external.page.title'
|
title: 'submission.import-external.page.title'
|
||||||
|
@@ -18,9 +18,8 @@ import { hasValue } from '../../shared/empty.util';
|
|||||||
import { AuthService } from '../../core/auth/auth.service';
|
import { AuthService } from '../../core/auth/auth.service';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This component renders a simple item page.
|
* This component renders a full item page.
|
||||||
* The route parameter 'id' is used to request the item it represents.
|
* The route parameter 'id' is used to request the item it represents.
|
||||||
* All fields of the item that should be displayed, are defined in its template.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
25
src/app/+item-page/full/themed-full-item-page.component.ts
Normal file
25
src/app/+item-page/full/themed-full-item-page.component.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { FullItemPageComponent } from './full-item-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for FullItemPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-full-item-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
export class ThemedFullItemPageComponent extends ThemedComponent<FullItemPageComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'FullItemPageComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/+item-page/full/full-item-page.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./full-item-page.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -1,18 +1,17 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { ItemPageComponent } from './simple/item-page.component';
|
|
||||||
import { FullItemPageComponent } from './full/full-item-page.component';
|
|
||||||
import { ItemPageResolver } from './item-page.resolver';
|
import { ItemPageResolver } from './item-page.resolver';
|
||||||
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
||||||
import { ItemBreadcrumbResolver } from '../core/breadcrumbs/item-breadcrumb.resolver';
|
import { ItemBreadcrumbResolver } from '../core/breadcrumbs/item-breadcrumb.resolver';
|
||||||
import { DSOBreadcrumbsService } from '../core/breadcrumbs/dso-breadcrumbs.service';
|
import { DSOBreadcrumbsService } from '../core/breadcrumbs/dso-breadcrumbs.service';
|
||||||
import { LinkService } from '../core/cache/builders/link.service';
|
import { LinkService } from '../core/cache/builders/link.service';
|
||||||
import { UploadBitstreamComponent } from './bitstreams/upload/upload-bitstream.component';
|
import { UploadBitstreamComponent } from './bitstreams/upload/upload-bitstream.component';
|
||||||
import { UPLOAD_BITSTREAM_PATH, ITEM_EDIT_PATH } from './item-page-routing-paths';
|
import { ITEM_EDIT_PATH, UPLOAD_BITSTREAM_PATH } from './item-page-routing-paths';
|
||||||
import { ItemPageAdministratorGuard } from './item-page-administrator.guard';
|
import { ItemPageAdministratorGuard } from './item-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 { ThemedItemPageComponent } from './simple/themed-item-page.component';
|
||||||
|
import { ThemedFullItemPageComponent } from './full/themed-full-item-page.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -27,12 +26,12 @@ import { LinkMenuItemModel } from '../shared/menu/menu-item/models/link.model';
|
|||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
component: ItemPageComponent,
|
component: ThemedItemPageComponent,
|
||||||
pathMatch: 'full',
|
pathMatch: 'full',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'full',
|
path: 'full',
|
||||||
component: FullItemPageComponent,
|
component: ThemedFullItemPageComponent,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ITEM_EDIT_PATH,
|
path: ITEM_EDIT_PATH,
|
||||||
|
@@ -25,6 +25,8 @@ import { AbstractIncrementalListComponent } from './simple/abstract-incremental-
|
|||||||
import { UntypedItemComponent } from './simple/item-types/untyped-item/untyped-item.component';
|
import { UntypedItemComponent } from './simple/item-types/untyped-item/untyped-item.component';
|
||||||
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 { ThemedItemPageComponent } from './simple/themed-item-page.component';
|
||||||
|
import { ThemedFullItemPageComponent } from './full/themed-full-item-page.component';
|
||||||
|
|
||||||
const ENTRY_COMPONENTS = [
|
const ENTRY_COMPONENTS = [
|
||||||
// put only entry components that use custom decorator
|
// put only entry components that use custom decorator
|
||||||
@@ -34,7 +36,9 @@ const ENTRY_COMPONENTS = [
|
|||||||
|
|
||||||
const DECLARATIONS = [
|
const DECLARATIONS = [
|
||||||
ItemPageComponent,
|
ItemPageComponent,
|
||||||
|
ThemedItemPageComponent,
|
||||||
FullItemPageComponent,
|
FullItemPageComponent,
|
||||||
|
ThemedFullItemPageComponent,
|
||||||
MetadataUriValuesComponent,
|
MetadataUriValuesComponent,
|
||||||
ItemPageAuthorFieldComponent,
|
ItemPageAuthorFieldComponent,
|
||||||
ItemPageDateFieldComponent,
|
ItemPageDateFieldComponent,
|
||||||
|
27
src/app/+item-page/simple/themed-item-page.component.ts
Normal file
27
src/app/+item-page/simple/themed-item-page.component.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { ItemPageComponent } from './item-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for ItemPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-item-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
|
||||||
|
export class ThemedItemPageComponent extends ThemedComponent<ItemPageComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'ItemPageComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/+item-page/simple/item-page.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./item-page.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -1,14 +1,13 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { LoginPageComponent } from './login-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 { ThemedLoginPageComponent } from './themed-login-page.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
{ path: '', pathMatch: 'full', component: LoginPageComponent, resolve: { breadcrumb: I18nBreadcrumbResolver }, data: { breadcrumbKey: 'login', title: 'login.title' } }
|
{ path: '', pathMatch: 'full', component: ThemedLoginPageComponent, resolve: { breadcrumb: I18nBreadcrumbResolver }, data: { breadcrumbKey: 'login', title: 'login.title' } }
|
||||||
])
|
])
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
|
@@ -3,6 +3,7 @@ import { NgModule } from '@angular/core';
|
|||||||
import { SharedModule } from '../shared/shared.module';
|
import { SharedModule } from '../shared/shared.module';
|
||||||
import { LoginPageComponent } from './login-page.component';
|
import { LoginPageComponent } from './login-page.component';
|
||||||
import { LoginPageRoutingModule } from './login-page-routing.module';
|
import { LoginPageRoutingModule } from './login-page-routing.module';
|
||||||
|
import { ThemedLoginPageComponent } from './themed-login-page.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -11,7 +12,8 @@ import { LoginPageRoutingModule } from './login-page-routing.module';
|
|||||||
SharedModule,
|
SharedModule,
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
LoginPageComponent
|
LoginPageComponent,
|
||||||
|
ThemedLoginPageComponent
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class LoginPageModule {
|
export class LoginPageModule {
|
||||||
|
25
src/app/+login-page/themed-login-page.component.ts
Normal file
25
src/app/+login-page/themed-login-page.component.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { LoginPageComponent } from './login-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for LoginPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-login-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedLoginPageComponent extends ThemedComponent<LoginPageComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'LoginPageComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../themes/${themeName}/app/+login-page/login-page.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./login-page.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -1,8 +1,7 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { LogoutPageComponent } from './logout-page.component';
|
|
||||||
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
||||||
|
import { ThemedLogoutPageComponent } from './themed-logout-page.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -10,7 +9,7 @@ import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
|||||||
{
|
{
|
||||||
canActivate: [AuthenticatedGuard],
|
canActivate: [AuthenticatedGuard],
|
||||||
path: '',
|
path: '',
|
||||||
component: LogoutPageComponent,
|
component: ThemedLogoutPageComponent,
|
||||||
data: { title: 'logout.title' }
|
data: { title: 'logout.title' }
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
@@ -3,6 +3,7 @@ import { NgModule } from '@angular/core';
|
|||||||
import { SharedModule } from '../shared/shared.module';
|
import { SharedModule } from '../shared/shared.module';
|
||||||
import { LogoutPageComponent } from './logout-page.component';
|
import { LogoutPageComponent } from './logout-page.component';
|
||||||
import { LogoutPageRoutingModule } from './logout-page-routing.module';
|
import { LogoutPageRoutingModule } from './logout-page-routing.module';
|
||||||
|
import { ThemedLogoutPageComponent } from './themed-logout-page.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -11,7 +12,8 @@ import { LogoutPageRoutingModule } from './logout-page-routing.module';
|
|||||||
SharedModule,
|
SharedModule,
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
LogoutPageComponent
|
LogoutPageComponent,
|
||||||
|
ThemedLogoutPageComponent
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class LogoutPageModule {
|
export class LogoutPageModule {
|
||||||
|
25
src/app/+logout-page/themed-logout-page.component.ts
Normal file
25
src/app/+logout-page/themed-logout-page.component.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { LogoutPageComponent } from './logout-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for LogoutPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-logout-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedLogoutPageComponent extends ThemedComponent<LogoutPageComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'LogoutPageComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../themes/${themeName}/app/+logout-page/logout-page.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./logout-page.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -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: [
|
||||||
|
@@ -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
|
||||||
|
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { ObjectNotFoundComponent } from './objectnotfound.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for ObjectNotFoundComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-objnotfound',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -1,15 +1,14 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { MyDSpacePageComponent } from './my-dspace-page.component';
|
|
||||||
import { MyDSpaceGuard } from './my-dspace.guard';
|
import { MyDSpaceGuard } from './my-dspace.guard';
|
||||||
|
import { ThemedMyDSpacePageComponent } from './themed-my-dspace-page.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
component: MyDSpacePageComponent,
|
component: ThemedMyDSpacePageComponent,
|
||||||
data: { title: 'mydspace.title' },
|
data: { title: 'mydspace.title' },
|
||||||
canActivate: [
|
canActivate: [
|
||||||
MyDSpaceGuard
|
MyDSpaceGuard
|
||||||
|
@@ -11,6 +11,15 @@ import { MyDSpaceGuard } from './my-dspace.guard';
|
|||||||
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
|
||||||
import { CollectionSelectorComponent } from './collection-selector/collection-selector.component';
|
import { CollectionSelectorComponent } from './collection-selector/collection-selector.component';
|
||||||
import { MyDspaceSearchModule } from './my-dspace-search.module';
|
import { MyDspaceSearchModule } from './my-dspace-search.module';
|
||||||
|
import { ThemedMyDSpacePageComponent } from './themed-my-dspace-page.component';
|
||||||
|
|
||||||
|
const DECLARATIONS = [
|
||||||
|
MyDSpacePageComponent,
|
||||||
|
ThemedMyDSpacePageComponent,
|
||||||
|
MyDSpaceResultsComponent,
|
||||||
|
MyDSpaceNewSubmissionComponent,
|
||||||
|
CollectionSelectorComponent
|
||||||
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -19,16 +28,12 @@ import { MyDspaceSearchModule } from './my-dspace-search.module';
|
|||||||
MyDspacePageRoutingModule,
|
MyDspacePageRoutingModule,
|
||||||
MyDspaceSearchModule.withEntryComponents()
|
MyDspaceSearchModule.withEntryComponents()
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: DECLARATIONS,
|
||||||
MyDSpacePageComponent,
|
|
||||||
MyDSpaceResultsComponent,
|
|
||||||
MyDSpaceNewSubmissionComponent,
|
|
||||||
CollectionSelectorComponent
|
|
||||||
],
|
|
||||||
providers: [
|
providers: [
|
||||||
MyDSpaceGuard,
|
MyDSpaceGuard,
|
||||||
MyDSpaceConfigurationService
|
MyDSpaceConfigurationService
|
||||||
]
|
],
|
||||||
|
exports: DECLARATIONS,
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
27
src/app/+my-dspace-page/themed-my-dspace-page.component.ts
Normal file
27
src/app/+my-dspace-page/themed-my-dspace-page.component.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { MyDSpacePageComponent } from './my-dspace-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for MyDSpacePageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-my-dspace-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedMyDSpacePageComponent extends ThemedComponent<MyDSpacePageComponent> {
|
||||||
|
protected inAndOutputNames: (keyof MyDSpacePageComponent & keyof this)[];
|
||||||
|
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'MyDSpacePageComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../themes/${themeName}/app/+my-dspace-page/my-dspace-page.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./my-dspace-page.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -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] }
|
||||||
]
|
]
|
||||||
}]
|
}]
|
||||||
)
|
)
|
||||||
|
@@ -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({
|
||||||
|
@@ -0,0 +1,72 @@
|
|||||||
|
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';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for ConfigurationSearchPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-configuration-search-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
26
src/app/+search-page/themed-search-page.component.ts
Normal file
26
src/app/+search-page/themed-search-page.component.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { SearchPageComponent } from './search-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for SearchPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-search-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
}
|
@@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
|
|||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
||||||
import { SubmissionSubmitComponent } from '../submission/submit/submission-submit.component';
|
import { ThemedSubmissionSubmitComponent } from '../submission/submit/themed-submission-submit.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -11,7 +11,7 @@ import { SubmissionSubmitComponent } from '../submission/submit/submission-submi
|
|||||||
canActivate: [AuthenticatedGuard],
|
canActivate: [AuthenticatedGuard],
|
||||||
path: '',
|
path: '',
|
||||||
pathMatch: 'full',
|
pathMatch: 'full',
|
||||||
component: SubmissionSubmitComponent,
|
component: ThemedSubmissionSubmitComponent,
|
||||||
data: { title: 'submission.submit.title' }
|
data: { title: 'submission.submit.title' }
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
@@ -0,0 +1,26 @@
|
|||||||
|
import { WorkflowItemDeleteComponent } from './workflow-item-delete.component';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { Component } from '@angular/core';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for WorkflowItemDeleteComponent
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-workflow-item-delete',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedWorkflowItemDeleteComponent extends ThemedComponent<WorkflowItemDeleteComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'WorkflowItemDeleteComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/+workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./workflow-item-delete.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,26 @@
|
|||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { WorkflowItemSendBackComponent } from './workflow-item-send-back.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for WorkflowItemActionPageComponent
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-workflow-item-send-back',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedWorkflowItemSendBackComponent extends ThemedComponent<WorkflowItemSendBackComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'WorkflowItemSendBackComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/+workflowitems-edit-page/workflow-item-send-back/workflow-item-send-back.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./workflow-item-send-back.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -2,15 +2,11 @@ import { NgModule } from '@angular/core';
|
|||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
||||||
import { SubmissionEditComponent } from '../submission/edit/submission-edit.component';
|
|
||||||
import { WorkflowItemDeleteComponent } from './workflow-item-delete/workflow-item-delete.component';
|
|
||||||
import { WorkflowItemPageResolver } from './workflow-item-page.resolver';
|
import { WorkflowItemPageResolver } from './workflow-item-page.resolver';
|
||||||
import { WorkflowItemSendBackComponent } from './workflow-item-send-back/workflow-item-send-back.component';
|
import { WORKFLOW_ITEM_DELETE_PATH, WORKFLOW_ITEM_EDIT_PATH, WORKFLOW_ITEM_SEND_BACK_PATH } from './workflowitems-edit-page-routing-paths';
|
||||||
import {
|
import { ThemedSubmissionEditComponent } from '../submission/edit/themed-submission-edit.component';
|
||||||
WORKFLOW_ITEM_SEND_BACK_PATH,
|
import { ThemedWorkflowItemDeleteComponent } from './workflow-item-delete/themed-workflow-item-delete.component';
|
||||||
WORKFLOW_ITEM_DELETE_PATH,
|
import { ThemedWorkflowItemSendBackComponent } from './workflow-item-send-back/themed-workflow-item-send-back.component';
|
||||||
WORKFLOW_ITEM_EDIT_PATH
|
|
||||||
} from './workflowitems-edit-page-routing-paths';
|
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -22,19 +18,19 @@ import {
|
|||||||
{
|
{
|
||||||
canActivate: [AuthenticatedGuard],
|
canActivate: [AuthenticatedGuard],
|
||||||
path: WORKFLOW_ITEM_EDIT_PATH,
|
path: WORKFLOW_ITEM_EDIT_PATH,
|
||||||
component: SubmissionEditComponent,
|
component: ThemedSubmissionEditComponent,
|
||||||
data: { title: 'submission.edit.title' }
|
data: { title: 'submission.edit.title' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
canActivate: [AuthenticatedGuard],
|
canActivate: [AuthenticatedGuard],
|
||||||
path: WORKFLOW_ITEM_DELETE_PATH,
|
path: WORKFLOW_ITEM_DELETE_PATH,
|
||||||
component: WorkflowItemDeleteComponent,
|
component: ThemedWorkflowItemDeleteComponent,
|
||||||
data: { title: 'workflow-item.delete.title' }
|
data: { title: 'workflow-item.delete.title' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
canActivate: [AuthenticatedGuard],
|
canActivate: [AuthenticatedGuard],
|
||||||
path: WORKFLOW_ITEM_SEND_BACK_PATH,
|
path: WORKFLOW_ITEM_SEND_BACK_PATH,
|
||||||
component: WorkflowItemSendBackComponent,
|
component: ThemedWorkflowItemSendBackComponent,
|
||||||
data: { title: 'workflow-item.send-back.title' }
|
data: { title: 'workflow-item.send-back.title' }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@@ -5,6 +5,8 @@ import { WorkflowItemsEditPageRoutingModule } from './workflowitems-edit-page-ro
|
|||||||
import { SubmissionModule } from '../submission/submission.module';
|
import { SubmissionModule } from '../submission/submission.module';
|
||||||
import { WorkflowItemDeleteComponent } from './workflow-item-delete/workflow-item-delete.component';
|
import { WorkflowItemDeleteComponent } from './workflow-item-delete/workflow-item-delete.component';
|
||||||
import { WorkflowItemSendBackComponent } from './workflow-item-send-back/workflow-item-send-back.component';
|
import { WorkflowItemSendBackComponent } from './workflow-item-send-back/workflow-item-send-back.component';
|
||||||
|
import { ThemedWorkflowItemDeleteComponent } from './workflow-item-delete/themed-workflow-item-delete.component';
|
||||||
|
import { ThemedWorkflowItemSendBackComponent } from './workflow-item-send-back/themed-workflow-item-send-back.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -13,7 +15,7 @@ import { WorkflowItemSendBackComponent } from './workflow-item-send-back/workflo
|
|||||||
SharedModule,
|
SharedModule,
|
||||||
SubmissionModule,
|
SubmissionModule,
|
||||||
],
|
],
|
||||||
declarations: [WorkflowItemDeleteComponent, WorkflowItemSendBackComponent]
|
declarations: [WorkflowItemDeleteComponent, ThemedWorkflowItemDeleteComponent, WorkflowItemSendBackComponent, ThemedWorkflowItemSendBackComponent]
|
||||||
})
|
})
|
||||||
/**
|
/**
|
||||||
* This module handles all modules that need to access the workflowitems edit page.
|
* This module handles all modules that need to access the workflowitems edit page.
|
||||||
|
@@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
|
|||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
|
||||||
import { SubmissionEditComponent } from '../submission/edit/submission-edit.component';
|
import { ThemedSubmissionEditComponent } from '../submission/edit/themed-submission-edit.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -11,7 +11,7 @@ import { SubmissionEditComponent } from '../submission/edit/submission-edit.comp
|
|||||||
{
|
{
|
||||||
canActivate: [AuthenticatedGuard],
|
canActivate: [AuthenticatedGuard],
|
||||||
path: ':id/edit',
|
path: ':id/edit',
|
||||||
component: SubmissionEditComponent,
|
component: ThemedSubmissionEditComponent,
|
||||||
data: { title: 'submission.edit.title' }
|
data: { title: 'submission.edit.title' }
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
@@ -2,19 +2,9 @@ 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 { ADMIN_MODULE_PATH, BITSTREAM_MODULE_PATH, FORBIDDEN_PATH, FORGOT_PASSWORD_PATH, INFO_MODULE_PATH, PROFILE_MODULE_PATH, REGISTER_PATH, WORKFLOW_ITEM_MODULE_PATH } from './app-routing-paths';
|
||||||
ADMIN_MODULE_PATH,
|
|
||||||
BITSTREAM_MODULE_PATH,
|
|
||||||
FORBIDDEN_PATH,
|
|
||||||
FORGOT_PASSWORD_PATH,
|
|
||||||
INFO_MODULE_PATH,
|
|
||||||
PROFILE_MODULE_PATH,
|
|
||||||
REGISTER_PATH,
|
|
||||||
WORKFLOW_ITEM_MODULE_PATH
|
|
||||||
} from './app-routing-paths';
|
|
||||||
import { COLLECTION_MODULE_PATH } from './+collection-page/collection-page-routing-paths';
|
import { COLLECTION_MODULE_PATH } from './+collection-page/collection-page-routing-paths';
|
||||||
import { COMMUNITY_MODULE_PATH } from './+community-page/community-page-routing-paths';
|
import { COMMUNITY_MODULE_PATH } from './+community-page/community-page-routing-paths';
|
||||||
import { ITEM_MODULE_PATH } from './+item-page/item-page-routing-paths';
|
import { ITEM_MODULE_PATH } from './+item-page/item-page-routing-paths';
|
||||||
@@ -22,7 +12,8 @@ import { PROCESS_MODULE_PATH } from './process-page/process-page-routing.paths';
|
|||||||
import { ReloadGuard } from './core/reload/reload.guard';
|
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 { ThemedPageNotFoundComponent } from './pagenotfound/themed-pagenotfound.component';
|
||||||
|
import { ThemedForbiddenComponent } from './forbidden/themed-forbidden.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -30,7 +21,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 +164,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',
|
||||||
|
@@ -46,6 +46,11 @@ 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';
|
||||||
|
import { ThemedHeaderComponent } from './header/themed-header.component';
|
||||||
|
import { ThemedFooterComponent } from './footer/themed-footer.component';
|
||||||
|
import { ThemedBreadcrumbsComponent } from './breadcrumbs/themed-breadcrumbs.component';
|
||||||
|
|
||||||
export function getBase() {
|
export function getBase() {
|
||||||
return environment.ui.nameSpace;
|
return environment.ui.nameSpace;
|
||||||
@@ -127,17 +132,22 @@ const DECLARATIONS = [
|
|||||||
RootComponent,
|
RootComponent,
|
||||||
ThemedRootComponent,
|
ThemedRootComponent,
|
||||||
HeaderComponent,
|
HeaderComponent,
|
||||||
|
ThemedHeaderComponent,
|
||||||
HeaderNavbarWrapperComponent,
|
HeaderNavbarWrapperComponent,
|
||||||
AdminSidebarComponent,
|
AdminSidebarComponent,
|
||||||
AdminSidebarSectionComponent,
|
AdminSidebarSectionComponent,
|
||||||
ExpandableAdminSidebarSectionComponent,
|
ExpandableAdminSidebarSectionComponent,
|
||||||
FooterComponent,
|
FooterComponent,
|
||||||
|
ThemedFooterComponent,
|
||||||
PageNotFoundComponent,
|
PageNotFoundComponent,
|
||||||
|
ThemedPageNotFoundComponent,
|
||||||
NotificationComponent,
|
NotificationComponent,
|
||||||
NotificationsBoardComponent,
|
NotificationsBoardComponent,
|
||||||
SearchNavbarComponent,
|
SearchNavbarComponent,
|
||||||
BreadcrumbsComponent,
|
BreadcrumbsComponent,
|
||||||
|
ThemedBreadcrumbsComponent,
|
||||||
ForbiddenComponent,
|
ForbiddenComponent,
|
||||||
|
ThemedForbiddenComponent,
|
||||||
];
|
];
|
||||||
|
|
||||||
const EXPORTS = [
|
const EXPORTS = [
|
||||||
|
25
src/app/breadcrumbs/themed-breadcrumbs.component.ts
Normal file
25
src/app/breadcrumbs/themed-breadcrumbs.component.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { BreadcrumbsComponent } from './breadcrumbs.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for BreadcrumbsComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-breadcrumbs',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
export class ThemedBreadcrumbsComponent extends ThemedComponent<BreadcrumbsComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'BreadcrumbsComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../themes/${themeName}/app/breadcrumbs/breadcrumbs.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./breadcrumbs.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -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 {
|
||||||
|
|
||||||
|
@@ -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' }
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { CommunityListPageComponent } from './community-list-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for CommunityListPageComponent
|
||||||
|
*/
|
||||||
|
@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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
25
src/app/footer/themed-footer.component.ts
Normal file
25
src/app/footer/themed-footer.component.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { FooterComponent } from './footer.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for FooterComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-footer',
|
||||||
|
styleUrls: ['footer.component.scss'],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
export class ThemedFooterComponent extends ThemedComponent<FooterComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'FooterComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../themes/${themeName}/app/footer/footer.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./footer.component`);
|
||||||
|
}
|
||||||
|
}
|
26
src/app/forbidden/themed-forbidden.component.ts
Normal file
26
src/app/forbidden/themed-forbidden.component.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { ForbiddenComponent } from './forbidden.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for ForbiddenComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-forbidden',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-forgot-email',
|
selector: 'ds-forgot-email',
|
||||||
|
styleUrls: ['./forgot-email.component.scss'],
|
||||||
templateUrl: './forgot-email.component.html'
|
templateUrl: './forgot-email.component.html'
|
||||||
})
|
})
|
||||||
/**
|
/**
|
||||||
|
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { ForgotEmailComponent } from './forgot-email.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for ForgotEmailComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-forgot-email',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedForgotEmailComponent extends ThemedComponent<ForgotEmailComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'ForgotEmailComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/forgot-password/forgot-password-email/forgot-email.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./forgot-email.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -14,6 +14,7 @@ import { EPerson } from '../../core/eperson/models/eperson.model';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-forgot-password-form',
|
selector: 'ds-forgot-password-form',
|
||||||
|
styleUrls: ['./forgot-password-form.component.scss'],
|
||||||
templateUrl: './forgot-password-form.component.html'
|
templateUrl: './forgot-password-form.component.html'
|
||||||
})
|
})
|
||||||
/**
|
/**
|
||||||
|
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { ForgotPasswordFormComponent } from './forgot-password-form.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for ForgotPasswordFormComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-forgot-password-form',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedForgotPasswordFormComponent extends ThemedComponent<ForgotPasswordFormComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'ForgotPasswordFormComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/forgot-password/forgot-password-form/forgot-password-form.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./forgot-password-form.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -2,27 +2,27 @@ import { NgModule } from '@angular/core';
|
|||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
import { ItemPageResolver } from '../+item-page/item-page.resolver';
|
import { ItemPageResolver } from '../+item-page/item-page.resolver';
|
||||||
import { RegistrationResolver } from '../register-email-form/registration.resolver';
|
import { RegistrationResolver } from '../register-email-form/registration.resolver';
|
||||||
import { ForgotPasswordFormComponent } from './forgot-password-form/forgot-password-form.component';
|
import { ThemedForgotPasswordFormComponent } from './forgot-password-form/themed-forgot-password-form.component';
|
||||||
import { ForgotEmailComponent } from './forgot-password-email/forgot-email.component';
|
import { ThemedForgotEmailComponent } from './forgot-password-email/themed-forgot-email.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
component: ForgotEmailComponent,
|
component: ThemedForgotEmailComponent,
|
||||||
data: {title: 'forgot-password.title'},
|
data: {title: 'forgot-password.title'},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ':token',
|
path: ':token',
|
||||||
component: ForgotPasswordFormComponent,
|
component: ThemedForgotPasswordFormComponent,
|
||||||
resolve: {registration: RegistrationResolver}
|
resolve: {registration: RegistrationResolver}
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
],
|
],
|
||||||
providers: [
|
providers: [
|
||||||
RegistrationResolver,
|
RegistrationResolver,
|
||||||
ItemPageResolver
|
ItemPageResolver,
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
/**
|
/**
|
||||||
|
@@ -6,6 +6,8 @@ import { ForgotPasswordRoutingModule } from './forgot-password-routing.module';
|
|||||||
import { RegisterEmailFormModule } from '../register-email-form/register-email-form.module';
|
import { RegisterEmailFormModule } from '../register-email-form/register-email-form.module';
|
||||||
import { ForgotPasswordFormComponent } from './forgot-password-form/forgot-password-form.component';
|
import { ForgotPasswordFormComponent } from './forgot-password-form/forgot-password-form.component';
|
||||||
import { ProfilePageModule } from '../profile-page/profile-page.module';
|
import { ProfilePageModule } from '../profile-page/profile-page.module';
|
||||||
|
import { ThemedForgotPasswordFormComponent } from './forgot-password-form/themed-forgot-password-form.component';
|
||||||
|
import { ThemedForgotEmailComponent } from './forgot-password-email/themed-forgot-email.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -17,7 +19,9 @@ import { ProfilePageModule } from '../profile-page/profile-page.module';
|
|||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
ForgotEmailComponent,
|
ForgotEmailComponent,
|
||||||
ForgotPasswordFormComponent
|
ThemedForgotEmailComponent,
|
||||||
|
ForgotPasswordFormComponent,
|
||||||
|
ThemedForgotPasswordFormComponent,
|
||||||
],
|
],
|
||||||
providers: []
|
providers: []
|
||||||
})
|
})
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
<div [ngClass]="{'open': !(isNavBarCollapsed | async)}">
|
<div [ngClass]="{'open': !(isNavBarCollapsed | async)}">
|
||||||
<ds-header></ds-header>
|
<ds-themed-header></ds-themed-header>
|
||||||
<ds-navbar></ds-navbar>
|
<ds-themed-navbar></ds-themed-navbar>
|
||||||
</div>
|
</div>
|
||||||
|
25
src/app/header/themed-header.component.ts
Normal file
25
src/app/header/themed-header.component.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { HeaderComponent } from './header.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for HeaderComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-header',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
export class ThemedHeaderComponent extends ThemedComponent<HeaderComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'HeaderComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../themes/${themeName}/app/header/header.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./header.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,27 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { EndUserAgreementComponent } from './end-user-agreement.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for EndUserAgreementComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-end-user-agreement',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -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' }
|
||||||
}
|
}
|
||||||
|
@@ -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 {
|
||||||
|
26
src/app/info/privacy/themed-privacy.component.ts
Normal file
26
src/app/info/privacy/themed-privacy.component.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { PrivacyComponent } from './privacy.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for PrivacyComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-privacy',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -10,6 +10,7 @@ import { ExpandableNavbarSectionComponent } from './expandable-navbar-section/ex
|
|||||||
import { NavbarComponent } from './navbar.component';
|
import { NavbarComponent } from './navbar.component';
|
||||||
import { MenuModule } from '../shared/menu/menu.module';
|
import { MenuModule } from '../shared/menu/menu.module';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
|
import { ThemedNavbarComponent } from './themed-navbar.component';
|
||||||
|
|
||||||
const effects = [
|
const effects = [
|
||||||
NavbarEffects
|
NavbarEffects
|
||||||
@@ -31,6 +32,7 @@ const ENTRY_COMPONENTS = [
|
|||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
NavbarComponent,
|
NavbarComponent,
|
||||||
|
ThemedNavbarComponent,
|
||||||
NavbarSectionComponent,
|
NavbarSectionComponent,
|
||||||
ExpandableNavbarSectionComponent
|
ExpandableNavbarSectionComponent
|
||||||
],
|
],
|
||||||
@@ -42,7 +44,7 @@ const ENTRY_COMPONENTS = [
|
|||||||
ExpandableNavbarSectionComponent
|
ExpandableNavbarSectionComponent
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
NavbarComponent,
|
ThemedNavbarComponent,
|
||||||
NavbarSectionComponent,
|
NavbarSectionComponent,
|
||||||
ExpandableNavbarSectionComponent
|
ExpandableNavbarSectionComponent
|
||||||
]
|
]
|
||||||
|
25
src/app/navbar/themed-navbar.component.ts
Normal file
25
src/app/navbar/themed-navbar.component.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { NavbarComponent } from './navbar.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for NavbarComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-navbar',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
export class ThemedNavbarComponent extends ThemedComponent<NavbarComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'NavbarComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../themes/${themeName}/app/navbar/navbar.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./navbar.component`);
|
||||||
|
}
|
||||||
|
}
|
26
src/app/pagenotfound/themed-pagenotfound.component.ts
Normal file
26
src/app/pagenotfound/themed-pagenotfound.component.ts
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { PageNotFoundComponent } from './pagenotfound.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for PageNotFoundComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-search-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
}
|
@@ -1,12 +1,12 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
|
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
|
||||||
import { ProfilePageComponent } from './profile-page.component';
|
import { ThemedProfilePageComponent } from './themed-profile-page.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forChild([
|
RouterModule.forChild([
|
||||||
{ path: '', pathMatch: 'full', component: ProfilePageComponent, resolve: { breadcrumb: I18nBreadcrumbResolver }, data: { breadcrumbKey: 'profile', title: 'profile.title' } }
|
{ path: '', pathMatch: 'full', component: ThemedProfilePageComponent, resolve: { breadcrumb: I18nBreadcrumbResolver }, data: { breadcrumbKey: 'profile', title: 'profile.title' } }
|
||||||
])
|
])
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
0
src/app/profile-page/profile-page.component.scss
Normal file
0
src/app/profile-page/profile-page.component.scss
Normal file
@@ -21,6 +21,7 @@ import { Operation } from 'fast-json-patch';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-profile-page',
|
selector: 'ds-profile-page',
|
||||||
|
styleUrls: ['./profile-page.component.scss'],
|
||||||
templateUrl: './profile-page.component.html'
|
templateUrl: './profile-page.component.html'
|
||||||
})
|
})
|
||||||
/**
|
/**
|
||||||
|
@@ -5,6 +5,7 @@ import { ProfilePageRoutingModule } from './profile-page-routing.module';
|
|||||||
import { ProfilePageComponent } from './profile-page.component';
|
import { ProfilePageComponent } from './profile-page.component';
|
||||||
import { ProfilePageMetadataFormComponent } from './profile-page-metadata-form/profile-page-metadata-form.component';
|
import { ProfilePageMetadataFormComponent } from './profile-page-metadata-form/profile-page-metadata-form.component';
|
||||||
import { ProfilePageSecurityFormComponent } from './profile-page-security-form/profile-page-security-form.component';
|
import { ProfilePageSecurityFormComponent } from './profile-page-security-form/profile-page-security-form.component';
|
||||||
|
import { ThemedProfilePageComponent } from './themed-profile-page.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -17,6 +18,7 @@ import { ProfilePageSecurityFormComponent } from './profile-page-security-form/p
|
|||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
ProfilePageComponent,
|
ProfilePageComponent,
|
||||||
|
ThemedProfilePageComponent,
|
||||||
ProfilePageMetadataFormComponent,
|
ProfilePageMetadataFormComponent,
|
||||||
ProfilePageSecurityFormComponent
|
ProfilePageSecurityFormComponent
|
||||||
]
|
]
|
||||||
|
25
src/app/profile-page/themed-profile-page.component.ts
Normal file
25
src/app/profile-page/themed-profile-page.component.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../shared/theme-support/themed.component';
|
||||||
|
import { ProfilePageComponent } from './profile-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for ProfilePageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-profile-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedProfilePageComponent extends ThemedComponent<ProfilePageComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'ProfilePageComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../themes/${themeName}/app/profile-page/profile-page.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./profile-page.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -26,6 +26,7 @@ import { getFirstCompletedRemoteData } from '../../core/shared/operators';
|
|||||||
*/
|
*/
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-create-profile',
|
selector: 'ds-create-profile',
|
||||||
|
styleUrls: ['./create-profile.component.scss'],
|
||||||
templateUrl: './create-profile.component.html'
|
templateUrl: './create-profile.component.html'
|
||||||
})
|
})
|
||||||
export class CreateProfileComponent implements OnInit {
|
export class CreateProfileComponent implements OnInit {
|
||||||
|
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { CreateProfileComponent } from './create-profile.component';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for CreateProfileComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-create-profile',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedCreateProfileComponent extends ThemedComponent<CreateProfileComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'CreateProfileComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/register-page/create-profile/create-profile.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./create-profile.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -2,6 +2,7 @@ import { Component } from '@angular/core';
|
|||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ds-register-email',
|
selector: 'ds-register-email',
|
||||||
|
styleUrls: ['./register-email.component.scss'],
|
||||||
templateUrl: './register-email.component.html'
|
templateUrl: './register-email.component.html'
|
||||||
})
|
})
|
||||||
/**
|
/**
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
import { RegisterEmailComponent } from './register-email/register-email.component';
|
import { RegisterEmailComponent } from './register-email/register-email.component';
|
||||||
import { CreateProfileComponent } from './create-profile/create-profile.component';
|
|
||||||
import { ItemPageResolver } from '../+item-page/item-page.resolver';
|
import { ItemPageResolver } from '../+item-page/item-page.resolver';
|
||||||
import { RegistrationResolver } from '../register-email-form/registration.resolver';
|
import { RegistrationResolver } from '../register-email-form/registration.resolver';
|
||||||
import { EndUserAgreementCookieGuard } from '../core/end-user-agreement/end-user-agreement-cookie.guard';
|
import { EndUserAgreementCookieGuard } from '../core/end-user-agreement/end-user-agreement-cookie.guard';
|
||||||
|
import { ThemedCreateProfileComponent } from './create-profile/themed-create-profile.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -16,7 +16,7 @@ import { EndUserAgreementCookieGuard } from '../core/end-user-agreement/end-user
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: ':token',
|
path: ':token',
|
||||||
component: CreateProfileComponent,
|
component: ThemedCreateProfileComponent,
|
||||||
resolve: {registration: RegistrationResolver},
|
resolve: {registration: RegistrationResolver},
|
||||||
canActivate: [EndUserAgreementCookieGuard]
|
canActivate: [EndUserAgreementCookieGuard]
|
||||||
}
|
}
|
||||||
|
@@ -6,6 +6,7 @@ import { RegisterEmailComponent } from './register-email/register-email.componen
|
|||||||
import { CreateProfileComponent } from './create-profile/create-profile.component';
|
import { CreateProfileComponent } from './create-profile/create-profile.component';
|
||||||
import { RegisterEmailFormModule } from '../register-email-form/register-email-form.module';
|
import { RegisterEmailFormModule } from '../register-email-form/register-email-form.module';
|
||||||
import { ProfilePageModule } from '../profile-page/profile-page.module';
|
import { ProfilePageModule } from '../profile-page/profile-page.module';
|
||||||
|
import { ThemedCreateProfileComponent } from './create-profile/themed-create-profile.component';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -17,7 +18,8 @@ import { ProfilePageModule } from '../profile-page/profile-page.module';
|
|||||||
],
|
],
|
||||||
declarations: [
|
declarations: [
|
||||||
RegisterEmailComponent,
|
RegisterEmailComponent,
|
||||||
CreateProfileComponent
|
CreateProfileComponent,
|
||||||
|
ThemedCreateProfileComponent
|
||||||
],
|
],
|
||||||
providers: []
|
providers: []
|
||||||
})
|
})
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
</ds-notifications-board>
|
</ds-notifications-board>
|
||||||
<main class="main-content">
|
<main class="main-content">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<ds-breadcrumbs></ds-breadcrumbs>
|
<ds-themed-breadcrumbs></ds-themed-breadcrumbs>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="container" *ngIf="isLoading">
|
<div class="container" *ngIf="isLoading">
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
<router-outlet></router-outlet>
|
<router-outlet></router-outlet>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<ds-footer></ds-footer>
|
<ds-themed-footer></ds-themed-footer>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ng-template #authLoader>
|
<ng-template #authLoader>
|
||||||
|
@@ -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 = [
|
||||||
|
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { CollectionStatisticsPageComponent } from './collection-statistics-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for CollectionStatisticsPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-collection-statistics-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { CommunityStatisticsPageComponent } from './community-statistics-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for CommunityStatisticsPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-collection-statistics-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { ItemStatisticsPageComponent } from './item-statistics-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for ItemStatisticsPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-item-statistics-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,26 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { SiteStatisticsPageComponent } from './site-statistics-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for SiteStatisticsPageComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-site-statistics-page',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: '../../shared/theme-support/themed.component.html',
|
||||||
|
})
|
||||||
|
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`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -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 {
|
||||||
|
@@ -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({
|
||||||
|
25
src/app/submission/edit/themed-submission-edit.component.ts
Normal file
25
src/app/submission/edit/themed-submission-edit.component.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* Themed wrapper for SubmissionEditComponent
|
||||||
|
*/
|
||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { SubmissionEditComponent } from './submission-edit.component';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-submission-edit',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedSubmissionEditComponent extends ThemedComponent<SubmissionEditComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'SubmissionEditComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/submission/edit/submission-edit.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./submission-edit.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { SubmissionImportExternalComponent } from './submission-import-external.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for SubmissionImportExternalComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-submission-import-external',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedSubmissionImportExternalComponent extends ThemedComponent<SubmissionImportExternalComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'SubmissionImportExternalComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/submission/import-external/submission-import-external.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./submission-import-external.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -34,6 +34,36 @@ import { SubmissionImportExternalCollectionComponent } from './import-external/i
|
|||||||
import { SubmissionSectionCcLicensesComponent } from './sections/cc-license/submission-section-cc-licenses.component';
|
import { SubmissionSectionCcLicensesComponent } from './sections/cc-license/submission-section-cc-licenses.component';
|
||||||
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 { ThemedSubmissionEditComponent } from './edit/themed-submission-edit.component';
|
||||||
|
import { ThemedSubmissionSubmitComponent } from './submit/themed-submission-submit.component';
|
||||||
|
import { ThemedSubmissionImportExternalComponent } from './import-external/themed-submission-import-external.component';
|
||||||
|
|
||||||
|
const DECLARATIONS = [
|
||||||
|
SubmissionSectionUploadAccessConditionsComponent,
|
||||||
|
SubmissionSectionUploadComponent,
|
||||||
|
SubmissionSectionformComponent,
|
||||||
|
SubmissionSectionLicenseComponent,
|
||||||
|
SubmissionSectionCcLicensesComponent,
|
||||||
|
SectionsDirective,
|
||||||
|
SubmissionEditComponent,
|
||||||
|
ThemedSubmissionEditComponent,
|
||||||
|
SubmissionFormSectionAddComponent,
|
||||||
|
SubmissionFormCollectionComponent,
|
||||||
|
SubmissionFormComponent,
|
||||||
|
SubmissionFormFooterComponent,
|
||||||
|
SubmissionSubmitComponent,
|
||||||
|
ThemedSubmissionSubmitComponent,
|
||||||
|
SubmissionUploadFilesComponent,
|
||||||
|
SubmissionSectionContainerComponent,
|
||||||
|
SubmissionSectionUploadFileComponent,
|
||||||
|
SubmissionSectionUploadFileEditComponent,
|
||||||
|
SubmissionSectionUploadFileViewComponent,
|
||||||
|
SubmissionImportExternalComponent,
|
||||||
|
ThemedSubmissionImportExternalComponent,
|
||||||
|
SubmissionImportExternalSearchbarComponent,
|
||||||
|
SubmissionImportExternalPreviewComponent,
|
||||||
|
SubmissionImportExternalCollectionComponent
|
||||||
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
imports: [
|
imports: [
|
||||||
@@ -45,35 +75,8 @@ import { ResearchEntitiesModule } from '../entity-groups/research-entities/resea
|
|||||||
JournalEntitiesModule.withEntryComponents(),
|
JournalEntitiesModule.withEntryComponents(),
|
||||||
ResearchEntitiesModule.withEntryComponents(),
|
ResearchEntitiesModule.withEntryComponents(),
|
||||||
],
|
],
|
||||||
declarations: [
|
declarations: DECLARATIONS,
|
||||||
SubmissionSectionUploadAccessConditionsComponent,
|
exports: DECLARATIONS,
|
||||||
SubmissionSectionUploadComponent,
|
|
||||||
SubmissionSectionformComponent,
|
|
||||||
SubmissionSectionLicenseComponent,
|
|
||||||
SubmissionSectionCcLicensesComponent,
|
|
||||||
SectionsDirective,
|
|
||||||
SubmissionEditComponent,
|
|
||||||
SubmissionFormSectionAddComponent,
|
|
||||||
SubmissionFormCollectionComponent,
|
|
||||||
SubmissionFormComponent,
|
|
||||||
SubmissionFormFooterComponent,
|
|
||||||
SubmissionSubmitComponent,
|
|
||||||
SubmissionUploadFilesComponent,
|
|
||||||
SubmissionSectionContainerComponent,
|
|
||||||
SubmissionSectionUploadFileComponent,
|
|
||||||
SubmissionSectionUploadFileEditComponent,
|
|
||||||
SubmissionSectionUploadFileViewComponent,
|
|
||||||
SubmissionImportExternalComponent,
|
|
||||||
SubmissionImportExternalSearchbarComponent,
|
|
||||||
SubmissionImportExternalPreviewComponent,
|
|
||||||
SubmissionImportExternalCollectionComponent
|
|
||||||
],
|
|
||||||
exports: [
|
|
||||||
SubmissionEditComponent,
|
|
||||||
SubmissionFormComponent,
|
|
||||||
SubmissionSubmitComponent,
|
|
||||||
SubmissionImportExternalComponent
|
|
||||||
],
|
|
||||||
providers: [
|
providers: [
|
||||||
SectionUploadService,
|
SectionUploadService,
|
||||||
SectionsService,
|
SectionsService,
|
||||||
|
@@ -0,0 +1,25 @@
|
|||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ThemedComponent } from '../../shared/theme-support/themed.component';
|
||||||
|
import { SubmissionSubmitComponent } from './submission-submit.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Themed wrapper for SubmissionSubmitComponent
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-themed-submission-submit',
|
||||||
|
styleUrls: [],
|
||||||
|
templateUrl: './../../shared/theme-support/themed.component.html'
|
||||||
|
})
|
||||||
|
export class ThemedSubmissionSubmitComponent extends ThemedComponent<SubmissionSubmitComponent> {
|
||||||
|
protected getComponentName(): string {
|
||||||
|
return 'SubmissionImportExternalComponent';
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importThemedComponent(themeName: string): Promise<any> {
|
||||||
|
return import(`../../../themes/${themeName}/app/submission/submit/submission-submit.component`);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected importUnthemedComponent(): Promise<any> {
|
||||||
|
return import(`./submission-submit.component`);
|
||||||
|
}
|
||||||
|
}
|
@@ -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 for determining what Browse-By component to use depending on the metadata (browse ID) provided
|
||||||
|
*/
|
||||||
|
export class BrowseBySwitcherComponent extends BaseComponent {}
|
||||||
|
|
@@ -0,0 +1,21 @@
|
|||||||
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||||
|
import { CollectionPageComponent as BaseComponent} from '../../../../app/+collection-page/collection-page.component';
|
||||||
|
import { fadeIn, fadeInOut } from '../../../../app/shared/animations/fade';
|
||||||
|
|
||||||
|
|
||||||
|
@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'],
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
|
animations: [
|
||||||
|
fadeIn,
|
||||||
|
fadeInOut
|
||||||
|
]
|
||||||
|
})
|
||||||
|
/**
|
||||||
|
* This component represents a detail page for a single collection
|
||||||
|
*/
|
||||||
|
export class CollectionPageComponent extends BaseComponent {}
|
@@ -0,0 +1,18 @@
|
|||||||
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||||
|
import { CommunityPageComponent as BaseComponent} from '../../../../app/+community-page/community-page.component';
|
||||||
|
import { fadeInOut } from '../../../../app/shared/animations/fade';
|
||||||
|
|
||||||
|
|
||||||
|
@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'],
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
|
animations: [fadeInOut]
|
||||||
|
})
|
||||||
|
/**
|
||||||
|
* This component represents a detail page for a single community
|
||||||
|
*/
|
||||||
|
export class CommunityPageComponent extends BaseComponent {}
|
@@ -0,0 +1,20 @@
|
|||||||
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||||
|
import { fadeInOut } from '../../../../../app/shared/animations/fade';
|
||||||
|
import { FullItemPageComponent as BaseComponent } from '../../../../../app/+item-page/full/full-item-page.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This component renders a full item page.
|
||||||
|
* The route parameter 'id' is used to request the item it represents.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'ds-full-item-page',
|
||||||
|
// styleUrls: ['./full-item-page.component.scss'],
|
||||||
|
styleUrls: ['../../../../../app/+item-page/full/full-item-page.component.scss'],
|
||||||
|
// templateUrl: './full-item-page.component.html',
|
||||||
|
templateUrl: '../../../../../app/+item-page/full/full-item-page.component.html',
|
||||||
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
|
animations: [fadeInOut]
|
||||||
|
})
|
||||||
|
export class FullItemPageComponent extends BaseComponent {
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user