From 6068537f8acc9cb410cd72b2c5b109292c2082ec Mon Sep 17 00:00:00 2001 From: silverwind Date: Wed, 21 Feb 2024 01:05:17 +0100 Subject: [PATCH] Remove jQuery .map() and enable eslint rules for it (#29272) - Use case in `repo-commit` was tested until the point where the POST request was sent with the same payload. - Use case in `repo-legacy` was tested completely with comment editing. - `jquery/no-fade` was disabled as well to stay in sync with `no-jquery/no-fade`, had no violations. (cherry picked from commit a5c570c1e02302212a5d8f7cf7d91f24ab0578d5) --- .eslintrc.yaml | 6 +++--- web_src/js/features/repo-commit.js | 18 ++++++++---------- web_src/js/features/repo-legacy.js | 9 +++------ 3 files changed, 14 insertions(+), 19 deletions(-) diff --git a/.eslintrc.yaml b/.eslintrc.yaml index ab9c21884..e9991c02b 100644 --- a/.eslintrc.yaml +++ b/.eslintrc.yaml @@ -296,7 +296,7 @@ rules: jquery/no-delegate: [2] jquery/no-each: [0] jquery/no-extend: [2] - jquery/no-fade: [0] + jquery/no-fade: [2] jquery/no-filter: [0] jquery/no-find: [0] jquery/no-global-eval: [2] @@ -309,7 +309,7 @@ rules: jquery/no-is-function: [2] jquery/no-is: [0] jquery/no-load: [2] - jquery/no-map: [0] + jquery/no-map: [2] jquery/no-merge: [2] jquery/no-param: [2] jquery/no-parent: [0] @@ -451,7 +451,7 @@ rules: no-jquery/no-load: [2] no-jquery/no-map-collection: [0] no-jquery/no-map-util: [2] - no-jquery/no-map: [0] + no-jquery/no-map: [2] no-jquery/no-merge: [2] no-jquery/no-node-name: [2] no-jquery/no-noop: [2] diff --git a/web_src/js/features/repo-commit.js b/web_src/js/features/repo-commit.js index 76b34d207..fc70ba41e 100644 --- a/web_src/js/features/repo-commit.js +++ b/web_src/js/features/repo-commit.js @@ -14,17 +14,15 @@ export function initRepoEllipsisButton() { } export function initRepoCommitLastCommitLoader() { + const notReadyEls = document.querySelectorAll('table#repo-files-table tr.notready'); + if (!notReadyEls.length) return; + const entryMap = {}; - - const entries = $('table#repo-files-table tr.notready') - .map((_, v) => { - entryMap[$(v).attr('data-entryname')] = $(v); - return $(v).attr('data-entryname'); - }) - .get(); - - if (entries.length === 0) { - return; + const entries = []; + for (const el of notReadyEls) { + const entryname = el.getAttribute('data-entryname'); + entryMap[entryname] = $(el); + entries.push(entryname); } const lastCommitLoaderURL = $('table#repo-files-table').data('lastCommitLoaderUrl'); diff --git a/web_src/js/features/repo-legacy.js b/web_src/js/features/repo-legacy.js index ce1bff11a..10ad83679 100644 --- a/web_src/js/features/repo-legacy.js +++ b/web_src/js/features/repo-legacy.js @@ -398,17 +398,14 @@ async function onEditContent(event) { } }; - const saveAndRefresh = (dz, $dropzone) => { + const saveAndRefresh = (dz) => { showElem($renderContent); hideElem($editContentZone); - const $attachments = $dropzone.find('.files').find('[name=files]').map(function () { - return $(this).val(); - }).get(); $.post($editContentZone.attr('data-update-url'), { _csrf: csrfToken, content: comboMarkdownEditor.value(), context: $editContentZone.attr('data-context'), - files: $attachments, + files: dz.files.map((file) => file.uuid), }, (data) => { if (!data.content) { $renderContent.html($('#no-content').html()); @@ -452,7 +449,7 @@ async function onEditContent(event) { }); $editContentZone.find('.save.button').on('click', (e) => { e.preventDefault(); - saveAndRefresh(dz, $dropzone); + saveAndRefresh(dz); }); } else { comboMarkdownEditor = getComboMarkdownEditor($editContentZone.find('.combo-markdown-editor'));