From f77a7de620209728fe4e0ae3b42f1c054764b3f5 Mon Sep 17 00:00:00 2001 From: Yarden Shoham Date: Sat, 17 Feb 2024 18:29:31 +0000 Subject: [PATCH 1/5] Remove jQuery from the repo migration form - Switched to plain JavaScript - Tested the repo migration form functionality and it works as before Signed-off-by: Yarden Shoham --- web_src/js/features/repo-migration.js | 80 +++++++++++++++------------ 1 file changed, 45 insertions(+), 35 deletions(-) diff --git a/web_src/js/features/repo-migration.js b/web_src/js/features/repo-migration.js index 3bd0e6d72c5b..36eca7c755be 100644 --- a/web_src/js/features/repo-migration.js +++ b/web_src/js/features/repo-migration.js @@ -1,63 +1,73 @@ -import $ from 'jquery'; import {hideElem, showElem, toggleElem} from '../utils/dom.js'; -const $service = $('#service_type'); -const $user = $('#auth_username'); -const $pass = $('#auth_password'); -const $token = $('#auth_token'); -const $mirror = $('#mirror'); -const $lfs = $('#lfs'); -const $lfsSettings = $('#lfs_settings'); -const $lfsEndpoint = $('#lfs_endpoint'); -const $items = $('#migrate_items').find('input[type=checkbox]'); +const service = document.getElementById('service_type'); +const user = document.getElementById('auth_username'); +const pass = document.getElementById('auth_password'); +const token = document.getElementById('auth_token'); +const mirror = document.getElementById('mirror'); +const lfs = document.getElementById('lfs'); +const lfsSettings = document.getElementById('lfs_settings'); +const lfsEndpoint = document.getElementById('lfs_endpoint'); +const items = document.querySelectorAll('#migrate_items input[type=checkbox]'); export function initRepoMigration() { checkAuth(); setLFSSettingsVisibility(); - $user.on('input', () => {checkItems(false)}); - $pass.on('input', () => {checkItems(false)}); - $token.on('input', () => {checkItems(true)}); - $mirror.on('change', () => {checkItems(true)}); - $('#lfs_settings_show').on('click', () => { showElem($lfsEndpoint); return false }); - $lfs.on('change', setLFSSettingsVisibility); - - const $cloneAddr = $('#clone_addr'); - $cloneAddr.on('change', () => { - const $repoName = $('#repo_name'); - if ($cloneAddr.val().length > 0 && $repoName.val().length === 0) { // Only modify if repo_name input is blank - $repoName.val($cloneAddr.val().match(/^(.*\/)?((.+?)(\.git)?)$/)[3]); + user?.addEventListener('input', () => {checkItems(false)}); + pass?.addEventListener('input', () => {checkItems(false)}); + token?.addEventListener('input', () => {checkItems(true)}); + mirror?.addEventListener('change', () => {checkItems(true)}); + document.getElementById('lfs_settings_show')?.addEventListener('click', (e) => { + e.preventDefault(); + e.stopPropagation(); + showElem(lfsEndpoint); + }); + lfs?.addEventListener('change', setLFSSettingsVisibility); + + const cloneAddr = document.getElementById('clone_addr'); + cloneAddr?.addEventListener('change', () => { + const repoName = document.getElementById('repo_name'); + if (cloneAddr.value.length > 0 && repoName?.value.length === 0) { // Only modify if repo_name input is blank + repoName.value = cloneAddr.value.match(/^(.*\/)?((.+?)(\.git)?)$/)[3]; } }); } function checkAuth() { - const serviceType = $service.val(); + if (!service) return; + const serviceType = service.value; - checkItems(serviceType !== 1); + checkItems(serviceType !== '1'); } function checkItems(tokenAuth) { let enableItems; if (tokenAuth) { - enableItems = $token.val() !== ''; + enableItems = token?.value !== ''; } else { - enableItems = $user.val() !== '' || $pass.val() !== ''; + enableItems = user?.value !== '' || pass?.value !== ''; } - if (enableItems && $service.val() > 1) { - if ($mirror.is(':checked')) { - $items.not('[name="wiki"]').attr('disabled', true); - $items.filter('[name="wiki"]').attr('disabled', false); + if (enableItems && service?.value > 1) { + if (mirror?.checked) { + for (const item of items) { + if (item.name === 'wiki') { + item.disabled = false; + } else { + item.disabled = true; + } + } return; } - $items.attr('disabled', false); + for (const item of items) item.disabled = false; } else { - $items.attr('disabled', true); + for (const item of items) item.disabled = true; } } function setLFSSettingsVisibility() { - const visible = $lfs.is(':checked'); - toggleElem($lfsSettings, visible); - hideElem($lfsEndpoint); + if (!lfs) return; + const visible = lfs.checked; + toggleElem(lfsSettings, visible); + hideElem(lfsEndpoint); } From 367d69e2e1a1642e0815599927ae7a0465c3a086 Mon Sep 17 00:00:00 2001 From: Yarden Shoham Date: Sat, 17 Feb 2024 22:54:45 +0200 Subject: [PATCH 2/5] Update web_src/js/features/repo-migration.js Co-authored-by: silverwind --- web_src/js/features/repo-migration.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/web_src/js/features/repo-migration.js b/web_src/js/features/repo-migration.js index 36eca7c755be..ed9d1591462c 100644 --- a/web_src/js/features/repo-migration.js +++ b/web_src/js/features/repo-migration.js @@ -51,10 +51,7 @@ function checkItems(tokenAuth) { if (enableItems && service?.value > 1) { if (mirror?.checked) { for (const item of items) { - if (item.name === 'wiki') { - item.disabled = false; - } else { - item.disabled = true; + item.disabled = item.name !== 'wiki'; } } return; From 9dd554781636f2dd4d5d923ce412c2a93d69d118 Mon Sep 17 00:00:00 2001 From: Yarden Shoham Date: Sat, 17 Feb 2024 20:59:04 +0000 Subject: [PATCH 3/5] lint --- web_src/js/features/repo-migration.js | 1 - 1 file changed, 1 deletion(-) diff --git a/web_src/js/features/repo-migration.js b/web_src/js/features/repo-migration.js index ed9d1591462c..926201d69db4 100644 --- a/web_src/js/features/repo-migration.js +++ b/web_src/js/features/repo-migration.js @@ -52,7 +52,6 @@ function checkItems(tokenAuth) { if (mirror?.checked) { for (const item of items) { item.disabled = item.name !== 'wiki'; - } } return; } From 79999ca27d8e29fa439d4986e3c34296b2c49761 Mon Sep 17 00:00:00 2001 From: Yarden Shoham Date: Sun, 18 Feb 2024 06:08:39 +0000 Subject: [PATCH 4/5] Use Number --- web_src/js/features/repo-migration.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web_src/js/features/repo-migration.js b/web_src/js/features/repo-migration.js index 926201d69db4..4f78cc40daf9 100644 --- a/web_src/js/features/repo-migration.js +++ b/web_src/js/features/repo-migration.js @@ -36,9 +36,9 @@ export function initRepoMigration() { function checkAuth() { if (!service) return; - const serviceType = service.value; + const serviceType = Number(service.value); - checkItems(serviceType !== '1'); + checkItems(serviceType !== 1); } function checkItems(tokenAuth) { @@ -48,7 +48,7 @@ function checkItems(tokenAuth) { } else { enableItems = user?.value !== '' || pass?.value !== ''; } - if (enableItems && service?.value > 1) { + if (enableItems && Number(service?.value) > 1) { if (mirror?.checked) { for (const item of items) { item.disabled = item.name !== 'wiki'; From ef6a1804a526ab33157f51ad49f23e5bb2b12b67 Mon Sep 17 00:00:00 2001 From: Yarden Shoham Date: Mon, 19 Feb 2024 23:21:43 +0200 Subject: [PATCH 5/5] Update web_src/js/features/repo-migration.js Co-authored-by: silverwind --- web_src/js/features/repo-migration.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_src/js/features/repo-migration.js b/web_src/js/features/repo-migration.js index 4f78cc40daf9..59e282e4e7fa 100644 --- a/web_src/js/features/repo-migration.js +++ b/web_src/js/features/repo-migration.js @@ -28,7 +28,7 @@ export function initRepoMigration() { const cloneAddr = document.getElementById('clone_addr'); cloneAddr?.addEventListener('change', () => { const repoName = document.getElementById('repo_name'); - if (cloneAddr.value.length > 0 && repoName?.value.length === 0) { // Only modify if repo_name input is blank + if (cloneAddr.value && !repoName?.value) { // Only modify if repo_name input is blank repoName.value = cloneAddr.value.match(/^(.*\/)?((.+?)(\.git)?)$/)[3]; } });