diff --git a/docs/config_json.rst b/docs/config_json.rst index 102d7a982..de434f2b5 100644 --- a/docs/config_json.rst +++ b/docs/config_json.rst @@ -167,11 +167,24 @@ Résumé * - title - String - - Permet de définir le titre de l'application qu'on retrouve dans le menu d'accueil. + - .. line-block:: + Permet de définir le titre de l'application qu'on retrouve dans le menu d'accueil. + Constante pouvant être réutilisée dans le welcomeWindow. + - + * - version + - {app: String, releaseDateApp: String} + - .. line-block:: + Permet de définir une constante, pour la version du présent déploiement et de la + date de déploiement de l'application. releaseDateApp, doit être un format reconnu et + interprétable au format Date. Si le format n'est pas convertissable en date, + la valeur fournie sera utilisée directement. + Constante pouvant être réutilisée dans le welcomeWindow. - * - description - String - - Permet de définir ce qui sera affiché lors de la recherche dans les moteurs de recherche, comme par exemple Google. + - .. line-block:: + Permet de définir ce qui sera affiché lors de la recherche dans les moteurs de recherche, comme par exemple Google. + Constante pouvant être réutilisée dans le welcomeWindow. - * - welcomeWindow - `WelcomeWindow`_ @@ -183,6 +196,14 @@ Résumé "title": "Fenêtre d'accueil", "closeButton": "Fermer", "notShowCheck": " ne plus afficher"} + Les propriétés title, description, version, releaseDate peuvent être utilisé dans le contenu html + pour ajouter du contenu statique non traduit. + ex: "html": "

Débutez en sélectionnant un contexte ★

Version {{version}}" + - title provient de la propriété title ci haut. + - description provient de la propriété description ci haut. + - version provient de la propriété version.app ci haut OU de la version de la librairie associée (igo2-lib) + - releaseDate provient de la propriété version.releaseDateApp ci haut OU de la releaseDate de la librairie associée (igo2-lib) + }); - diff --git a/src/app/pages/portal/welcome-window/welcome-window.component.html b/src/app/pages/portal/welcome-window/welcome-window.component.html index 8de3d2bd8..8c2e028af 100644 --- a/src/app/pages/portal/welcome-window/welcome-window.component.html +++ b/src/app/pages/portal/welcome-window/welcome-window.component.html @@ -12,7 +12,7 @@

{{'welcomeWindow.title' | translate}}

+ [html]="html | translate:translationParameters">
diff --git a/src/app/pages/portal/welcome-window/welcome-window.component.ts b/src/app/pages/portal/welcome-window/welcome-window.component.ts index e09b76834..12de155e8 100644 --- a/src/app/pages/portal/welcome-window/welcome-window.component.ts +++ b/src/app/pages/portal/welcome-window/welcome-window.component.ts @@ -1,6 +1,8 @@ import { Component } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; +import { ConfigService, LanguageService } from '@igo2/core'; import { WelcomeWindowService } from './welcome-window.service'; +import { map } from 'rxjs/operators'; @Component({ selector: 'app-welcome-window', @@ -13,16 +15,62 @@ export class WelcomeWindowComponent { constructor( public dialog: MatDialog, - private welcomeWindowService: WelcomeWindowService - ) {} + private welcomeWindowService: WelcomeWindowService, + private configService: ConfigService, + protected languageService: LanguageService + ) { } closeWelcomeWindow() { this.dialog.closeAll(); } + get translationParameters() { + let deltaDay = 0; + let isDateParsable = true; + let releaseDate = new Date(this.configService.getConfig('version.releaseDate')); + + const releaseDateAppConfig = this.configService.getConfig('version.releaseDateApp'); + + + if (releaseDateAppConfig) { + const releaseDateApp = new Date(releaseDateAppConfig); + if (isNaN(releaseDateApp.getDate())) { + console.log('The releaseDateApp config is not a valid date format'); + isDateParsable = false; + } else { + deltaDay = 1; + releaseDate = releaseDateApp; + } + } + + let releaseDateString = ''; + + if (isDateParsable) { + let day: any = releaseDate.getDate() + deltaDay; + if (day < 10) { + day = '0' + day; + } + let month: any = releaseDate.getMonth() + 1; + if (month < 10) { + month = '0' + month; + } + const year = releaseDate.getFullYear(); + releaseDateString = `${year}-${month}-${day}`; + } else { + releaseDateString = releaseDateAppConfig; + } + + return { + title: this.configService.getConfig('title') || '', + description: this.configService.getConfig('description') || '', + version: this.configService.getConfig('version.app') || this.configService.getConfig('version.lib') || '', + releaseDate: releaseDateString || '' + }; + + } + get html() { - const _html = 'welcomeWindow.html'; - return _html; + return 'welcomeWindow.html'; } setShowAgain() { diff --git a/src/locale/en.json b/src/locale/en.json index 7cefbcab6..a476fc460 100644 --- a/src/locale/en.json +++ b/src/locale/en.json @@ -28,7 +28,7 @@ "googleMap": "Show in Google maps", "googleStreetView": "Show in Google Street view", "welcomeWindow": { - "html": "

Welcome to IGO the Québec goverment mapping application

", + "html": "

Welcome to {{title}, the Québec goverment mapping application

Version {{version}}, build on {{releaseDate}}

", "title": "", "closeButton": "Close", "notShowCheck": "Do not show again" diff --git a/src/locale/fr.json b/src/locale/fr.json index e9ed26be3..89f9882b3 100644 --- a/src/locale/fr.json +++ b/src/locale/fr.json @@ -27,7 +27,7 @@ "googleMap": "Afficher sur Google maps", "googleStreetView": "Afficher sur Google Street view", "welcomeWindow": { - "html": "

Bienvenue dans IGO, l'application cartographique du gouvernement du Québec

Débutez en sélectionnant un contexte ★

", + "html": "

Bienvenue dans {{title}}, l'application cartographique du gouvernement du Québec

Débutez en sélectionnant un contexte ★

Version {{version}}, en date du {{releaseDate}}

", "title": "Fenêtre d'accueil", "closeButton": "Fermer", "notShowCheck": "Ne plus afficher"