diff --git a/public/src/app.js b/public/src/app.js
index 811e50d541..adcb90a907 100644
--- a/public/src/app.js
+++ b/public/src/app.js
@@ -479,7 +479,6 @@ app.cacheBuster = null;
app.enableTopicSearch = function (options) {
var quickSearchResults = options.resultEl;
var inputEl = options.inputEl;
- var template = options.template || 'partials/quick-search-results';
var searchTimeoutId = 0;
var currentVal = inputEl.val();
inputEl.off('keyup').on('keyup', function () {
@@ -496,24 +495,12 @@ app.cacheBuster = null;
return quickSearchResults.addClass('hidden');
}
require(['search'], function (search) {
- var data = {
+ search.quick({
term: inputEl.val(),
in: 'titles',
- searchOnly: 1,
- };
- $(window).trigger('action:search.quick', { data: data });
- search.api(data, function (data) {
- data.posts.forEach(function (p) {
- p.snippet = utils.escapeHTML($('
' + p.content + '
').text().slice(0, 80) + '...');
- });
- app.parseAndTranslate(template, data, function (html) {
- if (html.length) {
- html.find('.timeago').timeago();
- quickSearchResults.html(html).removeClass('hidden').show();
- } else {
- quickSearchResults.html('').addClass('hidden');
- }
- });
+ }, {
+ template: options.template,
+ resultEl: quickSearchResults,
});
});
}, 250);
diff --git a/public/src/modules/search.js b/public/src/modules/search.js
index bba0115956..a2937ff9dd 100644
--- a/public/src/modules/search.js
+++ b/public/src/modules/search.js
@@ -33,6 +33,28 @@ define('search', ['navigator', 'translator', 'storage'], function (nav, translat
});
};
+ Search.quick = function (query, options, callback) {
+ callback = callback || function () {};
+ var template = options.template || 'partials/quick-search-results';
+ $(window).trigger('action:search.quick', { data: query });
+ query.searchOnly = 1;
+ Search.api(query, function (data) {
+ data.posts.forEach(function (p) {
+ p.snippet = utils.escapeHTML($('' + p.content + '
').text().slice(0, 80) + '...');
+ });
+ app.parseAndTranslate(template, data, function (html) {
+ if (html.length) {
+ html.find('.timeago').timeago();
+ options.resultEl.html(html).removeClass('hidden').show();
+ } else {
+ options.resultEl.html('').addClass('hidden');
+ }
+ $(window).trigger('action:search.quick.complete', { });
+ callback();
+ });
+ });
+ };
+
function createQueryString(data) {
var searchIn = data.in || 'titlesposts';
var postedBy = data.by || '';