export default MisagoRoute.extend({ actions: { // Loading handler loading: function() { document.title = this.get('settings.forum_name'); return true; }, // Error handlers error: function(reason) { if (reason.status === 0) { return this.intermediateTransitionTo('error-0'); } if (typeof reason.responseJSON !== 'undefined' && typeof reason.responseJSON.ban !== 'undefined') { return this.intermediateTransitionTo('error-banned', reason.responseJSON.ban); } if (reason.status === 403) { var final_error = {status: 403, message: null}; if (typeof reason.responseJSON !== 'undefined' && typeof reason.responseJSON.detail !== 'undefined' && reason.responseJSON.detail !== 'Permission denied') { final_error.message = reason.responseJSON.detail; } return this.intermediateTransitionTo('error-403', final_error); } if (reason.status === 404) { return this.intermediateTransitionTo('error-404'); } this.set('title', gettext('Error')); return true; } } });
import MisagoRoute from 'misago/routes/misago'; export default MisagoRoute.extend({ model: function(params) { return this.ajax.post('auth/activate-account/' + params.user_id + '/' + params.token); }, afterModel: function(model) { this.modal.show('login-modal'); this.toast.success(model.detail); return this.transitionTo('index'); }, actions: { loading: function() { this.set('title', gettext('Activating account...')); return true; }, error: function(reason) { if (reason.status === 400) { this.toast.error(reason.responseJSON.detail); return this.transitionTo('activation'); } return true; } } });
import MisagoRoute from 'misago/routes/misago'; export default MisagoRoute.extend({ beforeModel: function() { this.auth.denyAnonymous(gettext('You have to sign in to change options.')); } });
import MisagoRoute from 'misago/routes/misago'; export default MisagoRoute.extend({ actions: { didTransition: function() { // Not found route transitions to error404 throw {status: 404}; } } });
import MisagoRoute from 'misago/routes/misago'; export default MisagoRoute.extend({ beforeModel: function() { this.auth.denyAuthenticated(gettext('Only guests can change forgotten password.')); } });
import MisagoRoute from 'misago/routes/misago'; import ResetScroll from 'misago/mixins/reset-scroll'; export default MisagoRoute.extend(ResetScroll, { model: function(params) { return this.rpc.ajax('change-password/' + params.user_id + '/' + params.token + '/validate-token'); }, actions: { didTransition: function() { this.set('title', gettext('Change forgotten password')); }, error: function(reason) { if (reason.status === 404) { this.toast.error(reason.responseJSON.detail); return this.transitionTo('forgotten-password'); } return true; } } });
import MisagoRoute from 'misago/routes/misago'; export default MisagoRoute.extend({ actions: { didTransition: function() { document.title = this.get('settings.forum_index_title') || this.get('settings.forum_name'); } } });
import MisagoRoute from 'misago/routes/misago'; export default MisagoRoute.extend({ setTitle: function() { this.set('title', gettext('You are banned')); }.on('activate') });
import MisagoRoute from 'misago/routes/misago'; export default MisagoRoute.extend({ actions: { didTransition: function() { this.set('title', gettext('Edit signature')); } } });
export default MisagoRoute.extend({ page: 'privacy-policy', defaultTitle: gettext('Privacy policy'), setting: function() { return this.get('page').replace(/-/g, '_'); }.property('page'), title: function() { return this.get('settings.' + this.get('setting') + '_title') || this.get('defaultTitle'); }.property('defaultTitle', 'settings'), link: function() { return this.get('settings.' + this.get('setting') + '_link'); }.property('settings'), beforeModel: function(transition) { if (this.get('link')) { transition.abort(); window.location.replace(this.get('link')); } }, model: function() { var preloadedPage = this.preloadStore.pop(this.get('page')); if (preloadedPage) { this.store.push('legal-page', preloadedPage); } return this.store.find('legal-page', this.get('page')); }, afterModel: function(model, transition) { if (model.get('link')) { transition.abort(); window.location.replace(model.get('link')); } }, actions: { didTransition: function() { this.set('title', this.get('title')); } } });