Remove jQuery from the user search form in admin page (#29151)
- Switched to plain JavaScript - Tested the form and it works as before --------- Signed-off-by: Yarden Shoham <git@yardenshoham.com> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> (cherry picked from commit a8748eedae3518550bd43fd592d206df2bea6bef) Conflicts: web_src/js/features/admin/users.js prefer Gitea version and discard jQuery specific fixes from Forbid jQuery `.prop` and fix related issues (#29832)
This commit is contained in:
parent
459b1b20fe
commit
d8fa9b1580
|
@ -1,34 +1,39 @@
|
||||||
import $ from 'jquery';
|
|
||||||
|
|
||||||
export function initAdminUserListSearchForm() {
|
export function initAdminUserListSearchForm() {
|
||||||
const searchForm = window.config.pageData.adminUserListSearchForm;
|
const searchForm = window.config.pageData.adminUserListSearchForm;
|
||||||
if (!searchForm) return;
|
if (!searchForm) return;
|
||||||
|
|
||||||
const $form = $('#user-list-search-form');
|
const form = document.querySelector('#user-list-search-form');
|
||||||
if (!$form.length) return;
|
if (!form) return;
|
||||||
|
|
||||||
$form.find(`button[name=sort][value=${searchForm.SortType}]`).addClass('active');
|
for (const button of form.querySelectorAll(`button[name=sort][value="${searchForm.SortType}"]`)) {
|
||||||
|
button.classList.add('active');
|
||||||
|
}
|
||||||
|
|
||||||
if (searchForm.StatusFilterMap) {
|
if (searchForm.StatusFilterMap) {
|
||||||
for (const [k, v] of Object.entries(searchForm.StatusFilterMap)) {
|
for (const [k, v] of Object.entries(searchForm.StatusFilterMap)) {
|
||||||
if (!v) continue;
|
if (!v) continue;
|
||||||
$form.find(`input[name="status_filter[${k}]"][value=${v}]`).checked = true;
|
for (const input of form.querySelectorAll(`input[name="status_filter[${k}]"][value="${v}"]`)) {
|
||||||
|
input.checked = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$form.find(`input[type=radio]`).on('click', () => {
|
for (const radio of form.querySelectorAll('input[type=radio]')) {
|
||||||
$form.trigger('submit');
|
radio.addEventListener('click', () => {
|
||||||
return false;
|
form.submit();
|
||||||
});
|
|
||||||
|
|
||||||
$form.find('.j-reset-status-filter').on('click', () => {
|
|
||||||
$form.find(`input[type=radio]`).each((_, e) => {
|
|
||||||
const $e = $(e);
|
|
||||||
if ($e.attr('name').startsWith('status_filter[')) {
|
|
||||||
$e.checked = false;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
$form.trigger('submit');
|
}
|
||||||
return false;
|
|
||||||
});
|
const resetButtons = form.querySelectorAll('.j-reset-status-filter');
|
||||||
|
for (const button of resetButtons) {
|
||||||
|
button.addEventListener('click', (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
for (const input of form.querySelectorAll('input[type=radio]')) {
|
||||||
|
if (input.name.startsWith('status_filter[')) {
|
||||||
|
input.checked = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
form.submit();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue