mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-14 18:52:05 +03:00
Merge pull request #5180 from ErisDS/issue-5177
Fix previous and next helpers
This commit is contained in:
commit
599af34ba8
@ -8,9 +8,10 @@ var api = require('../api'),
|
||||
Promise = require('bluebird'),
|
||||
fetch, prevNext;
|
||||
|
||||
fetch = function (options) {
|
||||
return api.posts.read(options).then(function (result) {
|
||||
fetch = function (apiOptions, options) {
|
||||
return api.posts.read(apiOptions).then(function (result) {
|
||||
var related = result.posts[0];
|
||||
|
||||
if (related.previous) {
|
||||
return options.fn(related.previous);
|
||||
} else if (related.next) {
|
||||
@ -26,10 +27,14 @@ fetch = function (options) {
|
||||
|
||||
prevNext = function (options) {
|
||||
options = options || {};
|
||||
options.include = options.name === 'prev_post' ? 'previous' : 'next';
|
||||
|
||||
var apiOptions = {
|
||||
include: options.name === 'prev_post' ? 'previous' : 'next'
|
||||
};
|
||||
|
||||
if (schema.isPost(this)) {
|
||||
options.slug = this.slug;
|
||||
return fetch(options);
|
||||
apiOptions.slug = this.slug;
|
||||
return fetch(apiOptions, options);
|
||||
} else {
|
||||
return Promise.resolve(options.inverse(this));
|
||||
}
|
||||
|
@ -138,6 +138,7 @@ ghostBookshelf.Model = ghostBookshelf.Model.extend({
|
||||
var attrs = _.extend({}, this.attributes),
|
||||
self = this;
|
||||
options = options || {};
|
||||
options = _.pick(options, ['shallow', 'baseKey', 'include', 'context']);
|
||||
|
||||
if (options && options.shallow) {
|
||||
return attrs;
|
||||
@ -150,9 +151,9 @@ ghostBookshelf.Model = ghostBookshelf.Model.extend({
|
||||
_.each(this.relations, function (relation, key) {
|
||||
if (key.substring(0, 7) !== '_pivot_') {
|
||||
// if include is set, expand to full object
|
||||
var fullKey = _.isEmpty(options.name) ? key : options.name + '.' + key;
|
||||
var fullKey = _.isEmpty(options.baseKey) ? key : options.baseKey + '.' + key;
|
||||
if (_.contains(self.include, fullKey)) {
|
||||
attrs[key] = relation.toJSON(_.extend({}, options, {name: fullKey, include: self.include}));
|
||||
attrs[key] = relation.toJSON(_.extend({}, options, {baseKey: fullKey, include: self.include}));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user