Browse Source

Forbid jQuery `is` and fix issues (#30016)

Tested all functionality.

---------

Co-authored-by: Yarden Shoham <git@yardenshoham.com>
tags/v1.22.0-rc0
silverwind 2 months ago
parent
commit
0a2f973de9
No account linked to committer's email address

+ 2
- 2
.eslintrc.yaml View File

@@ -303,7 +303,7 @@ rules:
jquery/no-in-array: [2]
jquery/no-is-array: [2]
jquery/no-is-function: [2]
jquery/no-is: [0]
jquery/no-is: [2]
jquery/no-load: [2]
jquery/no-map: [2]
jquery/no-merge: [2]
@@ -440,7 +440,7 @@ rules:
no-jquery/no-is-numeric: [2]
no-jquery/no-is-plain-object: [2]
no-jquery/no-is-window: [2]
no-jquery/no-is: [0]
no-jquery/no-is: [2]
no-jquery/no-jquery-constructor: [0]
no-jquery/no-live: [2]
no-jquery/no-load-shorthand: [2]

+ 2
- 2
web_src/js/features/admin/common.js View File

@@ -84,7 +84,7 @@ export function initAdminCommon() {
hideElem($('.oauth2_use_custom_url_field'));
$('.oauth2_use_custom_url_field input[required]').removeAttr('required');

if ($('#oauth2_use_custom_url').is(':checked')) {
if (document.getElementById('oauth2_use_custom_url')?.checked) {
for (const custom of ['token_url', 'auth_url', 'profile_url', 'email_url', 'tenant']) {
if (applyDefaultValues) {
$(`#oauth2_${custom}`).val($(`#${provider}_${custom}`).val());
@@ -98,7 +98,7 @@ export function initAdminCommon() {
}

function onEnableLdapGroupsChange() {
toggleElem($('#ldap-group-options'), $('.js-ldap-group-toggle').is(':checked'));
toggleElem($('#ldap-group-options'), $('.js-ldap-group-toggle')[0].checked);
}

// New authentication

+ 1
- 1
web_src/js/features/common-global.js View File

@@ -373,7 +373,7 @@ function initGlobalShowModal() {

if (attrTargetAttr) {
$attrTarget[0][attrTargetAttr] = attrib.value;
} else if ($attrTarget.is('input') || $attrTarget.is('textarea')) {
} else if ($attrTarget[0].matches('input, textarea')) {
$attrTarget.val(attrib.value); // FIXME: add more supports like checkbox
} else {
$attrTarget.text(attrib.value); // FIXME: it should be more strict here, only handle div/span/p

+ 3
- 3
web_src/js/features/repo-legacy.js View File

@@ -139,7 +139,7 @@ export function initRepoCommentForm() {

hasUpdateAction = $listMenu.data('action') === 'update'; // Update the var

const $clickedItem = $(this);
const clickedItem = this; // eslint-disable-line unicorn/no-this-assignment
const scope = $(this).attr('data-scope');

$(this).parent().find('.item').each(function () {
@@ -148,10 +148,10 @@ export function initRepoCommentForm() {
if ($(this).attr('data-scope') !== scope) {
return true;
}
if (!$(this).is($clickedItem) && !$(this).hasClass('checked')) {
if (this !== clickedItem && !$(this).hasClass('checked')) {
return true;
}
} else if (!$(this).is($clickedItem)) {
} else if (this !== clickedItem) {
// Toggle for other labels
return true;
}

+ 1
- 1
web_src/js/modules/fomantic/dropdown.js View File

@@ -199,7 +199,7 @@ function attachDomEvents($dropdown, $focusable, $menu) {
if (!$item) $item = $menu.find('> .item.selected'); // when dropdown filters items by input, there is no "value", so query the "selected" item
// if the selected item is clickable, then trigger the click event.
// we can not click any item without check, because Fomantic code might also handle the Enter event. that would result in double click.
if ($item && ($item.is('a') || $item.hasClass('js-aria-clickable'))) $item[0].click();
if ($item && ($item[0].matches('a') || $item.hasClass('js-aria-clickable'))) $item[0].click();
}
});


Loading…
Cancel
Save