Skip to content

Commit

Permalink
feat: implement new georchestra header
Browse files Browse the repository at this point in the history
  • Loading branch information
f-necas committed Nov 28, 2023
1 parent f2f5ff6 commit 2cc7d1d
Show file tree
Hide file tree
Showing 7 changed files with 53 additions and 10 deletions.
3 changes: 2 additions & 1 deletion apps/datafeeder/src/app/app-routing.module.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { NgModule } from '@angular/core'
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'
import { RouterModule, Routes } from '@angular/router'
import { UploadDataPageComponent } from './presentation/pages/upload-data-page/upload-data.page'
import { AnalysisProgressPageComponent } from './presentation/pages/analysis-progress-page/analysis-progress.page'
Expand Down Expand Up @@ -50,5 +50,6 @@ const routes: Routes = [
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppRoutingModule {}
7 changes: 1 addition & 6 deletions apps/datafeeder/src/app/app.component.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,2 @@
<iframe
[style.height]="headerHeight"
[src]="headerSrc | safe: 'resourceUrl'"
scrolling="no"
frameborder="0"
></iframe>
<geor-header [style.height]="headerHeight" active-app="import"></geor-header>
<router-outlet></router-outlet>
8 changes: 8 additions & 0 deletions apps/datafeeder/src/app/app.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@ import { RouterTestingModule } from '@angular/router/testing'
import { AppComponent } from './app.component'
import { UtilSharedModule } from '@geonetwork-ui/util/shared'
import SETTINGS from '../settings'
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'

describe('AppComponent', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [RouterTestingModule, UtilSharedModule],
declarations: [AppComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
}).compileComponents()
})

Expand All @@ -31,5 +33,11 @@ describe('AppComponent', () => {
it(`should have SETTINGS.headerSrc as src`, () => {
expect(app.headerSrc).toEqual(SETTINGS.headerSrc)
})
it(`should have SETTINGS.headerScript as script`, () => {
expect(app.headerScript).toEqual(SETTINGS.headerScript)
})
it(`should have SETTINGS.useLegacyHeader as useLegacyHeader`, () => {
expect(app.useLegacyHeader).toEqual(SETTINGS.useLegacyHeader)
})
})
})
30 changes: 29 additions & 1 deletion apps/datafeeder/src/app/app.component.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Component, OnInit } from '@angular/core'
import { Component, OnInit, SecurityContext } from '@angular/core'
import { ThemeService } from '@geonetwork-ui/util/shared'
import SETTINGS from '../settings'
import { DomSanitizer, SafeHtml } from '@angular/platform-browser'

@Component({
selector: 'gn-ui-root',
Expand All @@ -11,8 +12,35 @@ export class AppComponent implements OnInit {
title = 'datafeeder'
headerSrc = SETTINGS.headerSrc
headerHeight = SETTINGS.headerHeight
headerScript = SETTINGS.headerScript
useLegacyHeader = SETTINGS.useLegacyHeader
headerLogo = SETTINGS.headerLogo

constructor(private _sanitizer: DomSanitizer) {}
ngOnInit() {
ThemeService.applyCssVariables('#1EA9D5', '#EF7749', '#2E353A', '#fff')
this.loadScript()
}

transform(value: string): SafeHtml {
return this._sanitizer.sanitize(
SecurityContext.HTML,
this._sanitizer.bypassSecurityTrustUrl(value)
)
}

private loadScript() {
const georHeader = document.getElementsByTagName('geor-header')
if (georHeader[0]) {
georHeader[0].setAttribute('legacy-header', String(this.useLegacyHeader))
georHeader[0].setAttribute('legacy-url', this.headerSrc)
georHeader[0].setAttribute('logo-url', this.headerLogo)
}

const headerJSTag = document.createElement('script')
headerJSTag.type = 'text/javascript'
headerJSTag.async = true
headerJSTag.src = SETTINGS.headerScript
document.body.appendChild(headerJSTag)
}
}
7 changes: 6 additions & 1 deletion apps/datafeeder/src/app/app.module.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
import { BrowserModule } from '@angular/platform-browser'
import { importProvidersFrom, NgModule } from '@angular/core'
import {
CUSTOM_ELEMENTS_SCHEMA,
importProvidersFrom,
NgModule,
} from '@angular/core'
import { ApiModule, Configuration } from '@geonetwork-ui/data-access/datafeeder'
import { UiWidgetsModule } from '@geonetwork-ui/ui/widgets'
import { StoreModule } from '@ngrx/store'
Expand Down Expand Up @@ -89,5 +93,6 @@ export function apiConfigurationFactory() {
],
providers: [importProvidersFrom(FeatureAuthModule)],
bootstrap: [AppComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class AppModule {}
5 changes: 4 additions & 1 deletion apps/datafeeder/src/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ const SETTING_API = `${environment.apiUrl}/config/frontend`

class Settings {
headerHeight = '90px'
headerSrc = '/header/?active=import'
headerSrc = '/header/'
headerScript = 'https://cdn.jsdelivr.net/gh/georchestra/header@dist/header.js'
useLegacyHeader = false
headerLogo = 'https://www.georchestra.org/public/georchestra-logo.svg'
encodings = [
{
label: 'UTF-8',
Expand Down
3 changes: 3 additions & 0 deletions support-services/datafeeder/datadir/default.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ instanceName=geOrchestra
language=en
headerHeight=90
headerUrl=/header/
headerScript=https://cdn.jsdelivr.net/gh/georchestra/header@dist/header.js
headerLogo=https://www.georchestra.org/public/georchestra-logo.svg
useLegacyHeader=false
administratorEmail=georchestra@georchestra-127-0-1-1.traefik.me
### PostgreSQL properties
pgsqlHost=database
Expand Down

0 comments on commit 2cc7d1d

Please sign in to comment.