Skip to content

Commit

Permalink
feat: Implement a tick box for organizers/admin to override Email
Browse files Browse the repository at this point in the history
  • Loading branch information
shreyanshdwivedi committed Aug 3, 2019
1 parent cf1aba3 commit fa289d5
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 2 deletions.
3 changes: 3 additions & 0 deletions app/controllers/events/view/sessions/create.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ export default Controller.extend({
await this.get('model.session').save();
if (this.addNewSpeaker) {
let newSpeaker = this.get('model.speaker');
if (newSpeaker.isEmailOverridden) {
newSpeaker.set('email', this.authManager.currentUser.email);
}
newSpeaker.save()
.then(() => {
newSpeaker.sessions.pushObject(_this.get('model.session'));
Expand Down
3 changes: 3 additions & 0 deletions app/controllers/events/view/sessions/edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ export default Controller.extend({
let _this = this;
if (this.addNewSpeaker) {
let newSpeaker = this.get('model.speaker');
if (newSpeaker.isEmailOverridden) {
newSpeaker.set('email', this.authManager.currentUser.email);
}
newSpeaker.save()
.then(() => {
newSpeaker.sessions.pushObject(_this.get('model.session'));
Expand Down
6 changes: 5 additions & 1 deletion app/controllers/events/view/speakers/create.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ export default Controller.extend({
if (!sessionDetails) {
await this.get('model.session').save();
}
await this.get('model.speaker').save();
let newSpeaker = this.get('model.speaker');
if (newSpeaker.isEmailOverridden) {
newSpeaker.set('email', this.authManager.currentUser.email);
}
await newSpeaker.save();
if (!sessionDetails) {
this.get('model.speaker.sessions').pushObject(this.get('model.session'));
await this.get('model.session').save();
Expand Down
6 changes: 5 additions & 1 deletion app/controllers/events/view/speakers/edit.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ export default Controller.extend({
actions: {
save() {
this.set('isLoading', true);
this.get('model.speaker').save()
let speaker = this.get('model.speaker');
if (speaker.isEmailOverridden) {
speaker.set('email', this.authManager.currentUser.email);
}
speaker.save()
.then(() => {
this.notify.success(this.l10n.t('Speaker details have been saved'));
this.transitionToRoute('events.view.speakers');
Expand Down
1 change: 1 addition & 0 deletions app/models/speaker.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export default ModelBase.extend({
linkedin : attr('string'),
organisation : attr('string'),
isFeatured : attr('boolean', { default: false }),
isEmailOverridden : attr('boolean', { default: false }),
position : attr('string'),
country : attr('string'),
city : attr('string'),
Expand Down
14 changes: 14 additions & 0 deletions app/templates/components/forms/session-speaker-form.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,13 @@
{{#if field.isLongText}}
{{widgets/forms/rich-text-editor value=(mut (get data.speaker field.fieldIdentifier))
textareaId=(if field.isRequired (concat 'speaker_' field.fieldIdentifier '_required') (concat 'speaker_' field.fieldIdentifier))}}
{{else if (eq field.fieldIdentifier 'email')}}
{{ui-checkbox label=(t 'Do not require email for this speaker.') checked=data.speaker.isEmailOverridden
onChange=(action (mut data.speaker.isEmailOverridden))}}
{{#if (not data.speaker.isEmailOverridden)}}
{{input type=field.type value=(mut (get data.speaker field.fieldIdentifier))
id=(if field.isRequired (concat 'speaker_' field.fieldIdentifier '_required') (concat 'speaker_' field.fieldIdentifier))}}
{{/if}}
{{else}}
{{input type=field.type value=(mut (get data.speaker field.fieldIdentifier)) id=(if field.isRequired (concat 'speaker_' field.fieldIdentifier '_required') (concat 'speaker_' field.fieldIdentifier))}}
{{/if}}
Expand Down Expand Up @@ -185,6 +192,13 @@
{{#if field.isLongText}}
{{widgets/forms/rich-text-editor value=(mut (get data.speaker field.fieldIdentifier))
textareaId=(if field.isRequired (concat 'speaker_' field.fieldIdentifier '_required') (concat 'speaker_' field.fieldIdentifier))}}
{{else if (eq field.fieldIdentifier 'email')}}
{{ui-checkbox label=(t 'Do not require email for this speaker.') checked=data.speaker.isEmailOverridden
onChange=(action (mut data.speaker.isEmailOverridden))}}
{{#if (not data.speaker.isEmailOverridden)}}
{{input type=field.type value=(mut (get data.speaker field.fieldIdentifier))
id=(if field.isRequired (concat 'speaker_' field.fieldIdentifier '_required') (concat 'speaker_' field.fieldIdentifier))}}
{{/if}}
{{else}}
{{#if field.isUrlField}}
{{widgets/forms/link-input
Expand Down

0 comments on commit fa289d5

Please sign in to comment.