diff --git a/angular.json b/angular.json index 60124d795..a9ded62fd 100644 --- a/angular.json +++ b/angular.json @@ -64,6 +64,11 @@ "inject": false, "bundleName": "mdsoar-theme" }, + { + "input": "src/themes/mdsoar/styles/theme.scss", + "inject": false, + "bundleName": "mdsoar-bowie-state-theme" + }, { "input": "src/themes/mdsoar/styles/theme.scss", "inject": false, diff --git a/config/config.yml b/config/config.yml index e4aba684d..cbaaa81b3 100644 --- a/config/config.yml +++ b/config/config.yml @@ -26,6 +26,11 @@ themes: # over time (and across servers). # Community Themes + - name: 'mdsoar-bowie-state' + extends: 'mdsoar' + # handle: '11603/40165' + uuid: '40761e5f-122b-409b-ad4a-2d3afa1dc903' + - name: 'mdsoar-frostburg' extends: 'mdsoar' # handle: '11603/1' diff --git a/src/themes/mdsoar-bowie-state/app/breadcrumbs/breadcrumbs.component.ts b/src/themes/mdsoar-bowie-state/app/breadcrumbs/breadcrumbs.component.ts new file mode 100644 index 000000000..aeab2d76e --- /dev/null +++ b/src/themes/mdsoar-bowie-state/app/breadcrumbs/breadcrumbs.component.ts @@ -0,0 +1,40 @@ +import { + AsyncPipe, + NgFor, + NgIf, + NgTemplateOutlet, +} from '@angular/common'; +import { Component } from '@angular/core'; +import { RouterLink } from '@angular/router'; +import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateModule } from '@ngx-translate/core'; +import { BreadcrumbsService } from 'src/app/breadcrumbs/breadcrumbs.service'; +import { VarDirective } from 'src/app/shared/utils/var.directive'; + +import { BreadcrumbsComponent as BaseComponent } from '../../../mdsoar/app/breadcrumbs/breadcrumbs.component'; + +/** + * Component representing the breadcrumbs of a page + */ +@Component({ + selector: 'ds-themed-breadcrumbs', + templateUrl: '../../../mdsoar/app/breadcrumbs/breadcrumbs.component.html', + styleUrls: [ + '../../../../app/breadcrumbs/breadcrumbs.component.scss', + '../../../mdsoar/app/breadcrumbs/breadcrumbs.component.scss', + ], + imports: [ + AsyncPipe, NgbTooltipModule, NgFor, NgIf, NgTemplateOutlet, RouterLink, + TranslateModule, VarDirective, + ], + standalone: true, +}) +export class BreadcrumbsComponent extends BaseComponent { + communityLogoPath = 'assets/mdsoar-bowie-state/images/community_logo.jpg'; + + constructor( + breadcrumbsService: BreadcrumbsService, + ) { + super(breadcrumbsService); + } +} diff --git a/src/themes/mdsoar-bowie-state/app/footer/footer.component.html b/src/themes/mdsoar-bowie-state/app/footer/footer.component.html new file mode 100644 index 000000000..c35dbd014 --- /dev/null +++ b/src/themes/mdsoar-bowie-state/app/footer/footer.component.html @@ -0,0 +1,31 @@ + diff --git a/src/themes/mdsoar-bowie-state/app/footer/footer.component.ts b/src/themes/mdsoar-bowie-state/app/footer/footer.component.ts new file mode 100644 index 000000000..1ca834c4f --- /dev/null +++ b/src/themes/mdsoar-bowie-state/app/footer/footer.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; + +import { FooterComponent as BaseComponent } from '../../../mdsoar/app/footer/footer.component'; + +@Component({ + selector: 'ds-themed-footer', + styleUrls: ['../../../mdsoar/app/footer/footer.component.scss'], + templateUrl: 'footer.component.html', + imports: [], + standalone: true, +}) +export class FooterComponent extends BaseComponent { +} diff --git a/src/themes/mdsoar-bowie-state/assets/images/community_logo.jpg b/src/themes/mdsoar-bowie-state/assets/images/community_logo.jpg new file mode 100644 index 000000000..a9aaaf0d2 Binary files /dev/null and b/src/themes/mdsoar-bowie-state/assets/images/community_logo.jpg differ diff --git a/src/themes/mdsoar-bowie-state/eager-theme.module.ts b/src/themes/mdsoar-bowie-state/eager-theme.module.ts new file mode 100644 index 000000000..270050c77 --- /dev/null +++ b/src/themes/mdsoar-bowie-state/eager-theme.module.ts @@ -0,0 +1,34 @@ +import { NgModule } from '@angular/core'; + +import { BreadcrumbsComponent } from './app/breadcrumbs/breadcrumbs.component'; +import { FooterComponent } from './app/footer/footer.component'; + +/** + * Add components that use a custom decorator to ENTRY_COMPONENTS as well as DECLARATIONS. + * This will ensure that decorator gets picked up when the app loads + */ +const ENTRY_COMPONENTS = []; + +const DECLARATIONS = [ + ...ENTRY_COMPONENTS, + BreadcrumbsComponent, + FooterComponent, +]; + +@NgModule({ + imports: [ ...DECLARATIONS ], + providers: [ + ...ENTRY_COMPONENTS.map((component) => ({ provide: component })), + ], +}) +/** + * This module is included in the main bundle that gets downloaded at first page load. So it should + * contain only the themed components that have to be available immediately for the first page load, + * and the minimal set of imports required to make them work. Anything you can cut from it will make + * the initial page load faster, but may cause the page to flicker as components that were already + * rendered server side need to be lazy-loaded again client side + * + * Themed EntryComponents should also be added here + */ +export class EagerThemeModule { +} diff --git a/src/themes/mdsoar/app/home-page/home-page.component.html b/src/themes/mdsoar/app/home-page/home-page.component.html index 93755519b..f5311a8b3 100644 --- a/src/themes/mdsoar/app/home-page/home-page.component.html +++ b/src/themes/mdsoar/app/home-page/home-page.component.html @@ -33,6 +33,10 @@
Select a community to browse its collections.
+ +