mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-17 05:21:36 +03:00
188265115a
Closes #3520. Move the custom jQuery animation into an action on the controller so that we can trigger it from within the route if needed.
73 lines
2.0 KiB
JavaScript
73 lines
2.0 KiB
JavaScript
import loadingIndicator from 'ghost/mixins/loading-indicator';
|
|
import ShortcutsRoute from 'ghost/mixins/shortcuts-route';
|
|
import {mobileQuery} from 'ghost/utils/mobile';
|
|
|
|
var PostsPostRoute = Ember.Route.extend(SimpleAuth.AuthenticatedRouteMixin, loadingIndicator, ShortcutsRoute, {
|
|
model: function (params) {
|
|
var self = this,
|
|
post,
|
|
postId,
|
|
paginationSettings;
|
|
|
|
postId = Number(params.post_id);
|
|
|
|
if (!_.isNumber(postId) || !_.isFinite(postId) || postId % 1 !== 0 || postId <= 0)
|
|
{
|
|
return this.transitionTo('error404', params.post_id);
|
|
}
|
|
|
|
post = this.store.getById('post', postId);
|
|
|
|
if (post) {
|
|
return post;
|
|
}
|
|
|
|
paginationSettings = {
|
|
id: postId,
|
|
status: 'all',
|
|
staticPages: 'all'
|
|
};
|
|
|
|
return this.store.find('user', 'me').then(function (user) {
|
|
if (user.get('isAuthor')) {
|
|
paginationSettings.author = user.get('slug');
|
|
}
|
|
|
|
return self.store.find('post', paginationSettings).then(function (records) {
|
|
var post = records.get('firstObject');
|
|
|
|
if (user.get('isAuthor') && !post.isAuthoredByUser(user)) {
|
|
// do not show the post if they are an author but not this posts author
|
|
post = null;
|
|
}
|
|
|
|
if (post) {
|
|
return post;
|
|
}
|
|
|
|
return self.transitionTo('posts.index');
|
|
});
|
|
});
|
|
},
|
|
setupController: function (controller, model) {
|
|
this._super(controller, model);
|
|
|
|
this.controllerFor('posts').set('currentPost', model);
|
|
|
|
if (mobileQuery.matches) {
|
|
this.controllerFor('posts').send('hideContentPreview');
|
|
}
|
|
},
|
|
|
|
shortcuts: {
|
|
'enter': 'openEditor'
|
|
},
|
|
actions: {
|
|
openEditor: function () {
|
|
this.transitionTo('editor.edit', this.get('controller.model'));
|
|
}
|
|
}
|
|
});
|
|
|
|
export default PostsPostRoute;
|