mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-30 14:22:07 +03:00
35f8042d7b
no issue - adds `search` bookshelf plugin that calls out to an optional `searchQuery()` method on individual models to apply model-specific SQL conditions to queries - updated the base model's `findPage()` method to use the search plugin within `findPage` calls - added a `searchQuery` method to the `member` model that performs a basic `LIKE %query%` for both `name` and `email` columns - allowed the `?search=` parameter to pass through in the `options` object for member browse requests
19 lines
480 B
JavaScript
19 lines
480 B
JavaScript
const searchPlugin = function searchPlugin(Bookshelf) {
|
|
const Model = Bookshelf.Model.extend({
|
|
// override this on the model itself
|
|
searchQuery() {},
|
|
|
|
applySearchQuery: function applySearchQuery(options) {
|
|
if (options.search) {
|
|
this.query((qb) => {
|
|
this.searchQuery(qb, options.search);
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
Bookshelf.Model = Model;
|
|
};
|
|
|
|
module.exports = searchPlugin;
|