@@ -321,7 +321,7 @@ rules: | |||
jquery/no-sizzle: [2] | |||
jquery/no-slide: [2] | |||
jquery/no-submit: [2] | |||
jquery/no-text: [0] | |||
jquery/no-text: [2] | |||
jquery/no-toggle: [2] | |||
jquery/no-trigger: [0] | |||
jquery/no-trim: [2] | |||
@@ -474,7 +474,7 @@ rules: | |||
no-jquery/no-slide: [2] | |||
no-jquery/no-sub: [2] | |||
no-jquery/no-support: [2] | |||
no-jquery/no-text: [0] | |||
no-jquery/no-text: [2] | |||
no-jquery/no-trigger: [0] | |||
no-jquery/no-trim: [2] | |||
no-jquery/no-type: [2] |
@@ -304,10 +304,10 @@ export function initGlobalLinkActions() { | |||
} | |||
const $dialog = $(`.delete.modal${filter}`); | |||
$dialog.find('.name').text($this.data('name')); | |||
$dialog.find('.name')[0].textContent = $this.data('name'); | |||
for (const [key, value] of Object.entries(dataArray)) { | |||
if (key && key.startsWith('data')) { | |||
$dialog.find(`.${key}`).text(value); | |||
$dialog.find(`.${key}`)[0].textContent = value; | |||
} | |||
} | |||
@@ -374,7 +374,7 @@ function initGlobalShowModal() { | |||
} 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 | |||
$attrTarget[0].textContent = attrib.value; // FIXME: it should be more strict here, only handle div/span/p | |||
} | |||
} | |||
@@ -92,7 +92,7 @@ export function initImageDiff() { | |||
return loadElem(img, info.path); | |||
})); | |||
// only the first images is associated with $boundsInfo | |||
if (!success) info.$boundsInfo.text('(image error)'); | |||
if (!success) info.$boundsInfo[0].textContent = '(image error)'; | |||
if (info.mime === 'image/svg+xml') { | |||
const resp = await GET(info.path); | |||
const text = await resp.text(); |
@@ -47,16 +47,13 @@ async function receiveUpdateCount(event) { | |||
export function initNotificationCount() { | |||
const $notificationCount = $('.notification_count'); | |||
if (!$notificationCount.length) { | |||
return; | |||
} | |||
if (!$notificationCount.length) return; | |||
let usingPeriodicPoller = false; | |||
const startPeriodicPoller = (timeout, lastCount) => { | |||
if (timeout <= 0 || !Number.isFinite(timeout)) return; | |||
usingPeriodicPoller = true; | |||
lastCount = lastCount ?? $notificationCount.text(); | |||
lastCount = lastCount ?? getCurrentCount(); | |||
setTimeout(async () => { | |||
await updateNotificationCountWithCallback(startPeriodicPoller, timeout, lastCount); | |||
}, timeout); | |||
@@ -120,8 +117,12 @@ export function initNotificationCount() { | |||
startPeriodicPoller(notificationSettings.MinTimeout); | |||
} | |||
function getCurrentCount() { | |||
return document.querySelector('.notification_count').textContent; | |||
} | |||
async function updateNotificationCountWithCallback(callback, timeout, lastCount) { | |||
const currentCount = $('.notification_count').text(); | |||
const currentCount = getCurrentCount(); | |||
if (lastCount !== currentCount) { | |||
callback(notificationSettings.MinTimeout, currentCount); | |||
return; |
@@ -70,7 +70,7 @@ export function initRepoEditor() { | |||
hideElem('.quick-pull-branch-name'); | |||
document.querySelector('.quick-pull-branch-name input').required = false; | |||
} | |||
$('#commit-button').text(this.getAttribute('button_text')); | |||
$('#commit-button')[0].textContent = this.getAttribute('button_text'); | |||
}); | |||
const joinTreePath = ($fileNameEl) => { | |||
@@ -78,9 +78,9 @@ export function initRepoEditor() { | |||
$('.breadcrumb span.section').each(function () { | |||
const $element = $(this); | |||
if ($element.find('a').length) { | |||
parts.push($element.find('a').text()); | |||
parts.push($element.find('a')[0].textContent); | |||
} else { | |||
parts.push($element.text()); | |||
parts.push($element[0].textContent); | |||
} | |||
}); | |||
if ($fileNameEl.val()) parts.push($fileNameEl.val()); | |||
@@ -116,7 +116,7 @@ export function initRepoEditor() { | |||
if (e.code === 'Backspace' && getCursorPosition($(this)) === 0 && $section.length > 0) { | |||
e.preventDefault(); | |||
const $divider = $('.breadcrumb .breadcrumb-divider'); | |||
const value = $section.last().find('a').text(); | |||
const value = $section.last().find('a')[0].textContent; | |||
$(this).val(value + $(this).val()); | |||
this.setSelectionRange(value.length, value.length); | |||
$section.last().remove(); |
@@ -183,7 +183,7 @@ export function initRepoIssueCommentEdit() { | |||
$(document).on('click', '.quote-reply', async function (event) { | |||
event.preventDefault(); | |||
const target = $(this).data('target'); | |||
const quote = $(`#${target}`).text().replace(/\n/g, '\n> '); | |||
const quote = $(`#${target}`)[0].textContent.replace(/\n/g, '\n> '); | |||
const content = `> ${quote}\n\n`; | |||
let editor; | |||
if ($(this).hasClass('quote-reply-diff')) { |
@@ -281,7 +281,7 @@ export function initRepoPullRequestUpdate() { | |||
if (url) { | |||
const buttonText = pullUpdateButton.querySelector('.button-text'); | |||
if (buttonText) { | |||
buttonText.textContent = $choice.text(); | |||
buttonText.textContent = $choice[0].textContent; | |||
} | |||
pullUpdateButton.setAttribute('data-do', url); | |||
} | |||
@@ -566,7 +566,7 @@ export function initRepoIssueReferenceIssue() { | |||
// Reference issue | |||
$(document).on('click', '.reference-issue', function (event) { | |||
const $this = $(this); | |||
const content = $(`#${$this.data('target')}`).text(); | |||
const content = $(`#${$this.data('target')}`)[0].textContent; | |||
const poster = $this.data('poster-username'); | |||
const reference = toAbsoluteUrl($this.data('reference')); | |||
const $modal = $($this.data('modal')); | |||
@@ -603,8 +603,7 @@ export function initRepoIssueWipToggle() { | |||
async function pullrequest_targetbranch_change(update_url) { | |||
const targetBranch = $('#pull-target-branch').data('branch'); | |||
const $branchTarget = $('#branch_target'); | |||
if (targetBranch === $branchTarget.text()) { | |||
if (targetBranch === $('#branch_target')[0].textContent) { | |||
window.location.reload(); | |||
return false; | |||
} | |||
@@ -640,8 +639,9 @@ export function initRepoIssueTitleEdit() { | |||
$('#cancel-edit-title').on('click', editTitleToggle); | |||
$('#save-edit-title').on('click', editTitleToggle).on('click', async function () { | |||
const pullrequest_target_update_url = this.getAttribute('data-target-update-url'); | |||
if (!$editInput.val().length || $editInput.val() === $issueTitle.text()) { | |||
$editInput.val($issueTitle.text()); | |||
const titleText = $issueTitle[0].textContent; | |||
if (!$editInput.val().length || $editInput.val() === titleText) { | |||
$editInput.val(titleText); | |||
await pullrequest_targetbranch_change(pullrequest_target_update_url); | |||
} else { | |||
try { | |||
@@ -650,7 +650,7 @@ export function initRepoIssueTitleEdit() { | |||
const response = await POST(this.getAttribute('data-update-url'), {data: params}); | |||
const data = await response.json(); | |||
$editInput.val(data.title); | |||
$issueTitle.text(data.title); | |||
$issueTitle[0].textContent = data.title; | |||
if (pullrequest_target_update_url) { | |||
await pullrequest_targetbranch_change(pullrequest_target_update_url); // it will reload the window | |||
} else { |
@@ -64,7 +64,7 @@ export function initRepoCommentForm() { | |||
const editMode = $('#editing_mode').val(); | |||
$($(this).data('id-selector')).val(selectedValue); | |||
if ($isNewIssue) { | |||
$selectBranch.find('.ui .branch-name').text($(this).data('name')); | |||
$selectBranch.find('.ui .branch-name')[0].textContent = $(this).data('name'); | |||
return; | |||
} | |||
@@ -79,7 +79,7 @@ export function initRepoCommentForm() { | |||
console.error(error); | |||
} | |||
} else if (editMode === '') { | |||
$selectBranch.find('.ui .branch-name').text(selectedValue); | |||
$selectBranch.find('.ui .branch-name')[0].textContent = selectedValue; | |||
} | |||
}); | |||
$selectBranch.find('.reference.column').on('click', function () { | |||
@@ -275,7 +275,7 @@ export function initRepoCommentForm() { | |||
$list.find('.selected').html(` | |||
<a class="item muted sidebar-item-link" href=${$(this).data('href')}> | |||
${icon} | |||
${htmlEscape($(this).text())} | |||
${htmlEscape(this.textContent)} | |||
</a> | |||
`); | |||
@@ -22,12 +22,12 @@ export function initRepoSettingsCollaboration() { | |||
data.append('mode', value); | |||
await POST(el.getAttribute('data-url'), {data}); | |||
} catch { | |||
$text.text('(error)'); // prevent from misleading users when error occurs | |||
$text[0].textContent = '(error)'; // prevent from misleading users when error occurs | |||
el.setAttribute('data-last-value', lastValue); | |||
} | |||
}, | |||
onChange(_value, text, _$choice) { | |||
$text.text(text); // update the text when using keyboard navigating | |||
$text[0].textContent = text; // update the text when using keyboard navigating | |||
}, | |||
onHide() { | |||
// set to the really selected value, defer to next tick to make sure `action` has finished its work because the calling order might be onHide -> action | |||
@@ -36,7 +36,7 @@ export function initRepoSettingsCollaboration() { | |||
if ($item) { | |||
$dropdown.dropdown('set selected', el.getAttribute('data-last-value')); | |||
} else { | |||
$text.text('(none)'); // prevent from misleading users when the access mode is undefined | |||
$text[0].textContent = '(none)'; // prevent from misleading users when the access mode is undefined | |||
} | |||
}, 0); | |||
}, |