mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-04 21:15:55 +01:00
fix: closes #11673, topic search for harmony
harmony uses dropdown for search persona and older themes used a hidden input element in the navbar
This commit is contained in:
@@ -84,7 +84,10 @@ define('forum/topic', [
|
||||
require(['search'], function (search) {
|
||||
mousetrap.bind(['command+f', 'ctrl+f'], function (e) {
|
||||
e.preventDefault();
|
||||
const form = $('[component="navbar"] [component="search/form"]');
|
||||
let form = $('[component="navbar"] [component="search/form"]');
|
||||
if (!form.length) { // harmony
|
||||
form = $('[component="sidebar/right"] [component="search/form"]');
|
||||
}
|
||||
form.find('[component="search/fields"] input[name="query"]').val('in:topic-' + ajaxify.data.tid + ' ');
|
||||
search.showAndFocusInput(form);
|
||||
});
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
'use strict';
|
||||
|
||||
define('search', ['translator', 'storage', 'hooks', 'alerts'], function (translator, storage, hooks, alerts) {
|
||||
define('search', [
|
||||
'translator', 'storage', 'hooks', 'alerts', 'bootstrap',
|
||||
], function (translator, storage, hooks, alerts, bootstrap) {
|
||||
const Search = {
|
||||
current: {},
|
||||
};
|
||||
@@ -225,9 +227,18 @@ define('search', ['translator', 'storage', 'hooks', 'alerts'], function (transla
|
||||
};
|
||||
|
||||
Search.showAndFocusInput = function (form) {
|
||||
form.find('[component="search/fields"]').removeClass('hidden');
|
||||
form.find('[component="search/button"]').addClass('hidden');
|
||||
form.find('[component="search/fields"] input[name="query"]').trigger('focus');
|
||||
const parentDropdown = form.parents('.dropdown-menu');
|
||||
if (parentDropdown.length) { // handle if form is inside a dropdown aka harmony
|
||||
const toggle = parentDropdown.siblings('[data-bs-toggle]');
|
||||
const dropdownEl = bootstrap.Dropdown.getOrCreateInstance(toggle[0]);
|
||||
if (dropdownEl) {
|
||||
dropdownEl.show();
|
||||
}
|
||||
} else { // persona and others
|
||||
form.find('[component="search/fields"]').removeClass('hidden');
|
||||
form.find('[component="search/button"]').addClass('hidden');
|
||||
form.find('[component="search/fields"] input[name="query"]').trigger('focus');
|
||||
}
|
||||
};
|
||||
|
||||
Search.query = function (data, callback) {
|
||||
|
||||
Reference in New Issue
Block a user