Skip to content

Commit 9dd0640

Browse files
authored
Merge branch 'development' into publishEvent
2 parents c06e208 + 490c3ca commit 9dd0640

File tree

18 files changed

+196
-18
lines changed

18 files changed

+196
-18
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { compulsoryProtocolValidUrlPattern, protocolLessValidUrlPattern, validTw
66
validGithubProfileUrlPattern, validLinkedinProfileUrlPattern, validPhoneNumber } from 'open-event-frontend/utils/validators';
77
import { countries } from 'open-event-frontend/utils/dictionary/demography';
88
import { languages } from 'open-event-frontend/utils/dictionary/languages';
9+
import { genders } from 'open-event-frontend/utils/dictionary/genders';
910

1011
export default Component.extend(FormMixin, {
1112

@@ -484,6 +485,8 @@ export default Component.extend(FormMixin, {
484485

485486
languages: orderBy(languages, 'name'),
486487

488+
genders: orderBy(genders, 'name'),
489+
487490
allFields: computed('fields', function() {
488491
return groupBy(this.get('fields').toArray(), field => field.get('form'));
489492
}),
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import ModalBase from 'open-event-frontend/components/modals/modal-base';
2+
3+
export default ModalBase.extend({
4+
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { computed } from '@ember/object';
2+
import ModalBase from 'open-event-frontend/components/modals/modal-base';
3+
4+
export default ModalBase.extend({
5+
isSmall : true,
6+
confirmEmail : '',
7+
isEmailDifferent : computed('confirmEmail', function() {
8+
return this.get('userEmail') ? this.get('confirmEmail') !== this.get('userEmail') : true;
9+
})
10+
});
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import { computed } from '@ember/object';
2+
import Component from '@ember/component';
3+
4+
export default Component.extend({
5+
6+
isUserDeletable: computed('data.events', 'data.orders', function() {
7+
if (this.get('data.events').length || this.get('data.orders').length) {
8+
return false;
9+
}
10+
return true;
11+
}),
12+
13+
actions: {
14+
openDeleteUserModal(id, email) {
15+
this.setProperties({
16+
'isUserDeleteModalOpen' : true,
17+
'confirmEmail' : '',
18+
'userEmail' : email,
19+
'userId' : id
20+
});
21+
},
22+
openConfirmDeleteUserModal() {
23+
this.setProperties({
24+
'isUserDeleteModalOpen' : false,
25+
'confirmEmail' : '',
26+
'isConfirmUserDeleteModalOpen' : true,
27+
'checked' : false
28+
});
29+
},
30+
deleteUser(user) {
31+
this.set('isLoading', true);
32+
user.destroyRecord()
33+
.then(() => {
34+
this.get('authManager').logout();
35+
this.get('routing').transitionTo('index');
36+
this.notify.success(this.get('l10n').t('Your account has been deleted successfully.'));
37+
})
38+
.catch(() => {
39+
this.notify.error(this.get('l10n').t('An unexpected error has occurred.'));
40+
})
41+
.finally(() => {
42+
this.setProperties({
43+
'isLoading' : false,
44+
'isConfirmUserDeleteModalOpen' : false,
45+
'checked' : false
46+
});
47+
});
48+
}
49+
}
50+
});

app/controllers/orders/view.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,26 @@ export default Controller.extend({
88
downloadInvoice() {
99
const selector = '.print';
1010
const options = {
11-
header: 'Order Invoice'
11+
header : 'Order Invoice',
12+
printDelay : 800
1213
};
1314
this.get('printThis').print(selector, options);
1415
}
1516
},
1617

17-
downloadTickets() {
18+
downloadTickets(eventName, orderId) {
1819
this.set('isLoading', true);
1920
this.get('loader')
2021
.downloadFile(`/tickets/${this.get('model.order.identifier')}`)
2122
.then(res => {
2223
const anchor = document.createElement('a');
2324
anchor.style.display = 'none';
2425
anchor.href = URL.createObjectURL(new Blob([res], { type: 'application/pdf' }));
25-
anchor.download = 'Tickets.pdf';
26+
anchor.download = `${eventName}-Tickets-${orderId}.pdf`;
27+
document.body.appendChild(anchor);
2628
anchor.click();
2729
this.get('notify').success(this.get('l10n').t('Here are your tickets'));
30+
document.body.removeChild(anchor);
2831
})
2932
.catch(e => {
3033
console.warn(e);
@@ -34,5 +37,4 @@ export default Controller.extend({
3437
this.set('isLoading', false);
3538
});
3639
}
37-
3840
});

app/mixins/custom-form.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ export default Mixin.create(MutableArray, {
196196
this.store.createRecord('custom-form', {
197197
fieldIdentifier : 'gender',
198198
form : 'speaker',
199-
type : 'text',
199+
type : 'select',
200200
isRequired : false,
201201
isIncluded : false,
202202
event : parent

app/models/custom-form.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ export default ModelBase.extend({
8989

9090
isLongText: computed('type', function() {
9191
return this.get('type') === 'text'
92-
&& (['shortBiography', 'longBiography', 'longAbstract', 'shortAbstract', 'comments'].includes(this.get('fieldIdentifier')));
92+
&& (['shortBiography', 'longBiography', 'longAbstract', 'shortAbstract', 'comments', 'speakingExperience'].includes(this.get('fieldIdentifier')));
9393
}),
9494

9595
isIncludedObserver: observer('isIncluded', function() {

app/router.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ router.map(function() {
108108
this.route('password');
109109
this.route('email-preferences');
110110
this.route('applications');
111+
this.route('danger-zone');
111112
});
112113
this.route('explore');
113114
this.route('my-tickets', function() {

app/routes/settings/danger-zone.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import Route from '@ember/routing/route';
2+
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
3+
4+
export default Route.extend(AuthenticatedRouteMixin, {
5+
titleToken() {
6+
return this.get('l10n').t('Danger Zone');
7+
},
8+
async model() {
9+
10+
let user = this.get('authManager.currentUser');
11+
const events = await user.query('events', {});
12+
const orders = await user.query('orders', {});
13+
14+
return {
15+
user,
16+
events,
17+
orders
18+
};
19+
}
20+
});

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,18 @@
213213
{{/each}}
214214
</div>
215215
{{/ui-dropdown}}
216+
{{else if (eq field.fieldIdentifier 'gender')}}
217+
{{#ui-dropdown class='search selection' selected=data.speaker.gender onChange=(action (mut data.speaker.gender)) as |execute mapper|}}
218+
<i class="dropdown icon"></i>
219+
<div class="default text">{{t 'Select your gender'}}</div>
220+
<div class="menu">
221+
{{#each genders as |gender|}}
222+
<div class="item" data-value="{{map-value mapper gender.name}}">
223+
{{gender.name}}
224+
</div>
225+
{{/each}}
226+
</div>
227+
{{/ui-dropdown}}
216228
{{else}}
217229
{{#ui-dropdown class='search selection' onChange=(action (mut (get data.speaker field.fieldIdentifier))) as |execute mapper|}}
218230
<i class="dropdown icon"></i>

0 commit comments

Comments
 (0)