mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-27 22:49:56 -05:00
78a7c389b6
No issue -fail fast if an invalid post id is passed into the editor route to prevent an unnecessary network request for all posts -if post id is valid but post does not exist, transition to Content screen instead of returning an invalid model
38 lines
988 B
JavaScript
38 lines
988 B
JavaScript
import styleBody from 'ghost/mixins/style-body';
|
|
import AuthenticatedRoute from 'ghost/routes/authenticated';
|
|
|
|
var EditorRoute = AuthenticatedRoute.extend(styleBody, {
|
|
classNames: ['editor'],
|
|
|
|
model: function (params) {
|
|
var self = this,
|
|
post,
|
|
postId;
|
|
|
|
postId = Number(params.post_id);
|
|
|
|
if (!Number.isInteger(postId) || !Number.isFinite(postId) || postId <= 0) {
|
|
this.transitionTo('posts.index');
|
|
}
|
|
|
|
post = this.store.getById('post', postId);
|
|
|
|
if (post) {
|
|
return post;
|
|
}
|
|
|
|
return this.store.filter('post', { status: 'all', staticPages: 'all' }, function (post) {
|
|
return post.get('id') === postId;
|
|
}).then(function (records) {
|
|
var post = records.get('firstObject');
|
|
|
|
if (post) {
|
|
return post;
|
|
}
|
|
|
|
return self.transitionTo('posts.index');
|
|
});
|
|
}
|
|
});
|
|
|
|
export default EditorRoute;
|