From eb5eca6edac955444a526a850fa2df2b5b993b21 Mon Sep 17 00:00:00 2001 From: Hannah Wolfe Date: Wed, 22 Apr 2015 19:56:56 +0100 Subject: [PATCH] Don't pass helper options to API for next/prev fixes #5177 - this combined with a change passing options through to toJSON results in a really flukey bug with next/prev where the name option from the helper clashes with a name option inside of toJSON --- core/server/helpers/prev_next.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/core/server/helpers/prev_next.js b/core/server/helpers/prev_next.js index 8798b82747..6ba4d7e8ca 100644 --- a/core/server/helpers/prev_next.js +++ b/core/server/helpers/prev_next.js @@ -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)); }