mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-13 22:41:32 -05:00
e9326f6f6e
No issue - ember-simple-auth@0.8.0-beta.2. - Switch from SimpleAuth global to ember-cli-simple-auth and ES6 imports. - Refactor controllers to handle changes in 0.8. - Introduces a new initializer to override some configuration items that are set in environment.js but need to be set with information that's only (easily) available at runtime.
51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
|
|
import MobileIndexRoute from 'ghost/routes/mobile-index-route';
|
|
import loadingIndicator from 'ghost/mixins/loading-indicator';
|
|
import mobileQuery from 'ghost/utils/mobile';
|
|
|
|
var PostsIndexRoute = MobileIndexRoute.extend(AuthenticatedRouteMixin, loadingIndicator, {
|
|
noPosts: false,
|
|
|
|
// Transition to a specific post if we're not on mobile
|
|
beforeModel: function () {
|
|
if (!mobileQuery.matches) {
|
|
return this.goToPost();
|
|
}
|
|
},
|
|
|
|
setupController: function (controller, model) {
|
|
/*jshint unused:false*/
|
|
controller.set('noPosts', this.get('noPosts'));
|
|
},
|
|
|
|
goToPost: function () {
|
|
var self = this,
|
|
// the store has been populated by PostsRoute
|
|
posts = this.store.all('post'),
|
|
post;
|
|
|
|
return this.get('session.user').then(function (user) {
|
|
post = posts.find(function (post) {
|
|
// Authors can only see posts they've written
|
|
if (user.get('isAuthor')) {
|
|
return post.isAuthoredByUser(user);
|
|
}
|
|
|
|
return true;
|
|
});
|
|
|
|
if (post) {
|
|
return self.transitionTo('posts.post', post);
|
|
}
|
|
|
|
self.set('noPosts', true);
|
|
});
|
|
},
|
|
|
|
// Mobile posts route callback
|
|
desktopTransition: function () {
|
|
this.goToPost();
|
|
}
|
|
});
|
|
|
|
export default PostsIndexRoute;
|