🎨 Improved pagination misusage error

refs https://github.com/TryGhost/Team/issues/41, refs https://github.com/TryGhost/gscan/issues/85

- if you are using the pagination helper not inside a resource context, you will receive an error
- improve error message, because it was not clear what happened
- downgrade error level to normal, because it's not a critical error from Ghost's perspective, from user perspective it is
- added help docs link and added a callout to our docs
This commit is contained in:
kirrg001 2017-11-28 13:15:05 +01:00 committed by Kevin Ansfield
parent 2f23cd32bb
commit e8075262eb
3 changed files with 7 additions and 5 deletions

View File

@ -12,7 +12,9 @@ var proxy = require('./proxy'),
pagination = function (options) { pagination = function (options) {
if (!_.isObject(this.pagination) || _.isFunction(this.pagination)) { if (!_.isObject(this.pagination) || _.isFunction(this.pagination)) {
throw new errors.IncorrectUsageError({ throw new errors.IncorrectUsageError({
message: i18n.t('warnings.helpers.pagination.invalidData') level: 'normal',
message: i18n.t('warnings.helpers.pagination.invalidData'),
help: 'https://themes.ghost.org/docs/pagination'
}); });
} }

View File

@ -524,7 +524,7 @@
"isDeprecated": "Warning: pageUrl is deprecated, please use page_url instead\nThe helper pageUrl has been replaced with page_url in Ghost 0.4.2, and will be removed entirely in Ghost 0.6\nIn your theme's pagination.hbs file, pageUrl should be renamed to page_url" "isDeprecated": "Warning: pageUrl is deprecated, please use page_url instead\nThe helper pageUrl has been replaced with page_url in Ghost 0.4.2, and will be removed entirely in Ghost 0.6\nIn your theme's pagination.hbs file, pageUrl should be renamed to page_url"
}, },
"pagination": { "pagination": {
"invalidData": "pagination data is not an object or is a function", "invalidData": "The \\{\\{pagination\\}\\} helper was used outside of a paginated context. See https://themes.ghost.org/docs/pagination.",
"valuesMustBeDefined": "All values must be defined for page, pages, limit and total", "valuesMustBeDefined": "All values must be defined for page, pages, limit and total",
"nextPrevValuesMustBeNumeric": "Invalid value, Next/Prev must be a number", "nextPrevValuesMustBeNumeric": "Invalid value, Next/Prev must be a number",
"valuesMustBeNumeric": "Invalid value, check page, pages, limit and total are numbers" "valuesMustBeNumeric": "Invalid value, check page, pages, limit and total are numbers"

View File

@ -29,11 +29,11 @@ describe('{{pagination}} helper', function () {
return function () { return function () {
helpers.pagination.call(data); helpers.pagination.call(data);
}; };
}; }, expectedMessage = 'The {{pagination}} helper was used outside of a paginated context. See https://themes.ghost.org/docs/pagination.';
runHelper('not an object').should.throwError('pagination data is not an object or is a function'); runHelper('not an object').should.throwError(expectedMessage);
runHelper(function () { runHelper(function () {
}).should.throwError('pagination data is not an object or is a function'); }).should.throwError(expectedMessage);
}); });
it('can render single page with no pagination necessary', function () { it('can render single page with no pagination necessary', function () {