From 47f20a6774d64d7c3b3bfec1afa02351e650ff85 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Thu, 9 Aug 2018 12:08:10 +0200 Subject: [PATCH 1/2] MOBILE-2548 siteplugins: Allow passing JS variables to new pages --- .../core-siteplugins-module-index.html | 2 +- .../components/module-index/module-index.ts | 5 +++++ .../components/plugin-content/plugin-content.ts | 17 ++++++++++++++--- .../directives/call-ws-new-content.ts | 12 ++++++++++-- src/core/siteplugins/directives/new-content.ts | 12 ++++++++++-- .../pages/plugin-page/plugin-page.html | 2 +- .../pages/plugin-page/plugin-page.ts | 2 ++ 7 files changed, 43 insertions(+), 9 deletions(-) diff --git a/src/core/siteplugins/components/module-index/core-siteplugins-module-index.html b/src/core/siteplugins/components/module-index/core-siteplugins-module-index.html index 6e09aa864..3c57c372f 100644 --- a/src/core/siteplugins/components/module-index/core-siteplugins-module-index.html +++ b/src/core/siteplugins/components/module-index/core-siteplugins-module-index.html @@ -9,4 +9,4 @@ - + diff --git a/src/core/siteplugins/components/module-index/module-index.ts b/src/core/siteplugins/components/module-index/module-index.ts index aeb23afb2..5c2e034e5 100644 --- a/src/core/siteplugins/components/module-index/module-index.ts +++ b/src/core/siteplugins/components/module-index/module-index.ts @@ -46,6 +46,7 @@ export class CoreSitePluginsModuleIndexComponent implements OnInit, OnDestroy, C prefetchStatusIcon: string; prefetchText: string; size: string; + jsData: any; // Data to pass to the component. protected isDestroyed = false; protected statusObserver; @@ -70,6 +71,10 @@ export class CoreSitePluginsModuleIndexComponent implements OnInit, OnDestroy, C cmid: this.module.id }; this.initResult = handler.initResult; + this.jsData = { + module: this.module, + courseId: this.courseId + }; } // Get the data for the context menu. diff --git a/src/core/siteplugins/components/plugin-content/plugin-content.ts b/src/core/siteplugins/components/plugin-content/plugin-content.ts index 60f8eca1e..ce8a59c6a 100644 --- a/src/core/siteplugins/components/plugin-content/plugin-content.ts +++ b/src/core/siteplugins/components/plugin-content/plugin-content.ts @@ -110,14 +110,21 @@ export class CoreSitePluginsPluginContentComponent implements OnInit, DoCheck { * @param {any} args New params. * @param {string} [component] New component. If not provided, current component * @param {string} [method] New method. If not provided, current method + * @param {any} [jsData] JS variables to pass to the new view so they can be used in the template or JS. + * If true is supplied instead of an object, all initial variables from current page will be copied. */ - openContent(title: string, args: any, component?: string, method?: string): void { + openContent(title: string, args: any, component?: string, method?: string, jsData?: any): void { + if (jsData === true) { + jsData = this.data; + } + this.navCtrl.push('CoreSitePluginsPluginPage', { title: title, component: component || this.component, method: method || this.method, args: args, - initResult: this.initResult + initResult: this.initResult, + jsData: jsData }); } @@ -144,12 +151,16 @@ export class CoreSitePluginsPluginContentComponent implements OnInit, DoCheck { * @param {any} args New params. * @param {string} [component] New component. If not provided, current component * @param {string} [method] New method. If not provided, current method + * @param {string} [jsData] JS variables to pass to the new view so they can be used in the template or JS. */ - updateContent(args: any, component?: string, method?: string): void { + updateContent(args: any, component?: string, method?: string, jsData?: any): void { this.component = component || this.component; this.method = method || this.method; this.args = args; this.dataLoaded = false; + if (jsData) { + Object.assign(this.data, jsData); + } this.fetchContent(); } diff --git a/src/core/siteplugins/directives/call-ws-new-content.ts b/src/core/siteplugins/directives/call-ws-new-content.ts index 9117b831e..08b4a213e 100644 --- a/src/core/siteplugins/directives/call-ws-new-content.ts +++ b/src/core/siteplugins/directives/call-ws-new-content.ts @@ -59,6 +59,8 @@ export class CoreSitePluginsCallWSNewContentDirective extends CoreSitePluginsCal @Input() title: string; // The title to display with the new content. Only if samePage=false. @Input() samePage: boolean | string; // Whether to display the content in same page or open a new one. Defaults to new page. @Input() useOtherData: any[]; // Whether to include other data in the args. @see CoreSitePluginsProvider.loadOtherDataInArgs. + @Input() jsData: any; // JS variables to pass to the new page so they can be used in the template or JS. + // If true is supplied instead of an object, all initial variables from current page will be copied. constructor(element: ElementRef, translate: TranslateService, domUtils: CoreDomUtilsProvider, sitePluginsProvider: CoreSitePluginsProvider, @Optional() parentContent: CoreSitePluginsPluginContentComponent, @@ -84,15 +86,21 @@ export class CoreSitePluginsCallWSNewContentDirective extends CoreSitePluginsCal if (this.utils.isTrueOrOne(this.samePage)) { // Update the parent content (if it exists). if (this.parentContent) { - this.parentContent.updateContent(args, this.component, this.method); + this.parentContent.updateContent(args, this.component, this.method, this.jsData); } } else { + let jsData = this.jsData; + if (jsData === true && this.parentContent) { + jsData = this.parentContent.data; + } + this.navCtrl.push('CoreSitePluginsPluginPage', { title: this.title, component: this.component || (this.parentContent && this.parentContent.component), method: this.method || (this.parentContent && this.parentContent.method), args: args, - initResult: this.parentContent && this.parentContent.initResult + initResult: this.parentContent && this.parentContent.initResult, + jsData: jsData }); } } diff --git a/src/core/siteplugins/directives/new-content.ts b/src/core/siteplugins/directives/new-content.ts index edb7d5f3e..3bbd9504d 100644 --- a/src/core/siteplugins/directives/new-content.ts +++ b/src/core/siteplugins/directives/new-content.ts @@ -51,6 +51,8 @@ export class CoreSitePluginsNewContentDirective implements OnInit { @Input() useOtherData: any[]; // Whether to include other data in the args. @see CoreSitePluginsProvider.loadOtherDataInArgs. @Input() form: string; // ID or name to identify a form. The form will be obtained from document.forms. // If supplied and form is found, the form data will be retrieved and sent to the new content. + @Input() jsData: any; // JS variables to pass to the new page so they can be used in the template or JS. + // If true is supplied instead of an object, all initial variables from current page will be copied. protected element: HTMLElement; @@ -81,15 +83,21 @@ export class CoreSitePluginsNewContentDirective implements OnInit { if (this.utils.isTrueOrOne(this.samePage)) { // Update the parent content (if it exists). if (this.parentContent) { - this.parentContent.updateContent(args, this.component, this.method); + this.parentContent.updateContent(args, this.component, this.method, this.jsData); } } else { + let jsData = this.jsData; + if (jsData === true) { + jsData = this.parentContent && this.parentContent.data || {}; + } + this.navCtrl.push('CoreSitePluginsPluginPage', { title: this.title, component: this.component || (this.parentContent && this.parentContent.component), method: this.method || (this.parentContent && this.parentContent.method), args: args, - initResult: this.parentContent && this.parentContent.initResult + initResult: this.parentContent && this.parentContent.initResult, + jsData: jsData }); } }); diff --git a/src/core/siteplugins/pages/plugin-page/plugin-page.html b/src/core/siteplugins/pages/plugin-page/plugin-page.html index f93ce1351..6d2933b40 100644 --- a/src/core/siteplugins/pages/plugin-page/plugin-page.html +++ b/src/core/siteplugins/pages/plugin-page/plugin-page.html @@ -11,5 +11,5 @@ - + diff --git a/src/core/siteplugins/pages/plugin-page/plugin-page.ts b/src/core/siteplugins/pages/plugin-page/plugin-page.ts index 32f5db12e..73e66b050 100644 --- a/src/core/siteplugins/pages/plugin-page/plugin-page.ts +++ b/src/core/siteplugins/pages/plugin-page/plugin-page.ts @@ -33,6 +33,7 @@ export class CoreSitePluginsPluginPage { method: string; args: any; initResult: any; + jsData: any; // JS variables to pass to the plugin so they can be used in the template or JS. constructor(params: NavParams) { this.title = params.get('title'); @@ -40,6 +41,7 @@ export class CoreSitePluginsPluginPage { this.method = params.get('method'); this.args = params.get('args'); this.initResult = params.get('initResult'); + this.jsData = params.get('jsData'); } /** From 4e29bca0a6844575e50faef1845843697d810f75 Mon Sep 17 00:00:00 2001 From: Dani Palou Date: Thu, 9 Aug 2018 12:46:57 +0200 Subject: [PATCH 2/2] MOBILE-2548 siteplugins: Pass otherdata to componentInit plugins --- .../classes/compile-init-component.ts | 15 +++++++++++-- .../assign-feedback/assign-feedback.ts | 21 +++++++++---------- .../assign-submission/assign-submission.ts | 19 ++++++++--------- .../question-behaviour/question-behaviour.ts | 21 +++++++++---------- .../components/question/question.ts | 21 +++++++++---------- .../quiz-access-rule/quiz-access-rule.ts | 19 ++++++++--------- .../user-profile-field/user-profile-field.ts | 19 ++++++++--------- .../workshop-assessment-strategy.ts | 19 ++++++++--------- src/core/siteplugins/providers/helper.ts | 1 + 9 files changed, 80 insertions(+), 75 deletions(-) diff --git a/src/core/siteplugins/classes/compile-init-component.ts b/src/core/siteplugins/classes/compile-init-component.ts index 9f9e7270f..96bf80965 100644 --- a/src/core/siteplugins/classes/compile-init-component.ts +++ b/src/core/siteplugins/classes/compile-init-component.ts @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreSitePluginsProvider } from '../providers/siteplugins'; /** @@ -20,10 +21,10 @@ import { CoreSitePluginsProvider } from '../providers/siteplugins'; */ export class CoreSitePluginsCompileInitComponent { content = ''; // Content. - jsData: any; // Data to pass to the component. + jsData: any = {}; // Data to pass to the component. protected handlerSchema: any; // The handler data. - constructor(protected sitePluginsProvider: CoreSitePluginsProvider) { } + constructor(protected sitePluginsProvider: CoreSitePluginsProvider, protected utils: CoreUtilsProvider) { } /** * Function called when the component is created. @@ -53,6 +54,16 @@ export class CoreSitePluginsCompileInitComponent { // Load first template. if (this.handlerSchema.methodTemplates && this.handlerSchema.methodTemplates.length) { this.content = handler.handlerSchema.methodTemplates[0].html; + this.jsData.CONTENT_TEMPLATES = this.utils.objectToKeyValueMap(handler.handlerSchema.methodTemplates, 'id', 'html'); + } + + // Pass data from the method result to the component. + if (this.handlerSchema.methodOtherdata) { + this.jsData.CONTENT_OTHERDATA = this.handlerSchema.methodOtherdata; + } + + if (this.handlerSchema.methodJSResult) { + this.jsData.CONTENT_JS_RESULT = this.handlerSchema.methodJSResult; } } } diff --git a/src/core/siteplugins/components/assign-feedback/assign-feedback.ts b/src/core/siteplugins/components/assign-feedback/assign-feedback.ts index 210b7f4a8..b8e1d8dcb 100644 --- a/src/core/siteplugins/components/assign-feedback/assign-feedback.ts +++ b/src/core/siteplugins/components/assign-feedback/assign-feedback.ts @@ -13,6 +13,7 @@ // limitations under the License. import { Component, OnInit, Input } from '@angular/core'; +import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreSitePluginsProvider } from '../../providers/siteplugins'; import { CoreSitePluginsCompileInitComponent } from '../../classes/compile-init-component'; @@ -32,8 +33,8 @@ export class CoreSitePluginsAssignFeedbackComponent extends CoreSitePluginsCompi @Input() canEdit: boolean; // Whether the user can edit. @Input() edit: boolean; // Whether the user is editing. - constructor(sitePluginsProvider: CoreSitePluginsProvider) { - super(sitePluginsProvider); + constructor(sitePluginsProvider: CoreSitePluginsProvider, utils: CoreUtilsProvider) { + super(sitePluginsProvider, utils); } /** @@ -41,15 +42,13 @@ export class CoreSitePluginsAssignFeedbackComponent extends CoreSitePluginsCompi */ ngOnInit(): void { // Pass the input and output data to the component. - this.jsData = { - assign: this.assign, - submission: this.submission, - plugin: this.plugin, - userId: this.userId, - configs: this.configs, - edit: this.edit, - canEdit: this.canEdit - }; + this.jsData.assign = this.assign; + this.jsData.submission = this.submission; + this.jsData.plugin = this.plugin; + this.jsData.userId = this.userId; + this.jsData.configs = this.configs; + this.jsData.edit = this.edit; + this.jsData.canEdit = this.canEdit; if (this.plugin) { this.getHandlerData('assignfeedback_' + this.plugin.type); diff --git a/src/core/siteplugins/components/assign-submission/assign-submission.ts b/src/core/siteplugins/components/assign-submission/assign-submission.ts index 991989d04..cd7af884e 100644 --- a/src/core/siteplugins/components/assign-submission/assign-submission.ts +++ b/src/core/siteplugins/components/assign-submission/assign-submission.ts @@ -13,6 +13,7 @@ // limitations under the License. import { Component, OnInit, Input } from '@angular/core'; +import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreSitePluginsProvider } from '../../providers/siteplugins'; import { CoreSitePluginsCompileInitComponent } from '../../classes/compile-init-component'; @@ -31,8 +32,8 @@ export class CoreSitePluginsAssignSubmissionComponent extends CoreSitePluginsCom @Input() edit: boolean; // Whether the user is editing. @Input() allowOffline: boolean; // Whether to allow offline. - constructor(sitePluginsProvider: CoreSitePluginsProvider) { - super(sitePluginsProvider); + constructor(sitePluginsProvider: CoreSitePluginsProvider, utils: CoreUtilsProvider) { + super(sitePluginsProvider, utils); } /** @@ -40,14 +41,12 @@ export class CoreSitePluginsAssignSubmissionComponent extends CoreSitePluginsCom */ ngOnInit(): void { // Pass the input and output data to the component. - this.jsData = { - assign: this.assign, - submission: this.submission, - plugin: this.plugin, - configs: this.configs, - edit: this.edit, - allowOffline: this.allowOffline - }; + this.jsData.assign = this.assign; + this.jsData.submission = this.submission; + this.jsData.plugin = this.plugin; + this.jsData.configs = this.configs; + this.jsData.edit = this.edit; + this.jsData.allowOffline = this.allowOffline; if (this.plugin) { this.getHandlerData('assignsubmission_' + this.plugin.type); diff --git a/src/core/siteplugins/components/question-behaviour/question-behaviour.ts b/src/core/siteplugins/components/question-behaviour/question-behaviour.ts index 0b8fba773..0f0bcee48 100644 --- a/src/core/siteplugins/components/question-behaviour/question-behaviour.ts +++ b/src/core/siteplugins/components/question-behaviour/question-behaviour.ts @@ -13,6 +13,7 @@ // limitations under the License. import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; +import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreSitePluginsProvider } from '../../providers/siteplugins'; import { CoreSitePluginsCompileInitComponent } from '../../classes/compile-init-component'; @@ -32,8 +33,8 @@ export class CoreSitePluginsQuestionBehaviourComponent extends CoreSitePluginsCo @Output() buttonClicked: EventEmitter; // Should emit an event when a behaviour button is clicked. @Output() onAbort: EventEmitter; // Should emit an event if the question should be aborted. - constructor(sitePluginsProvider: CoreSitePluginsProvider) { - super(sitePluginsProvider); + constructor(sitePluginsProvider: CoreSitePluginsProvider, utils: CoreUtilsProvider) { + super(sitePluginsProvider, utils); } /** @@ -41,15 +42,13 @@ export class CoreSitePluginsQuestionBehaviourComponent extends CoreSitePluginsCo */ ngOnInit(): void { // Pass the input and output data to the component. - this.jsData = { - question: this.question, - component: this.component, - componentId: this.componentId, - attemptId: this.attemptId, - offlineEnabled: this.offlineEnabled, - buttonClicked: this.buttonClicked, - onAbort: this.onAbort - }; + this.jsData.question = this.question; + this.jsData.component = this.component; + this.jsData.componentId = this.componentId; + this.jsData.attemptId = this.attemptId; + this.jsData.offlineEnabled = this.offlineEnabled; + this.jsData.buttonClicked = this.buttonClicked; + this.jsData.onAbort = this.onAbort; if (this.question) { this.getHandlerData('qbehaviour_' + this.question.preferredBehaviour); diff --git a/src/core/siteplugins/components/question/question.ts b/src/core/siteplugins/components/question/question.ts index f5352adef..012d23af9 100644 --- a/src/core/siteplugins/components/question/question.ts +++ b/src/core/siteplugins/components/question/question.ts @@ -13,6 +13,7 @@ // limitations under the License. import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; +import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreSitePluginsProvider } from '../../providers/siteplugins'; import { CoreSitePluginsCompileInitComponent } from '../../classes/compile-init-component'; @@ -32,8 +33,8 @@ export class CoreSitePluginsQuestionComponent extends CoreSitePluginsCompileInit @Output() buttonClicked: EventEmitter; // Should emit an event when a behaviour button is clicked. @Output() onAbort: EventEmitter; // Should emit an event if the question should be aborted. - constructor(sitePluginsProvider: CoreSitePluginsProvider) { - super(sitePluginsProvider); + constructor(sitePluginsProvider: CoreSitePluginsProvider, utils: CoreUtilsProvider) { + super(sitePluginsProvider, utils); } /** @@ -41,15 +42,13 @@ export class CoreSitePluginsQuestionComponent extends CoreSitePluginsCompileInit */ ngOnInit(): void { // Pass the input and output data to the component. - this.jsData = { - question: this.question, - component: this.component, - componentId: this.componentId, - attemptId: this.attemptId, - offlineEnabled: this.offlineEnabled, - buttonClicked: this.buttonClicked, - onAbort: this.onAbort - }; + this.jsData.question = this.question; + this.jsData.component = this.component; + this.jsData.componentId = this.componentId; + this.jsData.attemptId = this.attemptId; + this.jsData.offlineEnabled = this.offlineEnabled; + this.jsData.buttonClicked = this.buttonClicked; + this.jsData.onAbort = this.onAbort; if (this.question) { this.getHandlerData('qtype_' + this.question.type); diff --git a/src/core/siteplugins/components/quiz-access-rule/quiz-access-rule.ts b/src/core/siteplugins/components/quiz-access-rule/quiz-access-rule.ts index 661d5c008..caa3f382c 100644 --- a/src/core/siteplugins/components/quiz-access-rule/quiz-access-rule.ts +++ b/src/core/siteplugins/components/quiz-access-rule/quiz-access-rule.ts @@ -13,6 +13,7 @@ // limitations under the License. import { Component, OnInit, Input } from '@angular/core'; +import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreSitePluginsProvider } from '../../providers/siteplugins'; import { CoreSitePluginsCompileInitComponent } from '../../classes/compile-init-component'; import { FormGroup } from '@angular/forms'; @@ -32,8 +33,8 @@ export class CoreSitePluginsQuizAccessRuleComponent extends CoreSitePluginsCompi @Input() siteId: string; // Site ID. @Input() form: FormGroup; // Form where to add the form control. - constructor(sitePluginsProvider: CoreSitePluginsProvider) { - super(sitePluginsProvider); + constructor(sitePluginsProvider: CoreSitePluginsProvider, utils: CoreUtilsProvider) { + super(sitePluginsProvider, utils); } /** @@ -41,14 +42,12 @@ export class CoreSitePluginsQuizAccessRuleComponent extends CoreSitePluginsCompi */ ngOnInit(): void { // Pass the input and output data to the component. - this.jsData = { - rule: this.rule, - quiz: this.quiz, - attempt: this.attempt, - prefetch: this.prefetch, - siteId: this.siteId, - form: this.form - }; + this.jsData.rule = this.rule; + this.jsData.quiz = this.quiz; + this.jsData.attempt = this.attempt; + this.jsData.prefetch = this.prefetch; + this.jsData.siteId = this.siteId; + this.jsData.form = this.form; if (this.rule) { this.getHandlerData(this.rule); diff --git a/src/core/siteplugins/components/user-profile-field/user-profile-field.ts b/src/core/siteplugins/components/user-profile-field/user-profile-field.ts index 46e4ff7af..5e460eb5a 100644 --- a/src/core/siteplugins/components/user-profile-field/user-profile-field.ts +++ b/src/core/siteplugins/components/user-profile-field/user-profile-field.ts @@ -13,6 +13,7 @@ // limitations under the License. import { Component, OnInit, Input } from '@angular/core'; +import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreSitePluginsProvider } from '../../providers/siteplugins'; import { CoreSitePluginsCompileInitComponent } from '../../classes/compile-init-component'; import { FormGroup } from '@angular/forms'; @@ -32,8 +33,8 @@ export class CoreSitePluginsUserProfileFieldComponent extends CoreSitePluginsCom @Input() signup = false; // True if editing the field in signup. Defaults to false. @Input() registerAuth?: string; // Register auth method. E.g. 'email'. - constructor(sitePluginsProvider: CoreSitePluginsProvider) { - super(sitePluginsProvider); + constructor(sitePluginsProvider: CoreSitePluginsProvider, utils: CoreUtilsProvider) { + super(sitePluginsProvider, utils); } /** @@ -42,14 +43,12 @@ export class CoreSitePluginsUserProfileFieldComponent extends CoreSitePluginsCom ngOnInit(): void { // Pass the input data to the component. - this.jsData = { - field: this.field, - signup: this.signup, - edit: this.edit, - disabled: this.disabled, - form: this.form, - registerAuth: this.registerAuth - }; + this.jsData.field = this.field; + this.jsData.signup = this.signup; + this.jsData.edit = this.edit; + this.jsData.disabled = this.disabled; + this.jsData.form = this.form; + this.jsData.registerAuth = this.registerAuth; if (this.field) { this.getHandlerData('profilefield_' + (this.field.type || this.field.datatype)); diff --git a/src/core/siteplugins/components/workshop-assessment-strategy/workshop-assessment-strategy.ts b/src/core/siteplugins/components/workshop-assessment-strategy/workshop-assessment-strategy.ts index ef72738d1..3da761007 100644 --- a/src/core/siteplugins/components/workshop-assessment-strategy/workshop-assessment-strategy.ts +++ b/src/core/siteplugins/components/workshop-assessment-strategy/workshop-assessment-strategy.ts @@ -13,6 +13,7 @@ // limitations under the License. import { Component, OnInit, Input } from '@angular/core'; +import { CoreUtilsProvider } from '@providers/utils/utils'; import { CoreSitePluginsProvider } from '../../providers/siteplugins'; import { CoreSitePluginsCompileInitComponent } from '../../classes/compile-init-component'; @@ -31,8 +32,8 @@ export class CoreSitePluginsWorkshopAssessmentStrategyComponent extends CoreSite @Input() fieldErrors: any; @Input() strategy: string; - constructor(sitePluginsProvider: CoreSitePluginsProvider) { - super(sitePluginsProvider); + constructor(sitePluginsProvider: CoreSitePluginsProvider, utils: CoreUtilsProvider) { + super(sitePluginsProvider, utils); } /** @@ -40,14 +41,12 @@ export class CoreSitePluginsWorkshopAssessmentStrategyComponent extends CoreSite */ ngOnInit(): void { // Pass the input and output data to the component. - this.jsData = { - workshopId: this.workshopId, - assessment: this.assessment, - edit: this.edit, - selectedValues: this.selectedValues, - fieldErrors: this.fieldErrors, - strategy: this.strategy - }; + this.jsData.workshopId = this.workshopId; + this.jsData.assessment = this.assessment; + this.jsData.edit = this.edit; + this.jsData.selectedValues = this.selectedValues; + this.jsData.fieldErrors = this.fieldErrors; + this.jsData.strategy = this.strategy; this.getHandlerData('workshopform_' + this.strategy); } diff --git a/src/core/siteplugins/providers/helper.ts b/src/core/siteplugins/providers/helper.ts index 7aa65b72d..26124d2b6 100644 --- a/src/core/siteplugins/providers/helper.ts +++ b/src/core/siteplugins/providers/helper.ts @@ -547,6 +547,7 @@ export class CoreSitePluginsHelperProvider { // Store in handlerSchema some data required by the component. handlerSchema.methodTemplates = result.templates; handlerSchema.methodJSResult = result.jsResult; + handlerSchema.methodOtherdata = result.otherdata; if (result && result.jsResult) { // Override default handler functions with the result of the method JS.