code.gitea.io/gitea@v1.22.3/web_src/js/features/repo-migration.js (about) 1 import {hideElem, showElem, toggleElem} from '../utils/dom.js'; 2 3 const service = document.getElementById('service_type'); 4 const user = document.getElementById('auth_username'); 5 const pass = document.getElementById('auth_password'); 6 const token = document.getElementById('auth_token'); 7 const mirror = document.getElementById('mirror'); 8 const lfs = document.getElementById('lfs'); 9 const lfsSettings = document.getElementById('lfs_settings'); 10 const lfsEndpoint = document.getElementById('lfs_endpoint'); 11 const items = document.querySelectorAll('#migrate_items input[type=checkbox]'); 12 13 export function initRepoMigration() { 14 checkAuth(); 15 setLFSSettingsVisibility(); 16 17 user?.addEventListener('input', () => {checkItems(false)}); 18 pass?.addEventListener('input', () => {checkItems(false)}); 19 token?.addEventListener('input', () => {checkItems(true)}); 20 mirror?.addEventListener('change', () => {checkItems(true)}); 21 document.getElementById('lfs_settings_show')?.addEventListener('click', (e) => { 22 e.preventDefault(); 23 e.stopPropagation(); 24 showElem(lfsEndpoint); 25 }); 26 lfs?.addEventListener('change', setLFSSettingsVisibility); 27 28 const cloneAddr = document.getElementById('clone_addr'); 29 cloneAddr?.addEventListener('change', () => { 30 const repoName = document.getElementById('repo_name'); 31 if (cloneAddr.value && !repoName?.value) { // Only modify if repo_name input is blank 32 repoName.value = cloneAddr.value.match(/^(.*\/)?((.+?)(\.git)?)$/)[3]; 33 } 34 }); 35 } 36 37 function checkAuth() { 38 if (!service) return; 39 const serviceType = Number(service.value); 40 41 checkItems(serviceType !== 1); 42 } 43 44 function checkItems(tokenAuth) { 45 let enableItems; 46 if (tokenAuth) { 47 enableItems = token?.value !== ''; 48 } else { 49 enableItems = user?.value !== '' || pass?.value !== ''; 50 } 51 if (enableItems && Number(service?.value) > 1) { 52 if (mirror?.checked) { 53 for (const item of items) { 54 item.disabled = item.name !== 'wiki'; 55 } 56 return; 57 } 58 for (const item of items) item.disabled = false; 59 } else { 60 for (const item of items) item.disabled = true; 61 } 62 } 63 64 function setLFSSettingsVisibility() { 65 if (!lfs) return; 66 const visible = lfs.checked; 67 toggleElem(lfsSettings, visible); 68 hideElem(lfsEndpoint); 69 }