Skip to content

Commit fd96cb5

Browse files
authored
feat: add custom form widget (#3501)
1 parent ce9872f commit fd96cb5

File tree

4 files changed

+57
-8
lines changed

4 files changed

+57
-8
lines changed

app/components/forms/wizard/sessions-speakers-step.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,10 @@ export default Component.extend(EventWizardMixin, FormMixin, {
128128
return this.get('data.event.microlocations').filterBy('isDeleted', false);
129129
}),
130130

131+
complexCustomForms: computed('[email protected]', function() {
132+
return this.data.customForms.filterBy('isComplex', true);
133+
}),
134+
131135
fieldChanged(field) {
132136
if (!field.get('isIncluded')) {
133137
field.set('isRequired', false);
@@ -174,6 +178,12 @@ export default Component.extend(EventWizardMixin, FormMixin, {
174178
break;
175179
}
176180
},
181+
addCustomField() {
182+
this.data.customForms.addObject(this.store.createRecord('customForm', {
183+
event : this.data.event,
184+
isComplex : true
185+
}));
186+
},
177187
onChange() {
178188
this.onValid(() => {});
179189
}

app/models/custom-form.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,15 @@ export default ModelBase.extend({
8484

8585
name: computed('fieldIdentifier', 'form', function() {
8686
let name = this.fieldIdentifier;
87-
if (this.form === 'session') {
88-
name = this.get(`session.${name}`);
89-
} else if (this.form === 'speaker') {
90-
name = this.get(`speaker.${name}`);
91-
} else {
92-
name = this.get(`attendee.${name}`);
87+
if (!this.isComplex) {
88+
if (this.form === 'session') {
89+
name = this.get(`session.${name}`);
90+
} else if (this.form === 'speaker') {
91+
name = this.get(`speaker.${name}`);
92+
} else {
93+
name = this.get(`attendee.${name}`);
94+
}
9395
}
94-
9596
return name;
9697
}),
9798

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,6 @@
362362

363363

364364

365-
366365
<button type="submit" class="ui teal submit button update-changes">
367366
{{t 'Submit'}}
368367
</button>

app/templates/components/forms/wizard/sessions-speakers-step.hbs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,45 @@
317317
<div class="spacer-50"></div>
318318
{{/if}}
319319

320+
{{#each complexCustomForms as |form|}}
321+
{{form.isComplex}}
322+
<div class="fields">
323+
<div class="two wide field">
324+
<label>{{t 'Name'}}</label>
325+
{{input type='text' value=form.fieldIdentifier name='name'}}
326+
</div>
327+
<div class = "two wide field">
328+
<label>{{t 'Form'}}</label>
329+
{{input type='text' value=form.form name='form'}}
330+
</div>
331+
<div class = "two wide field">
332+
<label>{{t 'Type'}}</label>
333+
{{input type='text' value=form.type name='type'}}
334+
</div>
335+
<div class="five wide field">
336+
<label class="required">{{t 'Description'}}</label>
337+
{{input type='text' value=form.description name='desciption'}}
338+
</div>
339+
<div class="five wide field">
340+
<label class="required">{{t 'Required'}}</label>
341+
{{ui-checkbox class='slider'
342+
checked=form.isRequired
343+
onChange=(action (mut form.isRequired))
344+
label=(t 'Required')}}
345+
</div>
346+
<div class="five wide field">
347+
<label class="required">{{t 'Included'}}</label>
348+
{{ui-checkbox class='slider'
349+
checked=form.isIncluded
350+
onChange=(action (mut form.isIncluded))
351+
label=(t 'Included')}}
352+
</div>
353+
</div>
354+
{{/each}}
355+
356+
<button type="button" class="ui primary {{if device.isMobile 'small'}} button" {{action 'addCustomField'}}>{{t 'Add another custom field'}}</button>
357+
358+
320359
<div class="ui fields buttons {{if device.isMobile 'mini three' 'right floated large'}}">
321360
<button class="ui three field left labeled icon button {{if isLoading 'disabled'}}" type="button" {{action 'move' 'backwards'}}>
322361
{{t 'Previous'}}

0 commit comments

Comments
 (0)