mirror of
https://github.com/vale981/Vulcan
synced 2025-03-09 04:16:37 -04:00
52 lines
No EOL
1.2 KiB
JavaScript
52 lines
No EOL
1.2 KiB
JavaScript
// push "search" template to primaryNav
|
|
primaryNav.push('search');
|
|
|
|
Searches = new Meteor.Collection("searches", {
|
|
schema: new SimpleSchema({
|
|
_id: {
|
|
type: String,
|
|
optional: true
|
|
},
|
|
timestamp: {
|
|
type: Date
|
|
},
|
|
keyword: {
|
|
type: String
|
|
}
|
|
})
|
|
});
|
|
|
|
Searches.allow({
|
|
update: isAdminById
|
|
, remove: isAdminById
|
|
});
|
|
|
|
// XXX
|
|
// TODO: find a way to make the package use the same isAdminById as the rest of the app
|
|
isAdminById=function(userId){
|
|
var user = Meteor.users.findOne(userId);
|
|
return !!(user && isAdmin(user));
|
|
};
|
|
|
|
|
|
// search post list parameters
|
|
viewParameters.search = function (terms, baseParameters) {
|
|
// if query is empty, just return parameters that will result in an empty collection
|
|
if(typeof terms.query == 'undefined' || !terms.query)
|
|
return {find:{_id: 0}}
|
|
|
|
// log current search in the db
|
|
if(Meteor.isServer)
|
|
logSearch(terms.query);
|
|
|
|
var parameters = deepExtend(true, baseParameters, {
|
|
find: {
|
|
$or: [
|
|
{title: {$regex: terms.query, $options: 'i'}},
|
|
{url: {$regex: terms.query, $options: 'i'}},
|
|
{body: {$regex: terms.query, $options: 'i'}}
|
|
]
|
|
}
|
|
});
|
|
return parameters;
|
|
} |