39 lines
959 B
JavaScript
39 lines
959 B
JavaScript
/**
|
|
This component helps with Searching
|
|
|
|
@class Search
|
|
@namespace Discourse
|
|
@module Discourse
|
|
**/
|
|
Discourse.Search = {
|
|
|
|
/**
|
|
Search for a term, with an optional filter.
|
|
|
|
@method forTerm
|
|
@param {String} term The term to search for
|
|
@param {Object} opts Options for searching
|
|
@param {String} opts.typeFilter Filter our results to one type only
|
|
@param {Ember.Object} opts.searchContext data to help searching within a context (say, a category or user)
|
|
@return {Promise} a promise that resolves the search results
|
|
**/
|
|
forTerm: function(term, opts) {
|
|
if (!opts) opts = {};
|
|
|
|
// Only include the data we have
|
|
var data = { term: term };
|
|
if (opts.typeFilter) data.type_filter = opts.typeFilter;
|
|
|
|
if (opts.searchContext) {
|
|
data.search_context = {
|
|
type: opts.searchContext.type,
|
|
id: opts.searchContext.id
|
|
};
|
|
}
|
|
|
|
return Discourse.ajax('/search', { data: data });
|
|
}
|
|
|
|
};
|
|
|