2016-08-08 11:18:21 +09:00
|
|
|
import Telescope from 'meteor/nova:lib';
|
2016-07-22 10:25:17 +09:00
|
|
|
import escapeStringRegexp from 'escape-string-regexp';
|
2016-12-12 10:24:34 +09:00
|
|
|
import { Callbacks } from 'meteor/nova:core';
|
2016-07-22 10:25:17 +09:00
|
|
|
|
2015-09-18 11:12:53 +09:00
|
|
|
function addSearchQueryParameter (parameters, terms) {
|
|
|
|
if(!!terms.query) {
|
2016-07-22 10:25:17 +09:00
|
|
|
|
|
|
|
const query = escapeStringRegexp(terms.query);
|
|
|
|
|
2016-11-15 09:02:30 +01:00
|
|
|
parameters = Telescope.utils.deepExtend(true, parameters, {
|
2016-02-17 19:39:43 +09:00
|
|
|
selector: {
|
2015-09-18 11:12:53 +09:00
|
|
|
$or: [
|
2016-07-22 10:25:17 +09:00
|
|
|
{title: {$regex: query, $options: 'i'}},
|
|
|
|
{url: {$regex: query, $options: 'i'}},
|
2016-05-07 18:09:39 +09:00
|
|
|
// note: we cannot search the body field because it's not published
|
|
|
|
// to the client. If we did, we'd get different result sets on
|
|
|
|
// client and server
|
2016-07-22 10:25:17 +09:00
|
|
|
{excerpt: {$regex: query, $options: 'i'}}
|
2015-09-18 11:12:53 +09:00
|
|
|
]
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
return parameters;
|
|
|
|
}
|
2016-12-12 10:24:34 +09:00
|
|
|
Callbacks.add("posts.parameters", addSearchQueryParameter);
|