From bb1a56f0fea657244646410b359168a70071f760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Wed, 27 May 2020 14:37:34 -0400 Subject: [PATCH] feat: move quick search into search module so it can be used directly --- public/src/app.js | 21 ++++----------------- public/src/modules/search.js | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 17 deletions(-) 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 || '';