Forbid jQuery .prop and fix related issues (#29832)

The issue checkbox code received a few more cleanups and I specifically
tested it. The other changes are trivial. Also, I checked the cases for
how many elements match the jQuery selection to determine querySelector
vs. querySelectorAll.

---------

Co-authored-by: Giteabot <teabot@gitea.io>
(cherry picked from commit 21fe512aac42c9ce3440b8eaae6b2cb2116a0e50)
This commit is contained in:
silverwind 2024-03-16 16:08:10 +01:00 committed by Earl Warren
parent c1b6182625
commit 18256b024e
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00
6 changed files with 37 additions and 27 deletions

View file

@ -14,7 +14,7 @@ function updateExclusiveLabelEdit(form) {
if (isExclusiveScopeName($nameInput.val())) {
$exclusiveField.removeClass('muted');
$exclusiveField.removeAttr('aria-disabled');
if ($exclusiveCheckbox.prop('checked') && $exclusiveCheckbox.data('exclusive-warn')) {
if ($exclusiveCheckbox[0].checked && $exclusiveCheckbox.data('exclusive-warn')) {
$exclusiveWarning.removeClass('gt-hidden');
} else {
$exclusiveWarning.addClass('gt-hidden');
@ -50,10 +50,10 @@ export function initCompLabelEdit(selector) {
$nameInput.val($(this).data('title'));
const $isArchivedCheckbox = $('.edit-label .label-is-archived-input');
$isArchivedCheckbox.prop('checked', this.hasAttribute('data-is-archived'));
$isArchivedCheckbox[0].checked = this.hasAttribute('data-is-archived');
const $exclusiveCheckbox = $('.edit-label .label-exclusive-input');
$exclusiveCheckbox.prop('checked', this.hasAttribute('data-exclusive'));
$exclusiveCheckbox[0].checked = this.hasAttribute('data-exclusive');
// Warn when label was previously not exclusive and used in issues
$exclusiveCheckbox.data('exclusive-warn',
$(this).data('num-issues') > 0 &&