Skip to content

Commit 2e02ea4

Browse files
feat: Add speaker and session custom form input (#4549)
1 parent d247456 commit 2e02ea4

File tree

6 files changed

+45
-11
lines changed

6 files changed

+45
-11
lines changed

app/components/forms/orders/order-form.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ export default Component.extend(FormMixin, {
2727
attendee.set('firstname', '');
2828
attendee.set('lastname', '');
2929
attendee.set('email', '');
30-
attendee.set('complexFieldValues', {});
3130
});
3231
return this.data.attendees;
3332
}),

app/components/forms/session-speaker-form.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export default Component.extend(FormMixin, {
1414
newSessionSelected : false,
1515

1616
getValidationRules() {
17-
return {
17+
const validationRules = {
1818
inline : true,
1919
delay : false,
2020
on : 'blur',
@@ -484,6 +484,24 @@ export default Component.extend(FormMixin, {
484484
}
485485
}
486486
};
487+
488+
const addCustomFieldRules = form => {
489+
this.allFields[form].filter(field => field.isComplex && field.isRequired).forEach(field => {
490+
validationRules.fields[`${form}_${field.fieldIdentifier}_required`] = {
491+
rules: [
492+
{
493+
type : 'empty',
494+
prompt : this.l10n.t('Please enter ' + field.name)
495+
}
496+
]
497+
};
498+
});
499+
};
500+
501+
addCustomFieldRules('speaker');
502+
addCustomFieldRules('session');
503+
504+
return validationRules;
487505
},
488506

489507
countries: orderBy(countries, 'name'),

app/models/attendee.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,11 @@ export default ModelBase.extend({
4242
event : belongsTo('event'),
4343
order : belongsTo('order'),
4444
ticket : belongsTo('ticket'),
45-
user : belongsTo('user')
45+
user : belongsTo('user'),
46+
47+
ready() {
48+
if (!this.complexFieldValues) {
49+
this.complexFieldValues = {};
50+
}
51+
}
4652
});

app/models/session.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,12 @@ export default ModelBase.extend({
5757
segmentedLinkSlidesUrl : computedSegmentedLink.bind(this)('slidesUrl'),
5858
segmentedLinkAudioUrl : computedSegmentedLink.bind(this)('audioUrl'),
5959
segmentedLinkVideoUrl : computedSegmentedLink.bind(this)('videoUrl'),
60-
segmentedLinkSignUpUrl : computedSegmentedLink.bind(this)('signUpUrl')
60+
segmentedLinkSignUpUrl : computedSegmentedLink.bind(this)('signUpUrl'),
6161

62+
ready() {
63+
if (!this.complexFieldValues) {
64+
this.complexFieldValues = {};
65+
}
66+
}
6267

6368
});

app/models/speaker.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ export default ModelBase.extend({
4949

5050
user : belongsTo('user'),
5151
event : belongsTo('event'),
52-
sessions : hasMany('session')
52+
sessions : hasMany('session'),
53+
54+
ready() {
55+
if (!this.complexFieldValues) {
56+
this.complexFieldValues = {};
57+
}
58+
}
5359

5460
});

app/templates/components/forms/session-speaker-form.hbs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
{{else}}
2525
<Input
2626
@type={{field.type}}
27-
@value={{mut (get this.data.session field.fieldIdentifier)}}
27+
@value={{mut (get this.data.session field.identifierPath)}}
2828
@id={{if field.isRequired (concat "session_" field.fieldIdentifier "_required") (concat "session_" field.fieldIdentifier)}} />
2929
{{/if}}
3030
{{/if}}
@@ -153,7 +153,7 @@
153153
{{#if (not this.data.speaker.isEmailOverridden)}}
154154
<Input
155155
@type={{field.type}}
156-
@value={{mut (get this.data.speaker field.fieldIdentifier)}}
156+
@value={{mut (get this.data.speaker field.identifierPath)}}
157157
@id={{if field.isRequired (concat "speaker_" field.fieldIdentifier "_required") (concat "speaker_" field.fieldIdentifier)}} />
158158
{{/if}}
159159
{{else}}
@@ -166,7 +166,7 @@
166166
{{else}}
167167
<Input
168168
@type={{field.type}}
169-
@value={{mut (get this.data.speaker field.fieldIdentifier)}}
169+
@value={{mut (get this.data.speaker field.identifierPath)}}
170170
@id={{if field.isRequired (concat "speaker_" field.fieldIdentifier "_required") (concat "speaker_" field.fieldIdentifier)}} />
171171
{{/if}}
172172
{{/if}}
@@ -268,7 +268,7 @@
268268
{{#if (not this.data.speaker.isEmailOverridden)}}
269269
<Input
270270
@type={{field.type}}
271-
@value={{mut (get this.data.speaker field.fieldIdentifier)}}
271+
@value={{mut (get this.data.speaker field.identifierPath)}}
272272
@id={{if field.isRequired (concat "speaker_" field.fieldIdentifier "_required") (concat "speaker_" field.fieldIdentifier)}} />
273273
{{/if}}
274274
{{else}}
@@ -281,7 +281,7 @@
281281
{{else}}
282282
<Input
283283
@type={{field.type}}
284-
@value={{mut (get this.data.speaker field.fieldIdentifier)}}
284+
@value={{mut (get this.data.speaker field.identifierPath)}}
285285
@id={{if field.isRequired (concat "speaker_" field.fieldIdentifier "_required") (concat "speaker_" field.fieldIdentifier)}} />
286286
{{/if}}
287287
{{/if}}
@@ -412,7 +412,7 @@
412412
{{else}}
413413
<Input
414414
@type={{field.type}}
415-
@value={{mut (get this.data.session field.fieldIdentifier)}}
415+
@value={{mut (get this.data.session field.identifierPath)}}
416416
@id={{if field.isRequired (concat "session_" field.fieldIdentifier "_required") (concat "session_" field.fieldIdentifier)}} />
417417
{{/if}}
418418
{{/if}}

0 commit comments

Comments
 (0)