diff --git a/Customizations/Layout.ts b/Customizations/Layout.ts index a883bd8..4645c4d 100644 --- a/Customizations/Layout.ts +++ b/Customizations/Layout.ts @@ -1,6 +1,8 @@ import {LayerDefinition} from "./LayerDefinition"; import { UIElement } from "../UI/UIElement"; -import { FixedUiElement } from "../UI/Base/FixedUiElement"; +import {FixedUiElement} from "../UI/Base/FixedUiElement"; +import Translation from "../UI/i18n/Translation"; +import Translations from "../UI/i18n/Translations"; /** * A layout is a collection of settings of the global view (thus: welcome text, title, selection of layers). @@ -10,14 +12,14 @@ export class Layout { public title: UIElement; public layers: LayerDefinition[]; public welcomeMessage: UIElement; - public gettingStartedPlzLogin: string; - public welcomeBackMessage: string; + public gettingStartedPlzLogin: UIElement; + public welcomeBackMessage: UIElement; + public welcomeTail: UIElement; public startzoom: number; public supportedLanguages: string[]; public startLon: number; public startLat: number; - public welcomeTail: string; public locationContains: string[]; @@ -43,21 +45,21 @@ export class Layout { startLat: number, startLon: number, welcomeMessage: UIElement | string, - gettingStartedPlzLogin: string = "Please login to get started", - welcomeBackMessage: string = "You are logged in. Welcome back!", - welcomeTail: string = "" + gettingStartedPlzLogin: UIElement | string = "Please login to get started", + welcomeBackMessage: UIElement | string = "You are logged in. Welcome back!", + welcomeTail: UIElement | string = "" ) { this.supportedLanguages = supportedLanguages; - this.title = typeof(title) === 'string' ? new FixedUiElement(title) : title; + this.title = typeof (title) === 'string' ? new FixedUiElement(title) : title; this.startLon = startLon; this.startLat = startLat; this.startzoom = startzoom; this.name = name; this.layers = layers; - this.welcomeMessage = typeof(welcomeMessage) === 'string' ? new FixedUiElement(welcomeMessage) : welcomeMessage; - this.gettingStartedPlzLogin = gettingStartedPlzLogin; - this.welcomeBackMessage = welcomeBackMessage; - this.welcomeTail = welcomeTail; + this.welcomeMessage =Translations.W(welcomeMessage) + this.gettingStartedPlzLogin = Translations.W(gettingStartedPlzLogin); + this.welcomeBackMessage = Translations.W(welcomeBackMessage); + this.welcomeTail = Translations.W(welcomeTail); } } diff --git a/Customizations/Layouts/Cyclofix.ts b/Customizations/Layouts/Cyclofix.ts index 86edf04..32a7ad5 100644 --- a/Customizations/Layouts/Cyclofix.ts +++ b/Customizations/Layouts/Cyclofix.ts @@ -6,6 +6,7 @@ import {GhostBike} from "../Layers/GhostBike"; import Translations from "../../UI/i18n/Translations"; import {DrinkingWater} from "../Layers/DrinkingWater"; import {BikeShop} from "../Layers/BikeShop" +import Combine from "../../UI/Base/Combine"; export default class Cyclofix extends Layout { @@ -18,10 +19,13 @@ export default class Cyclofix extends Layout { 16, 50.8465573, 4.3516970, - "
${Translations.t.cyclofix.description.Render()}
` - , + new Combine([ + "", + Translations.t.cyclofix.description, + "
" + ]), "", ""); } } diff --git a/Customizations/Questions/bike/StationOperator.ts b/Customizations/Questions/bike/StationOperator.ts index 5d09434..94f1efb 100644 --- a/Customizations/Questions/bike/StationOperator.ts +++ b/Customizations/Questions/bike/StationOperator.ts @@ -18,8 +18,8 @@ export default class BikeStationOperator extends TagRenderingOptions { ], freeform: { key: "operator", - template: to.template, - renderTemplate: to.render, + template: to.template.txt, + renderTemplate: to.render.txt, placeholder: "organisatie" } }); diff --git a/UI/Base/Combine.ts b/UI/Base/Combine.ts new file mode 100644 index 0000000..83f1033 --- /dev/null +++ b/UI/Base/Combine.ts @@ -0,0 +1,19 @@ +import {UIElement} from "../UIElement"; +import Translations from "../i18n/Translations"; + +export default class Combine extends UIElement { + private uiElements: UIElement[]; + + constructor(uiElements: (string | UIElement)[]) { + super(undefined); + this.uiElements = uiElements.map(Translations.W); + } + + InnerRender(): string { + let elements = ""; + for (const element of this.uiElements) { + elements += element.Render(); + } + return elements; + } +} \ No newline at end of file diff --git a/UI/UIElement.ts b/UI/UIElement.ts index 8e1ff27..6d7b7fc 100644 --- a/UI/UIElement.ts +++ b/UI/UIElement.ts @@ -13,18 +13,23 @@ export abstract class UIElement { this.id = "ui-element-" + UIElement.nextId; this._source = source; UIElement.nextId++; + if (UIElement.nextId % 100 == 0) { + + console.log(UIElement.nextId) + } this.ListenTo(source); } public ListenTo(source: UIEventSource