Skip to content

Commit d767ad8

Browse files
Merge pull request #4057 from fossasia/development
chore: Release v1.11
2 parents 0a82d66 + 747f7aa commit d767ad8

File tree

23 files changed

+405
-356
lines changed

23 files changed

+405
-356
lines changed

app/components/forms/wizard/basic-details-step.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { inject as service } from '@ember/service';
1212
import EventWizardMixin from 'open-event-frontend/mixins/event-wizard';
1313
import { protocolLessValidUrlPattern } from 'open-event-frontend/utils/validators';
1414
import ENV from 'open-event-frontend/config/environment';
15+
import $ from 'jquery';
1516

1617
export default Component.extend(FormMixin, EventWizardMixin, {
1718

@@ -128,6 +129,12 @@ export default Component.extend(FormMixin, EventWizardMixin, {
128129

129130
// TODO: Removing the Event Time Validations due to the weird and buggy behaviour. Will be restored once a perfect solution is found. Please check issue: https://github.com/fossasia/open-event-frontend/issues/3667
130131
getValidationRules() {
132+
$.fn.form.settings.rules.checkMaxMinPrice = () => {
133+
return $('.ui.form').form('get value', 'min_price') <= $('.ui.form').form('get value', 'max_price');
134+
};
135+
$.fn.form.settings.rules.checkMaxMinOrder = () => {
136+
return $('.ui.form').form('get value', 'ticket_min_order') <= $('.ui.form').form('get value', 'ticket_max_order');
137+
};
131138

132139
let validationRules = {
133140
inline : true,
@@ -257,6 +264,10 @@ export default Component.extend(FormMixin, EventWizardMixin, {
257264
{
258265
type : 'number',
259266
prompt : this.l10n.t('Invalid number')
267+
},
268+
{
269+
type : 'checkMaxMinOrder',
270+
prompt : this.l10n.t('Minimum order should not be greater than maximum')
260271
}
261272
]
262273
},
@@ -274,6 +285,10 @@ export default Component.extend(FormMixin, EventWizardMixin, {
274285
{
275286
type : 'integer[1..]',
276287
prompt : this.l10n.t('Maximum tickets per order should be greater than 0')
288+
},
289+
{
290+
type : 'checkMaxMinOrder',
291+
prompt : this.l10n.t('Maximum order should not be less than minimum')
277292
}
278293
]
279294
},
@@ -287,6 +302,10 @@ export default Component.extend(FormMixin, EventWizardMixin, {
287302
{
288303
type : 'integer[1..]',
289304
prompt : this.l10n.t('Minimum price needs to be greater than zero')
305+
},
306+
{
307+
type : 'checkMaxMinPrice',
308+
prompt : this.l10n.t('Minimum price should not be greater than maximum')
290309
}
291310
]
292311
},
@@ -300,6 +319,10 @@ export default Component.extend(FormMixin, EventWizardMixin, {
300319
{
301320
type : 'integer[1..]',
302321
prompt : this.l10n.t('Maximum price needs to be greater than zero')
322+
},
323+
{
324+
type : 'checkMaxMinPrice',
325+
prompt : this.l10n.t('Maximum price should not be less than minimum')
303326
}
304327
]
305328
},

app/components/public/side-menu.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,23 @@ export default Component.extend({
99
this.set('shouldShowCallforSpeakers',
1010
speakersCall && speakersCall.announcement && (speakersCall.privacy === 'public'));
1111
},
12+
actions: {
13+
scrollToTarget() {
14+
document.querySelectorAll('.scroll').forEach(anchor => {
15+
anchor.addEventListener('click', function(e) {
16+
e.preventDefault();
17+
document.querySelector(this.getAttribute('href')).scrollIntoView({
18+
behavior: 'smooth'
19+
});
20+
21+
document.querySelectorAll('.scroll').forEach(node => {
22+
node.classList.remove('active');
23+
});
24+
e.target.classList.add('active');
25+
});
26+
});
27+
}
28+
},
1229
isSchedulePublished: computed('event.schedulePublishedOn', function() {
1330
return this.get('event.schedulePublishedOn') && this.get('event.schedulePublishedOn').toISOString() !== moment(0).toISOString();
1431
})

app/controllers/admin/users/view/events/list.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ export default class extends Controller.extend(EmberTableControllerMixin) {
1212
return [
1313
{
1414
name : 'Name',
15-
valuePath : 'id',
16-
extraValuePaths : ['logoUrl', 'name', 'identifier', 'deletedAt'],
15+
valuePath : 'name',
16+
extraValuePaths : ['logoUrl', 'identifier', 'deletedAt'],
1717
isSortable : true,
1818
headerComponent : 'tables/headers/sort',
1919
cellComponent : 'ui-table/cell/cell-event',

app/controllers/events/view.js

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@ import { isEmpty } from '@ember/utils';
33
import { action } from '@ember/object';
44

55
export default class extends Controller {
6-
@action
7-
openDeleteEventModal() {
8-
this.set('isEventDeleteModalOpen', true);
9-
}
10-
116
@action
127
togglePublishState() {
138
if (isEmpty(this.model.locationName)) {
@@ -46,29 +41,6 @@ export default class extends Controller {
4641
});
4742
}
4843

49-
@action
50-
deleteEvent() {
51-
this.set('isLoading', true);
52-
this.model.destroyRecord()
53-
.then(() => {
54-
this.transitionToRoute('events');
55-
this.notify.success(this.l10n.t('Event has been deleted successfully.'),
56-
{
57-
id: 'event_deleted_succ'
58-
});
59-
})
60-
.catch(() => {
61-
this.notify.error(this.l10n.t('An unexpected error has occurred.'),
62-
{
63-
id: 'event_deleted_error'
64-
});
65-
})
66-
.finally(() => {
67-
this.set('isLoading', false);
68-
});
69-
this.set('isEventDeleteModalOpen', false);
70-
}
71-
7244
@action
7345
copyEvent() {
7446
this.set('isCopying', true);

app/controllers/events/view/settings.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,34 @@ import { action } from '@ember/object';
33

44
export default class extends Controller {
55

6+
@action
7+
openDeleteEventModal() {
8+
this.set('isEventDeleteModalOpen', true);
9+
}
10+
11+
@action
12+
deleteEvent() {
13+
this.set('isLoading', true);
14+
this.model.event.destroyRecord()
15+
.then(() => {
16+
this.transitionToRoute('events');
17+
this.notify.success(this.l10n.t('Event has been deleted successfully.'),
18+
{
19+
id: 'event_deleted_succ'
20+
});
21+
})
22+
.catch(() => {
23+
this.notify.error(this.l10n.t('An unexpected error has occurred.'),
24+
{
25+
id: 'event_deleted_error'
26+
});
27+
})
28+
.finally(() => {
29+
this.set('isLoading', false);
30+
});
31+
this.set('isEventDeleteModalOpen', false);
32+
}
33+
634
@action
735
openEventTransferModal(id, name) {
836
this.setProperties({

app/controllers/public/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ export default Controller.extend({
131131
order.set('attendees', attendees);
132132
await order.save()
133133
.then(order => {
134-
this.notify.success(this.l10n.t('Order details saved. Please fill further details within 10 minutes.'));
134+
this.notify.success(this.l10n.t(`Order details saved. Please fill further details within ${this.settings.orderExpiryTime} minutes.`));
135135
this.transitionToRoute('orders.new', order.identifier);
136136
})
137137
.catch(async e => {

app/mixins/event-wizard.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,6 @@ export default Mixin.create(MutableArray, CustomFormMixin, {
117117
if (event.name === undefined || event.name === '') {
118118
errorObject.errors.push({ 'detail': 'Event name has not been provided' });
119119
}
120-
if (event.locationName === undefined || event.locationName === '') {
121-
errorObject.errors.push({ 'detail': 'Location has not been provided' });
122-
}
123120
if (event.startsAtDate === undefined || event.endsAtDate === undefined) {
124121
errorObject.errors.push({ 'detail': 'Dates have not been provided' });
125122
}

app/routes/public/role-invites.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import Route from '@ember/routing/route';
2+
import { inject as service } from '@ember/service';
23

34
export default Route.extend({
4-
redirectionParams: null,
5+
fastboot : service(),
6+
redirectionParams : null,
57
async beforeModel(transition) {
8+
// We don't want to process or transition in fastboot mode
9+
// Since this is only an intermediate page
10+
if (this.fastboot.isFastBoot) {return}
611
const { token } = transition.to.queryParams;
712
const originalEventId = transition.resolvedModels.public.originalId;
813
const payload = {
@@ -31,6 +36,7 @@ export default Route.extend({
3136

3237
},
3338
afterModel() {
39+
if (this.fastboot.isFastBoot) {return}
3440
this.transitionTo('register', this.redirectionParams);
3541
}
3642
});

0 commit comments

Comments
 (0)