mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-05 07:10:30 +01:00
fix: users page QoL improvements
- focus on search box on page load - persist search options in query string on search
This commit is contained in:
@@ -29,6 +29,16 @@ define('forum/users', [
|
||||
searchResultCount = params && params.resultCount;
|
||||
$('#search-user').on('keyup', utils.debounce(doSearch, 250));
|
||||
$('.search select, .search input[type="checkbox"]').on('change', doSearch);
|
||||
|
||||
// Populate box with query if present
|
||||
const searchEl = document.getElementById('search-user');
|
||||
const search = new URLSearchParams(document.location.search);
|
||||
const query = search.get('query');
|
||||
if (query) {
|
||||
searchEl.value = query;
|
||||
}
|
||||
|
||||
searchEl.focus();
|
||||
};
|
||||
|
||||
function doSearch() {
|
||||
@@ -36,20 +46,25 @@ define('forum/users', [
|
||||
return;
|
||||
}
|
||||
$('[component="user/search/icon"]').removeClass('fa-search').addClass('fa-spinner fa-spin');
|
||||
const username = $('#search-user').val();
|
||||
const activeSection = getActiveSection();
|
||||
|
||||
const query = {
|
||||
section: activeSection,
|
||||
section: activeSection || 'users',
|
||||
page: 1,
|
||||
};
|
||||
|
||||
if (!username) {
|
||||
const username = $('#search-user').val();
|
||||
if (username) {
|
||||
query.query = username;
|
||||
} else {
|
||||
return loadPage(query);
|
||||
}
|
||||
|
||||
query.query = username;
|
||||
query.sortBy = getSortBy();
|
||||
const sortBy = getSortBy();
|
||||
if (sortBy) {
|
||||
query.sortBy = sortBy;
|
||||
}
|
||||
|
||||
const filters = [];
|
||||
if ($('.search .online-only').is(':checked') || (activeSection === 'online')) {
|
||||
filters.push('online');
|
||||
@@ -85,6 +100,10 @@ define('forum/users', [
|
||||
api.get('/api/users', query)
|
||||
.then(renderSearchResults)
|
||||
.catch(alerts.error);
|
||||
|
||||
// Update query string
|
||||
const search = new URLSearchParams(query);
|
||||
ajaxify.updateHistory(`users?${search.toString()}`, true);
|
||||
}
|
||||
|
||||
function renderSearchResults(data) {
|
||||
|
||||
Reference in New Issue
Block a user