feat: move quick search into search module

so it can be used directly
v1.18.x
Barış Soner Uşaklı 5 years ago
parent 47d73a2ab4
commit bb1a56f0fe

@ -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($('<div>' + p.content + '</div>').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);

@ -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($('<div>' + p.content + '</div>').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 || '';

Loading…
Cancel
Save