mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Remove jQuery AJAX from the archive download links (#29380)
- Removed all jQuery AJAX calls and replaced with our fetch wrapper - Tested the repo archive download links dropdown functionality and it works as before # Demo using `fetch` instead of jQuery AJAX  --------- Signed-off-by: Yarden Shoham <git@yardenshoham.com>
This commit is contained in:
		| @@ -1,38 +1,34 @@ | ||||
| import $ from 'jquery'; | ||||
| import {hideElem, showElem} from '../utils/dom.js'; | ||||
| import {POST} from '../modules/fetch.js'; | ||||
|  | ||||
| const {csrfToken} = window.config; | ||||
|  | ||||
| function getArchive($target, url, first) { | ||||
|   $.ajax({ | ||||
|     url, | ||||
|     type: 'POST', | ||||
|     data: { | ||||
|       _csrf: csrfToken, | ||||
|     }, | ||||
|     complete(xhr) { | ||||
|       if (xhr.status === 200) { | ||||
|         if (!xhr.responseJSON) { | ||||
|           // XXX Shouldn't happen? | ||||
|           $target.closest('.dropdown').children('i').removeClass('loading'); | ||||
|           return; | ||||
|         } | ||||
|  | ||||
|         if (!xhr.responseJSON.complete) { | ||||
|           $target.closest('.dropdown').children('i').addClass('loading'); | ||||
|           // Wait for only three quarters of a second initially, in case it's | ||||
|           // quickly archived. | ||||
|           setTimeout(() => { | ||||
|             getArchive($target, url, false); | ||||
|           }, first ? 750 : 2000); | ||||
|         } else { | ||||
|           // We don't need to continue checking. | ||||
|           $target.closest('.dropdown').children('i').removeClass('loading'); | ||||
|           window.location.href = url; | ||||
|         } | ||||
| async function getArchive($target, url, first) { | ||||
|   try { | ||||
|     const response = await POST(url); | ||||
|     if (response.status === 200) { | ||||
|       const data = await response.json(); | ||||
|       if (!data) { | ||||
|         // XXX Shouldn't happen? | ||||
|         $target.closest('.dropdown').children('i').removeClass('loading'); | ||||
|         return; | ||||
|       } | ||||
|     }, | ||||
|   }); | ||||
|  | ||||
|       if (!data.complete) { | ||||
|         $target.closest('.dropdown').children('i').addClass('loading'); | ||||
|         // Wait for only three quarters of a second initially, in case it's | ||||
|         // quickly archived. | ||||
|         setTimeout(() => { | ||||
|           getArchive($target, url, false); | ||||
|         }, first ? 750 : 2000); | ||||
|       } else { | ||||
|         // We don't need to continue checking. | ||||
|         $target.closest('.dropdown').children('i').removeClass('loading'); | ||||
|         window.location.href = url; | ||||
|       } | ||||
|     } | ||||
|   } catch { | ||||
|     $target.closest('.dropdown').children('i').removeClass('loading'); | ||||
|   } | ||||
| } | ||||
|  | ||||
| export function initRepoArchiveLinks() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yarden Shoham
					Yarden Shoham