123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import MisagoRoute from 'misago/routes/misago';
- 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) {
- this.set('title', gettext('Connection lost'));
- return this.intermediateTransitionTo('error-0');
- }
- if (typeof reason.responseJSON !== 'undefined' && typeof reason.responseJSON.ban !== 'undefined') {
- this.set('title', gettext('You are banned'));
- return this.intermediateTransitionTo('error-banned', reason.responseJSON.ban);
- }
- if (reason.status === 403) {
- this.set('title', gettext('Page not available'));
- 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) {
- this.set('title', gettext('Page not found'));
- return this.intermediateTransitionTo('error-404');
- }
- this.set('title', gettext('Error'));
- return true;
- },
- toastError: function(reason) {
- var errorMessage = gettext('Unknown error has occured.');
- if (reason.status === 0) {
- errorMessage = gettext('Lost connection with application.');
- }
- if (reason.status === 403) {
- if (typeof reason.responseJSON !== 'undefined' && typeof reason.responseJSON.detail !== 'undefined' && reason.responseJSON.detail !== 'Permission denied') {
- errorMessage = reason.responseJSON.detail;
- } else {
- errorMessage = gettext("You don't have permission to perform this action.");
- }
- }
- if (reason.status === 404) {
- errorMessage = gettext('Action link is invalid.');
- }
- this.toast.error(errorMessage);
- },
- showBan: function(ban) {
- this.set('title', gettext('You are banned'));
- this.intermediateTransitionTo('error-banned', ban);
- }
- }
- });
|