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); + }); } -}); +}