From f0e50b8e614f202f4d7e53c253582ae6b5e9ae6e Mon Sep 17 00:00:00 2001 From: iamareebjamal Date: Mon, 13 Jul 2020 06:29:36 +0530 Subject: [PATCH] feat: Add speaker and session custom form input --- app/components/forms/orders/order-form.js | 1 - app/components/forms/session-speaker-form.js | 20 ++++++++++++++++++- app/models/attendee.js | 8 +++++++- app/models/session.js | 7 ++++++- app/models/speaker.js | 8 +++++++- .../components/forms/session-speaker-form.hbs | 12 +++++------ 6 files changed, 45 insertions(+), 11 deletions(-) diff --git a/app/components/forms/orders/order-form.js b/app/components/forms/orders/order-form.js index 22e41250bd0..475acdd34c7 100644 --- a/app/components/forms/orders/order-form.js +++ b/app/components/forms/orders/order-form.js @@ -27,7 +27,6 @@ export default Component.extend(FormMixin, { attendee.set('firstname', ''); attendee.set('lastname', ''); attendee.set('email', ''); - attendee.set('complexFieldValues', {}); }); return this.data.attendees; }), diff --git a/app/components/forms/session-speaker-form.js b/app/components/forms/session-speaker-form.js index fb61327bf21..762ba472b4c 100644 --- a/app/components/forms/session-speaker-form.js +++ b/app/components/forms/session-speaker-form.js @@ -14,7 +14,7 @@ export default Component.extend(FormMixin, { newSessionSelected : false, getValidationRules() { - return { + const validationRules = { inline : true, delay : false, on : 'blur', @@ -484,6 +484,24 @@ export default Component.extend(FormMixin, { } } }; + + const addCustomFieldRules = form => { + this.allFields[form].filter(field => field.isComplex && field.isRequired).forEach(field => { + validationRules.fields[`${form}_${field.fieldIdentifier}_required`] = { + rules: [ + { + type : 'empty', + prompt : this.l10n.t('Please enter ' + field.name) + } + ] + }; + }); + }; + + addCustomFieldRules('speaker'); + addCustomFieldRules('session'); + + return validationRules; }, countries: orderBy(countries, 'name'), diff --git a/app/models/attendee.js b/app/models/attendee.js index 8905ecc6d43..578d33c4483 100644 --- a/app/models/attendee.js +++ b/app/models/attendee.js @@ -42,5 +42,11 @@ export default ModelBase.extend({ event : belongsTo('event'), order : belongsTo('order'), ticket : belongsTo('ticket'), - user : belongsTo('user') + user : belongsTo('user'), + + ready() { + if (!this.complexFieldValues) { + this.complexFieldValues = {}; + } + } }); diff --git a/app/models/session.js b/app/models/session.js index dbf436af58d..270df53f82f 100644 --- a/app/models/session.js +++ b/app/models/session.js @@ -57,7 +57,12 @@ export default ModelBase.extend({ segmentedLinkSlidesUrl : computedSegmentedLink.bind(this)('slidesUrl'), segmentedLinkAudioUrl : computedSegmentedLink.bind(this)('audioUrl'), segmentedLinkVideoUrl : computedSegmentedLink.bind(this)('videoUrl'), - segmentedLinkSignUpUrl : computedSegmentedLink.bind(this)('signUpUrl') + segmentedLinkSignUpUrl : computedSegmentedLink.bind(this)('signUpUrl'), + ready() { + if (!this.complexFieldValues) { + this.complexFieldValues = {}; + } + } }); diff --git a/app/models/speaker.js b/app/models/speaker.js index ce4b17979ad..6bdd0820bdf 100644 --- a/app/models/speaker.js +++ b/app/models/speaker.js @@ -49,6 +49,12 @@ export default ModelBase.extend({ user : belongsTo('user'), event : belongsTo('event'), - sessions : hasMany('session') + sessions : hasMany('session'), + + ready() { + if (!this.complexFieldValues) { + this.complexFieldValues = {}; + } + } }); diff --git a/app/templates/components/forms/session-speaker-form.hbs b/app/templates/components/forms/session-speaker-form.hbs index 6868ae1c98b..a9f7c0cc461 100644 --- a/app/templates/components/forms/session-speaker-form.hbs +++ b/app/templates/components/forms/session-speaker-form.hbs @@ -24,7 +24,7 @@ {{else}} {{/if}} {{/if}} @@ -153,7 +153,7 @@ {{#if (not this.data.speaker.isEmailOverridden)}} {{/if}} {{else}} @@ -166,7 +166,7 @@ {{else}} {{/if}} {{/if}} @@ -268,7 +268,7 @@ {{#if (not this.data.speaker.isEmailOverridden)}} {{/if}} {{else}} @@ -281,7 +281,7 @@ {{else}} {{/if}} {{/if}} @@ -412,7 +412,7 @@ {{else}} {{/if}} {{/if}}