123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import Ember from 'ember';
- import DocumentTitle from 'misago/mixins/document-title';
- import ResetScroll from 'misago/mixins/reset-scroll';
- import ModelUrlName from 'misago/mixins/model-url-name';
- export default Ember.Route.extend(DocumentTitle, ResetScroll, ModelUrlName, {
- // Shorthand for validating page number
- cleanPage: function(page, transition) {
- var cleanPage = parseInt(page);
- if ("" + cleanPage === page && cleanPage > 0) {
- if (cleanPage > 1) {
- // return page number for an app
- return cleanPage;
- } else {
- // redirect to first page
- var routePath = transition.targetName.split('.');
- routePath[routePath.length - 1] = 'index';
- this.transitionTo(routePath.join('.'));
- }
- } else {
- this.throw404(); // not a valid page number
- }
- },
- // Shorthands for raising errors
- throw403: function(reason) {
- if (reason) {
- throw {
- status: 403,
- responseJSON: {
- detail: reason
- }
- };
- } else {
- throw { status: 403 };
- }
- },
- throw404: function() {
- throw { status: 404 };
- }
- });
|