Added themable header, footer and navbar

This commit is contained in:
lotte
2021-03-17 11:32:59 +01:00
committed by Art Lowel
parent f5a34bb14e
commit 1d4c77e485
17 changed files with 141 additions and 6 deletions

View File

@@ -48,6 +48,8 @@ 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 { ThemedPageNotFoundComponent } from './pagenotfound/themed-pagenotfound.component';
import { ThemedForbiddenComponent } from './forbidden/themed-forbidden.component'; import { ThemedForbiddenComponent } from './forbidden/themed-forbidden.component';
import { ThemedHeaderComponent } from './header/themed-header.component';
import { ThemedFooterComponent } from './footer/themed-footer.component';
export function getBase() { export function getBase() {
return environment.ui.nameSpace; return environment.ui.nameSpace;
@@ -129,11 +131,13 @@ const DECLARATIONS = [
RootComponent, RootComponent,
ThemedRootComponent, ThemedRootComponent,
HeaderComponent, HeaderComponent,
ThemedHeaderComponent,
HeaderNavbarWrapperComponent, HeaderNavbarWrapperComponent,
AdminSidebarComponent, AdminSidebarComponent,
AdminSidebarSectionComponent, AdminSidebarSectionComponent,
ExpandableAdminSidebarSectionComponent, ExpandableAdminSidebarSectionComponent,
FooterComponent, FooterComponent,
ThemedFooterComponent,
PageNotFoundComponent, PageNotFoundComponent,
ThemedPageNotFoundComponent, ThemedPageNotFoundComponent,
NotificationComponent, NotificationComponent,

View 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`);
}
}

View File

@@ -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>

View File

@@ -0,0 +1,29 @@
import { Component } from '@angular/core';
import { Observable } from 'rxjs';
import { MenuService } from '../shared/menu/menu.service';
import { MenuID } from '../shared/menu/initial-menus-state';
import { ThemedComponent } from '../shared/theme-support/themed.component';
import { CommunityListPageComponent } from '../community-list-page/community-list-page.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`);
}
}

View File

@@ -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
] ]

View 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`);
}
}

View File

@@ -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>

View File

@@ -0,0 +1,12 @@
import { Component } from '@angular/core';
import { FooterComponent as BaseComponent } from '../../../../app/footer/footer.component';
@Component({
selector: 'ds-footer',
// styleUrls: ['footer.component.scss'],
styleUrls: ['../../../../app/footer/footer.component.scss'],
// templateUrl: 'footer.component.html'
templateUrl: '../../../../app/footer/footer.component.html'
})
export class FooterComponent extends BaseComponent {
}

View File

@@ -0,0 +1,15 @@
import { Component } from '@angular/core';
import { HeaderComponent as BaseComponent } from '../../../../app/header/header.component';
/**
* Represents the header with the logo and simple navigation
*/
@Component({
selector: 'ds-header',
// styleUrls: ['header.component.scss'],
styleUrls: ['../../../../app/header/header.component.scss'],
// templateUrl: 'header.component.html',
templateUrl: '../../../../app/header/header.component.html',
})
export class HeaderComponent extends BaseComponent {
}

View File

@@ -0,0 +1,17 @@
import { Component } from '@angular/core';
import { NavbarComponent as BaseComponent } from '../../../../app/navbar/navbar.component';
import { slideMobileNav } from '../../../../app/shared/animations/slide';
/**
* Component representing the public navbar
*/
@Component({
selector: 'ds-navbar',
// styleUrls: ['./navbar.component.scss'],
styleUrls: ['../../../../app/navbar/navbar.component.scss'],
// templateUrl: './navbar.component.html',
templateUrl: '../../../../app/navbar/navbar.component.html',
animations: [slideMobileNav]
})
export class NavbarComponent extends BaseComponent {
}

View File

@@ -74,6 +74,9 @@ import { WorkflowItemSendBackComponent } from './app/+workflowitems-edit-page/wo
import { WorkflowItemDeleteComponent } from './app/+workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component'; import { WorkflowItemDeleteComponent } from './app/+workflowitems-edit-page/workflow-item-delete/workflow-item-delete.component';
import { SubmissionModule } from '../../app/submission/submission.module'; import { SubmissionModule } from '../../app/submission/submission.module';
import { MyDSpacePageModule } from '../../app/+my-dspace-page/my-dspace-page.module'; import { MyDSpacePageModule } from '../../app/+my-dspace-page/my-dspace-page.module';
import { NavbarComponent } from './app/navbar/navbar.component';
import { HeaderComponent } from './app/header/header.component';
import { FooterComponent } from './app/footer/footer.component';
const DECLARATIONS = [ const DECLARATIONS = [
HomePageComponent, HomePageComponent,
@@ -109,7 +112,10 @@ const DECLARATIONS = [
SubmissionImportExternalComponent, SubmissionImportExternalComponent,
SubmissionSubmitComponent, SubmissionSubmitComponent,
WorkflowItemDeleteComponent, WorkflowItemDeleteComponent,
WorkflowItemSendBackComponent WorkflowItemSendBackComponent,
FooterComponent,
HeaderComponent,
NavbarComponent
]; ];