feat: quick search changes

v1.18.x
Barış Soner Uşaklı 5 years ago
parent bb1a56f0fe
commit f12d448ef5

@ -498,10 +498,7 @@ app.cacheBuster = null;
search.quick({ search.quick({
term: inputEl.val(), term: inputEl.val(),
in: 'titles', in: 'titles',
}, { }, options);
template: options.template,
resultEl: quickSearchResults,
});
}); });
}, 250); }, 250);
}); });
@ -511,7 +508,7 @@ app.cacheBuster = null;
var searchButton = $('#search-button'); var searchButton = $('#search-button');
var searchFields = $('#search-fields'); var searchFields = $('#search-fields');
var searchInput = $('#search-fields input'); var searchInput = $('#search-fields input');
var quickSearchResults = $('#quick-search-results'); var quickSearchContainer = $('#quick-search-container');
$('#search-form .advanced-search-link').off('mousedown').on('mousedown', function () { $('#search-form .advanced-search-link').off('mousedown').on('mousedown', function () {
ajaxify.go('/search'); ajaxify.go('/search');
@ -522,21 +519,21 @@ app.cacheBuster = null;
}); });
searchInput.off('blur').on('blur', dismissSearch); searchInput.off('blur').on('blur', dismissSearch);
searchInput.off('focus').on('focus', function () { searchInput.off('focus').on('focus', function () {
if (searchInput.val() && quickSearchResults.children().length) { if (searchInput.val() && quickSearchContainer.find('#quick-search-results').children().length) {
quickSearchResults.removeClass('hidden').show(); quickSearchContainer.removeClass('hidden');
} }
}); });
app.enableTopicSearch({ app.enableTopicSearch({
inputEl: searchInput, inputEl: searchInput,
resultEl: quickSearchResults, resultEl: quickSearchContainer,
}); });
function dismissSearch() { function dismissSearch() {
searchFields.addClass('hidden'); searchFields.addClass('hidden');
searchButton.removeClass('hidden'); searchButton.removeClass('hidden');
setTimeout(function () { setTimeout(function () {
quickSearchResults.addClass('hidden'); quickSearchContainer.addClass('hidden');
}, 200); }, 200);
} }

@ -39,13 +39,16 @@ define('search', ['navigator', 'translator', 'storage'], function (nav, translat
$(window).trigger('action:search.quick', { data: query }); $(window).trigger('action:search.quick', { data: query });
query.searchOnly = 1; query.searchOnly = 1;
Search.api(query, function (data) { Search.api(query, function (data) {
if (options.hideOnNoMatches && !data.posts.length) {
return options.resultEl.html('').addClass('hidden');
}
data.posts.forEach(function (p) { data.posts.forEach(function (p) {
p.snippet = utils.escapeHTML($('<div>' + p.content + '</div>').text().slice(0, 80) + '...'); p.snippet = utils.escapeHTML($('<div>' + p.content + '</div>').text().slice(0, 80) + '...');
}); });
app.parseAndTranslate(template, data, function (html) { app.parseAndTranslate(template, data, function (html) {
if (html.length) { if (html.length) {
html.find('.timeago').timeago(); html.find('.timeago').timeago();
options.resultEl.html(html).removeClass('hidden').show(); options.resultEl.html(html).removeClass('hidden');
} else { } else {
options.resultEl.html('').addClass('hidden'); options.resultEl.html('').addClass('hidden');
} }

Loading…
Cancel
Save