mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +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 $ from 'jquery'; | ||||||
| import {hideElem, showElem} from '../utils/dom.js'; | import {hideElem, showElem} from '../utils/dom.js'; | ||||||
|  | import {POST} from '../modules/fetch.js'; | ||||||
|  |  | ||||||
| const {csrfToken} = window.config; | async function getArchive($target, url, first) { | ||||||
|  |   try { | ||||||
| function getArchive($target, url, first) { |     const response = await POST(url); | ||||||
|   $.ajax({ |     if (response.status === 200) { | ||||||
|     url, |       const data = await response.json(); | ||||||
|     type: 'POST', |       if (!data) { | ||||||
|     data: { |         // XXX Shouldn't happen? | ||||||
|       _csrf: csrfToken, |         $target.closest('.dropdown').children('i').removeClass('loading'); | ||||||
|     }, |         return; | ||||||
|     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; |  | ||||||
|         } |  | ||||||
|       } |       } | ||||||
|     }, |  | ||||||
|   }); |       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() { | export function initRepoArchiveLinks() { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user