Skip to content

Commit

Permalink
feat: #8233, search sub categories
Browse files Browse the repository at this point in the history
  • Loading branch information
barisusakli committed Sep 30, 2020
1 parent a395324 commit 54737d3
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 3 deletions.
3 changes: 2 additions & 1 deletion public/language/en-GB/search.json
Expand Up @@ -44,5 +44,6 @@
"search-preferences-saved": "Search preferences saved",
"search-preferences-cleared": "Search preferences cleared",
"show-results-as": "Show results as",
"see-more-results": "See more results (%1)"
"see-more-results": "See more results (%1)",
"search-in-category": "Search in \"%1\""
}
37 changes: 35 additions & 2 deletions public/src/app.js
Expand Up @@ -391,12 +391,34 @@ app.cacheBuster = null;
var inputEl = options.searchElements.inputEl;
var searchTimeoutId = 0;
var oldValue = inputEl.val();
var filterCategoryEl = quickSearchResults.find('.filter-category');

function updateCategoryFilterName() {
if (ajaxify.data.template.category) {
require(['translator'], function (translator) {
translator.translate('[[search:search-in-category, ' + ajaxify.data.name + ']]', function (translated) {
var name = $('<div></div>').html(translated).text();
filterCategoryEl.find('.name').text(name);
});
});
}
filterCategoryEl.toggleClass('hidden', !ajaxify.data.template.category);
}

function doSearch() {
require(['search'], function (search) {
/* eslint-disable-next-line */
options.searchOptions = Object.assign({}, searchOptions);
options.searchOptions.term = inputEl.val();
updateCategoryFilterName();

if (ajaxify.data.template.category) {
if (filterCategoryEl.find('input[type="checkbox"]').is(':checked')) {
options.searchOptions.categories = [ajaxify.data.cid];
options.searchOptions.searchChildren = true;
}
}

quickSearchResults.removeClass('hidden').find('.quick-search-results-container').html('');
quickSearchResults.find('.loading-indicator').removeClass('hidden');
$(window).trigger('action:search.quick.start', options);
Expand Down Expand Up @@ -433,6 +455,11 @@ app.cacheBuster = null;
});
}

quickSearchResults.find('.filter-category input[type="checkbox"]').on('change', function () {
inputEl.focus();
doSearch();
});

inputEl.off('keyup').on('keyup', function () {
if (searchTimeoutId) {
clearTimeout(searchTimeoutId);
Expand Down Expand Up @@ -466,7 +493,9 @@ app.cacheBuster = null;
inputEl.on('focus', function () {
oldValue = inputEl.val();
if (inputEl.val() && quickSearchResults.find('#quick-search-results').children().length) {
updateCategoryFilterName();
quickSearchResults.removeClass('hidden');
inputEl[0].setSelectionRange(0, inputEl.val().length);
}
});

Expand Down Expand Up @@ -503,8 +532,12 @@ app.cacheBuster = null;
});

function dismissSearch() {
searchFields.addClass('hidden');
searchButton.removeClass('hidden');
setTimeout(function () {
if (!searchInput.is(':focus')) {
searchFields.addClass('hidden');
searchButton.removeClass('hidden');
}
}, 200);
}

searchButton.off('click').on('click', function (e) {
Expand Down

0 comments on commit 54737d3

Please sign in to comment.