diff --git a/app/controllers/create.js b/app/controllers/create.js
index 8ecb3fcf66d..21fa47c4a83 100644
--- a/app/controllers/create.js
+++ b/app/controllers/create.js
@@ -1,20 +1,21 @@
import Controller from '@ember/controller';
import EventWizardMixin from 'open-event-frontend/mixins/event-wizard';
+import { action } from '@ember/object';
-export default Controller.extend(EventWizardMixin, {
-
- actions: {
- save() {
- this.saveEventDataAndRedirectTo(
- 'events.view.index',
- ['tickets', 'socialLinks', 'copyright', 'tax', 'stripeAuthorization']
- );
- },
- move() {
- this.saveEventDataAndRedirectTo(
- 'events.view.edit.attendee',
- ['tickets', 'socialLinks', 'copyright', 'tax', 'stripeAuthorization']
- );
- }
+export default class extends Controller.extend(EventWizardMixin) {
+ @action
+ save() {
+ this.saveEventDataAndRedirectTo(
+ 'events.view.index',
+ ['tickets', 'socialLinks', 'copyright', 'tax', 'stripeAuthorization']
+ );
+ }
+ @action
+ move() {
+ this.saveEventDataAndRedirectTo(
+ 'events.view.edit.attendee',
+ ['tickets', 'socialLinks', 'copyright', 'tax', 'stripeAuthorization']
+ );
}
-});
+}
+
diff --git a/app/controllers/events/import.js b/app/controllers/events/import.js
index 42c5e8014da..c8a11d8b713 100644
--- a/app/controllers/events/import.js
+++ b/app/controllers/events/import.js
@@ -1,12 +1,14 @@
import Controller from '@ember/controller';
import { run } from '@ember/runloop';
+import { action } from '@ember/object';
+
+export default class extends Controller {
+ importStatus = '';
+ importError = '';
+ isImporting = false;
+ file = false;
+ fileName = '';
-export default Controller.extend({
- importStatus : '',
- importError : '',
- isImporting : false,
- file : false,
- fileName : '',
importTask(taskUrl) {
run.later(() => {
this.loader
@@ -28,39 +30,38 @@ export default Controller.extend({
});
});
}, 3000);
- },
- actions: {
- uploadFile(files) {
- let [file] = files;
- let data = new FormData();
- let endpoint = 'import/json';
- let ext = file.name.split('.');
- ext = ext[ext.length - 1].toLowerCase();
- if (ext === 'xml') {
- endpoint = 'import/pentabarf';
- } else if (ext === 'ics' || ext === 'ical') {
- endpoint = 'import/ical';
- } else if (ext === 'xcal') {
- endpoint = 'import/xcal';
- }
- data.append('file', file);
+ }
+ @action
+ uploadFile(files) {
+ let [file] = files;
+ let data = new FormData();
+ let endpoint = 'import/json';
+ let ext = file.name.split('.');
+ ext = ext[ext.length - 1].toLowerCase();
+ if (ext === 'xml') {
+ endpoint = 'import/pentabarf';
+ } else if (ext === 'ics' || ext === 'ical') {
+ endpoint = 'import/ical';
+ } else if (ext === 'xcal') {
+ endpoint = 'import/xcal';
+ }
+ data.append('file', file);
- this.setProperties({
- 'importStatus' : 'Uploading file.. Please don\'t close this window',
- 'importError' : '',
- 'isImporting' : true,
- 'file' : true
- });
+ this.setProperties({
+ 'importStatus' : 'Uploading file.. Please don\'t close this window',
+ 'importError' : '',
+ 'isImporting' : true,
+ 'file' : true
+ });
- this.loader.post(
- `/events/${endpoint}`,
- data,
- { isFile: true }
- ).then(data => {
- this.importTask(`tasks/${data.task_url.split('/')[3]}`);
- }).catch(e => {
- this.set('importError', e.message);
- });
- }
+ this.loader.post(
+ `/events/${endpoint}`,
+ data,
+ { isFile: true }
+ ).then(data => {
+ this.importTask(`tasks/${data.task_url.split('/')[3]}`);
+ }).catch(e => {
+ this.set('importError', e.message);
+ });
}
-});
+}
diff --git a/app/controllers/events/view.js b/app/controllers/events/view.js
index 38b9d7e1ecd..ea3c37b5bfa 100644
--- a/app/controllers/events/view.js
+++ b/app/controllers/events/view.js
@@ -1,88 +1,91 @@
import Controller from '@ember/controller';
import { isEmpty } from '@ember/utils';
+import { action } from '@ember/object';
-export default Controller.extend({
- actions: {
- openDeleteEventModal() {
- this.set('isEventDeleteModalOpen', true);
- },
- togglePublishState() {
- if (isEmpty(this.get('model.locationName'))) {
- this.notify.error(this.l10n.t('Your event must have a location before it can be published.'),
- {
- id: 'event_location'
- });
- return;
- }
- this.set('isLoading', true);
- const state = this.get('model.state');
- this.set('model.state', state === 'draft' ? 'published' : 'draft');
- this.model.save()
- .then(() => {
- if (state === 'draft') {
- this.notify.success(this.l10n.t('Your event has been published successfully.'),
- {
- id: 'event_publish'
- });
- } else {
- this.notify.success(this.l10n.t('Your event has been unpublished.'),
- {
- id: 'event_unpublish'
- });
- }
- })
- .catch(() => {
- this.set('model.state', state);
- this.notify.error(this.l10n.t('An unexpected error has occurred.'),
- {
- id: 'event_publish_error'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
- });
- },
- deleteEvent() {
- this.set('isLoading', true);
- this.model.destroyRecord()
- .then(() => {
- this.transitionToRoute('events');
- this.notify.success(this.l10n.t('Event has been deleted successfully.'),
- {
- id: 'event_deleted_succ'
- });
- })
- .catch(() => {
- this.notify.error(this.l10n.t('An unexpected error has occurred.'),
- {
- id: 'event_deleted_error'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
+export default class extends Controller {
+ @action
+ openDeleteEventModal() {
+ this.set('isEventDeleteModalOpen', true);
+ }
+ @action
+ togglePublishState() {
+ if (isEmpty(this.model.locationName)) {
+ this.notify.error(this.l10n.t('Your event must have a location before it can be published.'),
+ {
+ id: 'event_location'
});
- this.set('isEventDeleteModalOpen', false);
- },
- copyEvent() {
- this.set('isCopying', true);
- this.loader
- .post(`events/${this.get('model.id')}/copy`, {})
- .then(copiedEvent => {
- this.transitionToRoute('events.view.edit', copiedEvent.identifier);
- this.notify.success(this.l10n.t('Event copied successfully'),
+ return;
+ }
+ this.set('isLoading', true);
+ const { state } = this.model;
+ this.set('model.state', state === 'draft' ? 'published' : 'draft');
+ this.model.save()
+ .then(() => {
+ if (state === 'draft') {
+ this.notify.success(this.l10n.t('Your event has been published successfully.'),
{
- id: 'event_copy_succ'
+ id: 'event_publish'
});
- })
- .catch(() => {
- this.notify.error(this.l10n.t('Copying of event failed'),
+ } else {
+ this.notify.success(this.l10n.t('Your event has been unpublished.'),
{
- id: 'event_copy_fail'
+ id: 'event_unpublish'
});
- })
- .finally(() => {
- this.set('isCopying', false);
- });
- }
+ }
+ })
+ .catch(() => {
+ this.set('model.state', state);
+ this.notify.error(this.l10n.t('An unexpected error has occurred.'),
+ {
+ id: 'event_publish_error'
+ });
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
+ }
+ @action
+ deleteEvent() {
+ this.set('isLoading', true);
+ this.model.destroyRecord()
+ .then(() => {
+ this.transitionToRoute('events');
+ this.notify.success(this.l10n.t('Event has been deleted successfully.'),
+ {
+ id: 'event_deleted_succ'
+ });
+ })
+ .catch(() => {
+ this.notify.error(this.l10n.t('An unexpected error has occurred.'),
+ {
+ id: 'event_deleted_error'
+ });
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
+ this.set('isEventDeleteModalOpen', false);
+ }
+ @action
+ copyEvent() {
+ this.set('isCopying', true);
+ this.loader
+ .post(`events/${this.model.id}/copy`, {})
+ .then(copiedEvent => {
+ this.transitionToRoute('events.view.edit', copiedEvent.identifier);
+ this.notify.success(this.l10n.t('Event copied successfully'),
+ {
+ id: 'event_copy_succ'
+ });
+ })
+ .catch(() => {
+ this.notify.error(this.l10n.t('Copying of event failed'),
+ {
+ id: 'event_copy_fail'
+ });
+ })
+ .finally(() => {
+ this.set('isCopying', false);
+ });
}
-});
+}
diff --git a/app/controllers/events/view/edit/attendee.js b/app/controllers/events/view/edit/attendee.js
index 55dfae876f9..5d476bcd8e1 100644
--- a/app/controllers/events/view/edit/attendee.js
+++ b/app/controllers/events/view/edit/attendee.js
@@ -1,41 +1,43 @@
import Controller from '@ember/controller';
+import { action } from '@ember/object';
import EventWizardMixin from 'open-event-frontend/mixins/event-wizard';
-export default Controller.extend(EventWizardMixin, {
+export default class extends Controller.extend(EventWizardMixin) {
+
async saveForms(data) {
for (const customForm of data.customForms ? data.customForms.toArray() : []) {
await customForm.save();
}
return data;
- },
- actions: {
- async save(data) {
- try {
- await this.saveForms(data);
- this.saveEventDataAndRedirectTo(
- 'events.view.index',
- ['tickets']
- );
- } catch (error) {
- this.notify.error(this.l10n.t(error.message),
- {
- id: 'attendee_error_serv'
- });
- }
- },
- async move(direction, data) {
- try {
- await this.saveForms(data);
- this.saveEventDataAndRedirectTo(
- direction === 'forwards' ? 'events.view.edit.sponsors' : 'events.view.edit.basic-details',
- ['tickets']
- );
- } catch (error) {
- this.notify.error(this.l10n.t(error.message),
- {
- id: 'attendee_move_error'
- });
- }
+ }
+ @action
+ async save(data) {
+ try {
+ await this.saveForms(data);
+ this.saveEventDataAndRedirectTo(
+ 'events.view.index',
+ ['tickets']
+ );
+ } catch (error) {
+ this.notify.error(this.l10n.t(error.message),
+ {
+ id: 'attendee_error_serv'
+ });
+ }
+ }
+ @action
+ async move(direction, data) {
+ try {
+ await this.saveForms(data);
+ this.saveEventDataAndRedirectTo(
+ direction === 'forwards' ? 'events.view.edit.sponsors' : 'events.view.edit.basic-details',
+ ['tickets']
+ );
+ } catch (error) {
+ this.notify.error(this.l10n.t(error.message),
+ {
+ id: 'attendee_move_error'
+ });
}
}
-});
+}
diff --git a/app/controllers/events/view/edit/basic-details.js b/app/controllers/events/view/edit/basic-details.js
index 56ccc6f85d0..21fa47c4a83 100644
--- a/app/controllers/events/view/edit/basic-details.js
+++ b/app/controllers/events/view/edit/basic-details.js
@@ -1,19 +1,21 @@
import Controller from '@ember/controller';
import EventWizardMixin from 'open-event-frontend/mixins/event-wizard';
+import { action } from '@ember/object';
-export default Controller.extend(EventWizardMixin, {
- actions: {
- save() {
- this.saveEventDataAndRedirectTo(
- 'events.view.index',
- ['tickets', 'socialLinks', 'copyright', 'tax', 'stripeAuthorization']
- );
- },
- move() {
- this.saveEventDataAndRedirectTo(
- 'events.view.edit.attendee',
- ['tickets', 'socialLinks', 'copyright', 'tax', 'stripeAuthorization']
- );
- }
+export default class extends Controller.extend(EventWizardMixin) {
+ @action
+ save() {
+ this.saveEventDataAndRedirectTo(
+ 'events.view.index',
+ ['tickets', 'socialLinks', 'copyright', 'tax', 'stripeAuthorization']
+ );
}
-});
+ @action
+ move() {
+ this.saveEventDataAndRedirectTo(
+ 'events.view.edit.attendee',
+ ['tickets', 'socialLinks', 'copyright', 'tax', 'stripeAuthorization']
+ );
+ }
+}
+
diff --git a/app/controllers/events/view/edit/sessions-speakers.js b/app/controllers/events/view/edit/sessions-speakers.js
index fb3b0255fdc..b35b938917b 100644
--- a/app/controllers/events/view/edit/sessions-speakers.js
+++ b/app/controllers/events/view/edit/sessions-speakers.js
@@ -1,31 +1,31 @@
import Controller from '@ember/controller';
+import { action } from '@ember/object';
import EventWizardMixin from 'open-event-frontend/mixins/event-wizard';
-export default Controller.extend(EventWizardMixin, {
+export default class extends Controller.extend(EventWizardMixin) {
async saveEventData() {
const event = await this._super(...arguments);
- event.get('isSessionsSpeakersEnabled')
- ? await this.get('model.speakersCall').save()
- : await this.get('model.speakersCall').destroyRecord();
+ event.isSessionsSpeakersEnabled
+ ? await this.model.speakersCall.save()
+ : await this.model.speakersCall.destroyRecord();
return event;
- },
-
+ }
- actions: {
- save() {
- this.saveEventDataAndRedirectTo(
- 'events.view.index',
- ['tracks', 'sessionTypes', 'microlocations', 'customForms', 'tickets']
- );
- },
- move(direction) {
- this.saveEventDataAndRedirectTo(
- direction === 'forwards' ? 'events.view.edit.sponsors' : 'events.view.edit.sponsors',
- ['tracks', 'sessionTypes', 'microlocations', 'customForms', 'tickets']
- );
- }
+ @action
+ save() {
+ this.saveEventDataAndRedirectTo(
+ 'events.view.index',
+ ['tracks', 'sessionTypes', 'microlocations', 'customForms', 'tickets']
+ );
+ }
+ @action
+ move(direction) {
+ this.saveEventDataAndRedirectTo(
+ direction === 'forwards' ? 'events.view.edit.sponsors' : 'events.view.edit.sponsors',
+ ['tracks', 'sessionTypes', 'microlocations', 'customForms', 'tickets']
+ );
}
-});
+}
diff --git a/app/controllers/events/view/edit/sponsors.js b/app/controllers/events/view/edit/sponsors.js
index 11f21a25200..ac01b93cf79 100644
--- a/app/controllers/events/view/edit/sponsors.js
+++ b/app/controllers/events/view/edit/sponsors.js
@@ -1,21 +1,21 @@
import Controller from '@ember/controller';
import EventWizardMixin from 'open-event-frontend/mixins/event-wizard';
+import { action } from '@ember/object';
-export default Controller.extend(EventWizardMixin, {
+export default class extends Controller.extend(EventWizardMixin) {
- actions: {
- save() {
- this.saveEventDataAndRedirectTo(
- 'events.view.index',
- ['sponsors', 'tickets']
- );
- },
- move(direction) {
- this.saveEventDataAndRedirectTo(
- direction === 'forwards' ? 'events.view.edit.sessions-speakers' : 'events.view.edit.attendee',
- ['sponsors', 'tickets']
- );
- }
+ @action
+ save() {
+ this.saveEventDataAndRedirectTo(
+ 'events.view.index',
+ ['sponsors', 'tickets']
+ );
}
-
-});
+ @action
+ move(direction) {
+ this.saveEventDataAndRedirectTo(
+ direction === 'forwards' ? 'events.view.edit.sessions-speakers' : 'events.view.edit.attendee',
+ ['sponsors', 'tickets']
+ );
+ }
+}
diff --git a/app/controllers/events/view/export.js b/app/controllers/events/view/export.js
index 85d0d0917d3..b55adfb958a 100644
--- a/app/controllers/events/view/export.js
+++ b/app/controllers/events/view/export.js
@@ -1,15 +1,18 @@
import Controller from '@ember/controller';
import { run } from '@ember/runloop';
-export default Controller.extend({
- eventDownloadUrl : '',
- eventExportStatus : 'Event export not yet started.',
- isDownloadDisabled : true,
- data : {
+import { action } from '@ember/object';
+
+export default class extends Controller {
+ eventDownloadUrl = '';
+ eventExportStatus = 'Event export not yet started.';
+ isDownloadDisabled = true;
+ data = {
image : false,
audio : false,
video : false,
document : false
- },
+ };
+
requestLoop(exportJobInfo) {
run.later(() => {
this.loader
@@ -49,23 +52,22 @@ export default Controller.extend({
this.set('isLoading', false);
});
}, 3000);
- },
- actions: {
- startGeneration() {
- this.set('isLoading', true);
- let payload = this.data;
- this.loader
- .post(`/events/${this.get('model.id')}/export/json`, payload)
- .then(exportJobInfo => {
- this.requestLoop(exportJobInfo);
- })
- .catch(() => {
- this.set('isLoading', false);
- this.notify.error(this.l10n.t('Unexpected error occurred.'),
- {
- id: 'event_error_export'
- });
- });
- }
}
-});
+ @action
+ startGeneration() {
+ this.set('isLoading', true);
+ let payload = this.data;
+ this.loader
+ .post(`/events/${this.get('model.id')}/export/json`, payload)
+ .then(exportJobInfo => {
+ this.requestLoop(exportJobInfo);
+ })
+ .catch(() => {
+ this.set('isLoading', false);
+ this.notify.error(this.l10n.t('Unexpected error occurred.'),
+ {
+ id: 'event_error_export'
+ });
+ });
+ }
+}
diff --git a/app/controllers/events/view/scheduler.js b/app/controllers/events/view/scheduler.js
index c6e9b1209f1..5c59e290918 100644
--- a/app/controllers/events/view/scheduler.js
+++ b/app/controllers/events/view/scheduler.js
@@ -1,28 +1,28 @@
import Controller from '@ember/controller';
-import { computed } from '@ember/object';
+import { computed, action } from '@ember/object';
import moment from 'moment';
-export default Controller.extend({
- isSchedulePublished: computed('model.eventDetails.schedulePublishedOn', function() {
- const schedulePublishStatus = this.get('model.eventDetails.schedulePublishedOn');
+export default class extends Controller {
+ @computed('model.eventDetails.schedulePublishedOn')
+ get isSchedulePublished() {
+ const schedulePublishStatus = this.model.eventDetails.schedulePublishedOn;
if (schedulePublishStatus != null) {
return schedulePublishStatus.toISOString() !== moment(0).toISOString();
}
return false;
-
- }),
- isLoading : false,
- header : {
+ }
+ isLoading = false;
+ header = {
left : 'today prev,next',
center : 'title',
right : 'timelineDay,timelineThreeDays,agendaWeek,month'
- },
- views: {
+ }
+ view = {
timelineThreeDays: {
type : 'timeline',
duration : { days: 3 }
}
- },
+ }
updateSession(start, end, microlocationId, sessionId) {
let payload = {
data: {
@@ -57,57 +57,59 @@ export default Controller.extend({
this.set('error', reason);
this.notify.error(`Error: ${reason}`);
});
- },
+ }
unscheduleSession(session) {
window.$('.full-calendar').fullCalendar('removeEvents', session._id);
this.updateSession(null, null, session.resourceId, session.serverId);
this.target.send('refresh');
-
- },
- actions: {
- drop(date, jsEvent, ui, resourceId) {
- let start = date;
- let duration = this.get('model.defaultDuration').split(':');
- let end = start.clone().add(duration[0], 'hours').add(duration[1], 'minutes');
- this.updateSession(start, end, resourceId, window.$(ui.helper).data('serverId'));
- window.$(ui.helper).remove();
- },
- eventDrop(session) {
- this.updateSession(session.start, session.end, session.resourceId, session.serverId);
- },
- eventResize(session) {
- this.updateSession(session.start, session.end, session.resourceId, session.serverId);
- },
- eventRender(session, element) {
- element.append('');
- let controller = this;
- element.find('.scheduled-close-btn').on('click', function() {
- controller.unscheduleSession(session);
+ }
+ @action
+ drop(date, jsEvent, ui, resourceId) {
+ let start = date;
+ let duration = this.model.defaultDuration.split(':');
+ let end = start.clone().add(duration[0], 'hours').add(duration[1], 'minutes');
+ this.updateSession(start, end, resourceId, window.$(ui.helper).data('serverId'));
+ window.$(ui.helper).remove();
+ }
+ @action
+ eventDrop(session) {
+ this.updateSession(session.start, session.end, session.resourceId, session.serverId);
+ }
+ @action
+ eventResize(session) {
+ this.updateSession(session.start, session.end, session.resourceId, session.serverId);
+ }
+ @action
+ eventRender(session, element) {
+ element.append('');
+ let controller = this;
+ element.find('.scheduled-close-btn').on('click', function() {
+ controller.unscheduleSession(session);
+ });
+ }
+ @action
+ togglePublishState() {
+ this.set('isLoading', true);
+ let stat = this.isSchedulePublished ? 'unpublished' : 'published';
+ let publishedAt = this.isSchedulePublished ? moment(0) : moment();
+ let event = this.model.eventDetails;
+ event.set('schedulePublishedOn', publishedAt);
+ event.save()
+ .then(() => {
+ this.notify.success(`The schedule has been ${stat} successfully`,
+ {
+ id: 'schedule_change_succ'
+ });
+ })
+ .catch(reason => {
+ this.set('error', reason);
+ this.notify.error(`Error: ${reason}`,
+ {
+ id: 'error_reason_scheduler'
+ });
+ })
+ .finally(() => {
+ this.set('isLoading', false);
});
- },
- togglePublishState() {
- this.set('isLoading', true);
- let action = this.isSchedulePublished ? 'unpublished' : 'published';
- let publishedAt = this.isSchedulePublished ? moment(0) : moment();
- let event = this.get('model.eventDetails');
- event.set('schedulePublishedOn', publishedAt);
- event.save()
- .then(() => {
- this.notify.success(`The schedule has been ${action} successfully`,
- {
- id: 'schedule_change_succ'
- });
- })
- .catch(reason => {
- this.set('error', reason);
- this.notify.error(`Error: ${reason}`,
- {
- id: 'error_reason_scheduler'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
- });
- }
}
-});
+}
diff --git a/app/controllers/events/view/sessions.js b/app/controllers/events/view/sessions.js
index 8cda99636aa..96803c0ccc1 100644
--- a/app/controllers/events/view/sessions.js
+++ b/app/controllers/events/view/sessions.js
@@ -1,67 +1,69 @@
import Controller from '@ember/controller';
-import { computed } from '@ember/object';
+import { computed, action } from '@ember/object';
import { run } from '@ember/runloop';
-export default Controller.extend({
+export default class extends Controller {
- isLoading: false,
+ isLoading = false;
- onSessionRoute: computed('session.currentRouteName', function() {
- let currentRouteName = this.get('session.currentRouteName');
+ @computed('session.currentRouteName')
+ get onSessionRoute() {
+ let { currentRouteName } = this.session;
return currentRouteName !== 'events.view.sessions.create' && currentRouteName !== 'events.view.sessions.edit';
- }),
+ }
- actions: {
- export() {
- this.set('isLoading', true);
- this.loader
- .load(`/events/${this.get('model.id')}/export/sessions/csv`)
- .then(exportJobInfo => {
- this.requestLoop(exportJobInfo);
- })
- .catch(() => {
- this.set('isLoading', false);
- this.notify.error(this.l10n.t('An unexpected error has occurred.'),
- {
- id: 'session_unexp_error'
- });
- });
- }
- },
+ @action
+ export() {
+ this.set('isLoading', true);
+ this.loader
+ .load(`/events/${this.model.id}/export/sessions/csv`)
+ .then(exportJobInfo => {
+ this.requestLoop(exportJobInfo);
+ })
+ .catch(() => {
+ this.set('isLoading', false);
+ this.notify.error(this.l10n.t('An unexpected error has occurred.'),
+ {
+ id: 'session_unexp_error'
+ });
+ });
+ }
- requestLoop(exportJobInfo) {
- run.later(() => {
- this.loader
- .load(exportJobInfo.task_url, { withoutPrefix: true })
- .then(exportJobStatus => {
- if (exportJobStatus.state === 'SUCCESS') {
- window.location = exportJobStatus.result.download_url;
- this.notify.success(this.l10n.t('Download Ready'),
- {
- id: 'download_ready'
- });
- } else if (exportJobStatus.state === 'WAITING') {
- this.requestLoop(exportJobInfo);
- this.notify.alert(this.l10n.t('Task is going on.'),
- {
- id: 'task_going'
- });
- } else {
+
+ requestLoop(exportJobInfo) {
+ run.later(() => {
+ this.loader
+ .load(exportJobInfo.task_url, { withoutPrefix: true })
+ .then(exportJobStatus => {
+ if (exportJobStatus.state === 'SUCCESS') {
+ window.location = exportJobStatus.result.download_url;
+ this.notify.success(this.l10n.t('Download Ready'),
+ {
+ id: 'download_ready'
+ });
+ } else if (exportJobStatus.state === 'WAITING') {
+ this.requestLoop(exportJobInfo);
+ this.notify.alert(this.l10n.t('Task is going on.'),
+ {
+ id: 'task_going'
+ });
+ } else {
+ this.notify.error(this.l10n.t('CSV Export has failed.'),
+ {
+ id: 'csv_fail'
+ });
+ }
+ })
+ .catch(() => {
this.notify.error(this.l10n.t('CSV Export has failed.'),
{
- id: 'csv_fail'
+ id: 'csv_export_fail'
});
- }
- })
- .catch(() => {
- this.notify.error(this.l10n.t('CSV Export has failed.'),
- {
- id: 'csv_export_fail'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
- });
- }, 3000);
- }
-});
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
+ }, 3000);
+ }
+}
+
diff --git a/app/controllers/events/view/sessions/create.js b/app/controllers/events/view/sessions/create.js
index b25843facdb..77effb31718 100644
--- a/app/controllers/events/view/sessions/create.js
+++ b/app/controllers/events/view/sessions/create.js
@@ -1,63 +1,65 @@
import Controller from '@ember/controller';
-export default Controller.extend({
- actions: {
- async save() {
- 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.model.session);
- this.model.session.save()
- .then(() => {
- this.notify.success(this.l10n.t('Your session has been saved'),
- {
- id: 'session_save_dash'
- });
- this.transitionToRoute('events.view.sessions', this.model.event.id);
- })
- .catch(() => {
- this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
- {
- id: 'session_crea_some_error'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
- });
- })
- .catch(() => {
- this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
- {
- id: 'error_unexp_session'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
- });
- } else {
- this.get('model.session').save()
- .then(() => {
- this.notify.success(this.l10n.t('Your session has been saved'),
- {
- id: 'session_save'
- });
- this.transitionToRoute('events.view.sessions', this.get('model.event.id'));
- })
- .catch(() => {
- this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
- {
- id: 'session_error_wrong'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
- });
+import { action } from '@ember/object';
+
+export default class extends Controller {
+ @action
+ async save() {
+ await this.model.session.save();
+ if (this.addNewSpeaker) {
+ let newSpeaker = this.model.speaker;
+ if (newSpeaker.isEmailOverridden) {
+ newSpeaker.set('email', this.authManager.currentUser.email);
}
+ newSpeaker.save()
+ .then(() => {
+ newSpeaker.sessions.pushObject(this.model.session);
+ this.model.session.save()
+ .then(() => {
+ this.notify.success(this.l10n.t('Your session has been saved'),
+ {
+ id: 'session_save_dash'
+ });
+ this.transitionToRoute('events.view.sessions', this.model.event.id);
+ })
+ .catch(() => {
+ this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
+ {
+ id: 'session_crea_some_error'
+ });
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
+ })
+ .catch(() => {
+ this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
+ {
+ id: 'error_unexp_session'
+ });
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
+ } else {
+ this.get('model.session').save()
+ .then(() => {
+ this.notify.success(this.l10n.t('Your session has been saved'),
+ {
+ id: 'session_save'
+ });
+ this.transitionToRoute('events.view.sessions', this.model.event.id);
+ })
+ .catch(() => {
+ this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
+ {
+ id: 'session_error_wrong'
+ });
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
}
}
-});
+}
+
diff --git a/app/controllers/events/view/sessions/edit.js b/app/controllers/events/view/sessions/edit.js
index 4874a3fe982..3dd3daa3ff0 100644
--- a/app/controllers/events/view/sessions/edit.js
+++ b/app/controllers/events/view/sessions/edit.js
@@ -1,65 +1,65 @@
import Controller from '@ember/controller';
+import { action } from '@ember/object';
-export default Controller.extend({
- actions: {
- save() {
- this.set('isLoading', true);
- 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.model.session);
- this.model.session.save()
- .then(() => {
- this.notify.success(this.l10n.t('Your session has been saved'),
- {
- id: 'session_edit_save'
- });
- this.transitionToRoute('events.view.sessions', this.model.event.id);
- })
- .catch(() => {
- this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
- {
- id: 'session_edit_error'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
- });
- })
- .catch(() => {
- this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
- {
- id: 'session_edit_wrong'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
- });
- } else {
- this.model.speaker.deleteRecord();
- this.model.session.save()
- .then(() => {
- this.notify.success(this.l10n.t('Your session has been saved'),
- {
- id: 'session_saved'
- });
- this.transitionToRoute('events.view.sessions', this.model.event.id);
- })
- .catch(() => {
- this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
- {
- id: 'session_edit_error'
- });
- })
- .finally(() => {
- this.set('isLoading', false);
- });
+export default class extends Controller {
+ @action
+ save() {
+ this.set('isLoading', true);
+ if (this.addNewSpeaker) {
+ let newSpeaker = this.model.speaker;
+ if (newSpeaker.isEmailOverridden) {
+ newSpeaker.set('email', this.authManager.currentUser.email);
}
+ newSpeaker.save()
+ .then(() => {
+ newSpeaker.sessions.pushObject(this.model.session);
+ this.model.session.save()
+ .then(() => {
+ this.notify.success(this.l10n.t('Your session has been saved'),
+ {
+ id: 'session_edit_save'
+ });
+ this.transitionToRoute('events.view.sessions', this.model.event.id);
+ })
+ .catch(() => {
+ this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
+ {
+ id: 'session_edit_error'
+ });
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
+ })
+ .catch(() => {
+ this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
+ {
+ id: 'session_edit_wrong'
+ });
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
+ } else {
+ this.model.speaker.deleteRecord();
+ this.model.session.save()
+ .then(() => {
+ this.notify.success(this.l10n.t('Your session has been saved'),
+ {
+ id: 'session_saved'
+ });
+ this.transitionToRoute('events.view.sessions', this.model.event.id);
+ })
+ .catch(() => {
+ this.notify.error(this.l10n.t('Oops something went wrong. Please try again'),
+ {
+ id: 'session_edit_error'
+ });
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
}
}
-});
+}
diff --git a/app/controllers/events/view/settings.js b/app/controllers/events/view/settings.js
index 55dccf6c77d..01fd00a7652 100644
--- a/app/controllers/events/view/settings.js
+++ b/app/controllers/events/view/settings.js
@@ -1,45 +1,51 @@
import Controller from '@ember/controller';
+import { action } from '@ember/object';
-export default Controller.extend({
+export default class extends Controller {
- actions: {
- openEventTransferModal(id, name) {
- this.setProperties({
- 'isEventTransferModalOpen' : true,
- 'confirmEventName' : '',
- 'eventId' : id,
- 'eventName' : name
- });
- },
- openConfirmEventTransferModal() {
- const currentInvite = this.model.roleInvites.createRecord({});
- let { roles } = this.model;
- for (const role of roles ? roles.toArray() : []) {
- if (role.name === 'owner') {
- currentInvite.set('role', role);
- }
+ @action
+ openEventTransferModal(id, name) {
+ this.setProperties({
+ 'isEventTransferModalOpen' : true,
+ 'confirmEventName' : '',
+ 'eventId' : id,
+ 'eventName' : name
+ });
+ }
+
+ @action
+ openConfirmEventTransferModal() {
+ const currentInvite = this.model.roleInvites.createRecord({});
+ let { roles } = this.model;
+ for (const role of roles ? roles.toArray() : []) {
+ if (role.name === 'owner') {
+ currentInvite.set('role', role);
}
+ }
+
+ this.setProperties({
+ 'isEventTransferModalOpen' : false,
+ 'isConfirmEventTransferModalOpen' : true,
+ 'checked' : false,
+ currentInvite
+ });
+ }
+
+ @action
+ async transferEvent() {
+ try {
+ this.set('isLoading', true);
+ this.currentInvite.set('roleName', 'owner');
+ await this.currentInvite.save();
this.setProperties({
- 'isEventTransferModalOpen' : false,
- 'isConfirmEventTransferModalOpen' : true,
- 'checked' : false,
- currentInvite
+ 'isConfirmEventTransferModalOpen' : false,
+ 'checked' : false
});
- },
- async transferEvent() {
- try {
- this.set('isLoading', true);
- this.currentInvite.set('roleName', 'owner');
- await this.currentInvite.save();
- this.setProperties({
- 'isConfirmEventTransferModalOpen' : false,
- 'checked' : false
- });
- this.notify.success(this.l10n.t('Owner Role Invite sent successfully.'));
- } catch (error) {
- this.notify.error(this.l10n.t(error.message));
- }
- this.set('isLoading', false);
+ this.notify.success(this.l10n.t('Owner Role Invite sent successfully.'));
+ } catch (error) {
+ this.notify.error(this.l10n.t(error.message));
}
+
+ this.set('isLoading', false);
}
-});
+}
diff --git a/app/controllers/events/view/speakers.js b/app/controllers/events/view/speakers.js
index 9f5a61d691c..7bd30fd2062 100644
--- a/app/controllers/events/view/speakers.js
+++ b/app/controllers/events/view/speakers.js
@@ -1,24 +1,24 @@
import Controller from '@ember/controller';
import { run } from '@ember/runloop';
+import { action } from '@ember/object';
-export default Controller.extend({
+export default class extends Controller {
- isLoading: false,
+ isLoading = false;
- actions: {
- export() {
- this.set('isLoading', true);
- this.loader
- .load(`/events/${this.get('model.id')}/export/speakers/csv`)
- .then(exportJobInfo => {
- this.requestLoop(exportJobInfo);
- })
- .catch(() => {
- this.set('isLoading', false);
- this.notify.error(this.l10n.t('An unexpected error has occurred.'));
- });
- }
- },
+ @action
+ export() {
+ this.set('isLoading', true);
+ this.loader
+ .load(`/events/${this.model.id}/export/speakers/csv`)
+ .then(exportJobInfo => {
+ this.requestLoop(exportJobInfo);
+ })
+ .catch(() => {
+ this.set('isLoading', false);
+ this.notify.error(this.l10n.t('An unexpected error has occurred.'));
+ });
+ }
requestLoop(exportJobInfo) {
run.later(() => {
@@ -43,4 +43,4 @@ export default Controller.extend({
});
}, 3000);
}
-});
+}
diff --git a/app/controllers/events/view/speakers/create.js b/app/controllers/events/view/speakers/create.js
index dbd20da7410..077e607cf36 100644
--- a/app/controllers/events/view/speakers/create.js
+++ b/app/controllers/events/view/speakers/create.js
@@ -1,29 +1,32 @@
import Controller from '@ember/controller';
-export default Controller.extend({
- actions: {
- async save(sessionDetails) {
- try {
- this.set('isLoading', true);
- if (!sessionDetails) {
- await this.get('model.session').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();
- } else {
- this.get('model.speaker.sessions').pushObject(sessionDetails);
- }
- await this.get('model.speaker').save();
- this.notify.success(this.l10n.t('Your session has been saved'));
- this.transitionToRoute('events.view.speakers', this.get('model.event.id'));
- } catch (e) {
- this.notify.error(this.l10n.t('Oops something went wrong. Please try again'));
+import { action } from '@ember/object';
+
+export default class extends Controller {
+ @action
+ async save(sessionDetails) {
+ try {
+ this.set('isLoading', true);
+ if (!sessionDetails) {
+ await this.model.session.save();
}
+ let newSpeaker = this.model.speaker;
+ if (newSpeaker.isEmailOverridden) {
+ newSpeaker.set('email', this.authManager.currentUser.email);
+ }
+ await newSpeaker.save();
+ if (!sessionDetails) {
+ this.model.speaker.sessions.pushObject(this.model.session);
+ await this.model.session.save();
+ } else {
+ this.model.speaker.sessions.pushObject(sessionDetails);
+ }
+
+ await this.model.speaker.save();
+ this.notify.success(this.l10n.t('Your session has been saved'));
+ this.transitionToRoute('events.view.speakers', this.model.event.id);
+ } catch (e) {
+ this.notify.error(this.l10n.t('Oops something went wrong. Please try again'));
}
}
-});
+}
+
diff --git a/app/controllers/events/view/speakers/edit.js b/app/controllers/events/view/speakers/edit.js
index bf666c3131a..1c781df985b 100644
--- a/app/controllers/events/view/speakers/edit.js
+++ b/app/controllers/events/view/speakers/edit.js
@@ -1,24 +1,24 @@
import Controller from '@ember/controller';
+import { action } from '@ember/object';
-export default Controller.extend({
- actions: {
- save() {
- this.set('isLoading', true);
- 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');
- })
- .catch(() => {
- this.notify.error(this.l10n.t('Oops something went wrong. Please try again'));
- })
- .finally(() => {
- this.set('isLoading', false);
- });
+export default class extends Controller {
+ @action
+ save() {
+ this.set('isLoading', true);
+ let { speaker } = this.model;
+ 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');
+ })
+ .catch(() => {
+ this.notify.error(this.l10n.t('Oops something went wrong. Please try again'));
+ })
+ .finally(() => {
+ this.set('isLoading', false);
+ });
}
-});
+}