From bcc047a98eb2605cc4f57415ea39699708714f7c Mon Sep 17 00:00:00 2001 From: Christoph Lukas Date: Wed, 8 May 2019 20:25:49 +0200 Subject: [PATCH 1/2] Added simple callback functionality to add preRender function --- src/widgets/EventPage.ts | 7 +++++++ src/widgets/config/EventPageConfig.ts | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/src/widgets/EventPage.ts b/src/widgets/EventPage.ts index 77f6edd..227f91b 100644 --- a/src/widgets/EventPage.ts +++ b/src/widgets/EventPage.ts @@ -109,6 +109,12 @@ export default class EventPage extends Widget { $('head').append(``); } + private preRender() { + if(this.config.preRenderCallback && typeof(this.config.preRenderCallback) == 'function') { + this.config.preRenderCallback(this.event); + } + } + private init() { if (this.config.theme) { this.$root.addClass(this.config.theme); @@ -128,6 +134,7 @@ export default class EventPage extends Widget { self.event = new Event(data, self.config); self.updateHTML(); self.addJsonLD(); + self.preRender(); self.renderWidget(); }); } diff --git a/src/widgets/config/EventPageConfig.ts b/src/widgets/config/EventPageConfig.ts index e726170..1a7fcce 100644 --- a/src/widgets/config/EventPageConfig.ts +++ b/src/widgets/config/EventPageConfig.ts @@ -74,6 +74,11 @@ export default class EventPageConfig extends WidgetConfig { */ readonly numberOfTickets: boolean; + /** + * Callback function to parse event data into markup + */ + readonly preRenderCallback: Function; + protected constructor(options: IPlainObject) { super(options); this.trainers = options.trainers !== undefined ? options.trainers : false; @@ -83,6 +88,7 @@ export default class EventPageConfig extends WidgetConfig { this.expiredTickets = options.expiredTickets !== undefined ? options.expiredTickets : true; this.numberOfTickets = options.numberOfTickets !== undefined ? options.numberOfTickets : true; this.showFutureEvents = options.futureEvents !== undefined ? options.futureEvents : true; + this.preRenderCallback = typeof(options.preRenderCallback) == 'function' ? options.preRenderCallback: undefined; this.eventPageUrl = safeHref(); } From f254737cff6ad5d26f64cd6602f4ec9f0d7b00ee Mon Sep 17 00:00:00 2001 From: Christoph Lukas Date: Wed, 8 May 2019 21:59:18 +0200 Subject: [PATCH 2/2] Fixed tslint errors --- src/widgets/EventPage.ts | 2 +- src/widgets/config/EventPageConfig.ts | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/widgets/EventPage.ts b/src/widgets/EventPage.ts index 227f91b..2efd530 100644 --- a/src/widgets/EventPage.ts +++ b/src/widgets/EventPage.ts @@ -110,7 +110,7 @@ export default class EventPage extends Widget { } private preRender() { - if(this.config.preRenderCallback && typeof(this.config.preRenderCallback) == 'function') { + if (this.config.preRenderCallback && typeof(this.config.preRenderCallback) === 'function') { this.config.preRenderCallback(this.event); } } diff --git a/src/widgets/config/EventPageConfig.ts b/src/widgets/config/EventPageConfig.ts index 1a7fcce..e622556 100644 --- a/src/widgets/config/EventPageConfig.ts +++ b/src/widgets/config/EventPageConfig.ts @@ -1,6 +1,7 @@ import {logError} from '../../common/Error'; import {absoluteURL, safeHref} from '../../common/helpers/UrlParser'; import IPlainObject from '../../interfaces/IPlainObject'; +import Event from '../../models/Event'; import WidgetConfig from './WidgetConfig'; /** @@ -77,7 +78,7 @@ export default class EventPageConfig extends WidgetConfig { /** * Callback function to parse event data into markup */ - readonly preRenderCallback: Function; + readonly preRenderCallback: (event: Event) => void; protected constructor(options: IPlainObject) { super(options); @@ -88,7 +89,7 @@ export default class EventPageConfig extends WidgetConfig { this.expiredTickets = options.expiredTickets !== undefined ? options.expiredTickets : true; this.numberOfTickets = options.numberOfTickets !== undefined ? options.numberOfTickets : true; this.showFutureEvents = options.futureEvents !== undefined ? options.futureEvents : true; - this.preRenderCallback = typeof(options.preRenderCallback) == 'function' ? options.preRenderCallback: undefined; + this.preRenderCallback = typeof(options.preRenderCallback) === 'function' ? options.preRenderCallback : undefined; this.eventPageUrl = safeHref(); }