mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	Fix some incorrect async functions, improve frontend document. (#17597)
This commit is contained in:
		| @@ -46,7 +46,7 @@ function fallbackCopyToClipboard(text) { | ||||
| } | ||||
|  | ||||
| export default function initGlobalCopyToClipboardListener() { | ||||
|   document.addEventListener('click', async (e) => { | ||||
|   document.addEventListener('click', (e) => { | ||||
|     let target = e.target; | ||||
|     // in case <button data-clipboard-text><svg></button>, so we just search up to 3 levels for performance. | ||||
|     for (let i = 0; i < 3 && target; i++) { | ||||
| @@ -58,16 +58,20 @@ export default function initGlobalCopyToClipboardListener() { | ||||
|       } | ||||
|       if (text) { | ||||
|         e.preventDefault(); | ||||
|         try { | ||||
|           await navigator.clipboard.writeText(text); | ||||
|           onSuccess(target); | ||||
|         } catch { | ||||
|           if (fallbackCopyToClipboard(text)) { | ||||
|  | ||||
|         (async() => { | ||||
|           try { | ||||
|             await navigator.clipboard.writeText(text); | ||||
|             onSuccess(target); | ||||
|           } else { | ||||
|             onError(target); | ||||
|           } catch { | ||||
|             if (fallbackCopyToClipboard(text)) { | ||||
|               onSuccess(target); | ||||
|             } else { | ||||
|               onError(target); | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|         })(); | ||||
|  | ||||
|         break; | ||||
|       } | ||||
|       target = target.parentElement; | ||||
|   | ||||
| @@ -3,21 +3,22 @@ const {appSubUrl, csrfToken, notificationSettings} = window.config; | ||||
| let notificationSequenceNumber = 0; | ||||
|  | ||||
| export function initNotificationsTable() { | ||||
|   $('#notification_table .button').on('click', async function () { | ||||
|     const data = await updateNotification( | ||||
|       $(this).data('url'), | ||||
|       $(this).data('status'), | ||||
|       $(this).data('page'), | ||||
|       $(this).data('q'), | ||||
|       $(this).data('notification-id'), | ||||
|     ); | ||||
|  | ||||
|     if ($(data).data('sequence-number') === notificationSequenceNumber) { | ||||
|       $('#notification_div').replaceWith(data); | ||||
|       initNotificationsTable(); | ||||
|     } | ||||
|     await updateNotificationCount(); | ||||
|   $('#notification_table .button').on('click', function () { | ||||
|     (async () => { | ||||
|       const data = await updateNotification( | ||||
|         $(this).data('url'), | ||||
|         $(this).data('status'), | ||||
|         $(this).data('page'), | ||||
|         $(this).data('q'), | ||||
|         $(this).data('notification-id'), | ||||
|       ); | ||||
|  | ||||
|       if ($(data).data('sequence-number') === notificationSequenceNumber) { | ||||
|         $('#notification_div').replaceWith(data); | ||||
|         initNotificationsTable(); | ||||
|       } | ||||
|       await updateNotificationCount(); | ||||
|     })(); | ||||
|     return false; | ||||
|   }); | ||||
| } | ||||
| @@ -104,8 +105,8 @@ export function initNotificationCount() { | ||||
|   } | ||||
|  | ||||
|   const fn = (timeout, lastCount) => { | ||||
|     setTimeout(async () => { | ||||
|       await updateNotificationCountWithCallback(fn, timeout, lastCount); | ||||
|     setTimeout(() => { | ||||
|       const _promise = updateNotificationCountWithCallback(fn, timeout, lastCount); | ||||
|     }, timeout); | ||||
|   }; | ||||
|  | ||||
|   | ||||
| @@ -48,7 +48,7 @@ export default function initRepoGraphGit() { | ||||
|   }); | ||||
|   const url = new URL(window.location); | ||||
|   const params = url.searchParams; | ||||
|   const updateGraph = async () => { | ||||
|   const updateGraph = () => { | ||||
|     const queryString = params.toString(); | ||||
|     const ajaxUrl = new URL(url); | ||||
|     ajaxUrl.searchParams.set('div-only', 'true'); | ||||
| @@ -57,14 +57,15 @@ export default function initRepoGraphGit() { | ||||
|     $('#rel-container').addClass('hide'); | ||||
|     $('#rev-container').addClass('hide'); | ||||
|     $('#loading-indicator').removeClass('hide'); | ||||
|  | ||||
|     const div = $(await $.ajax(String(ajaxUrl))); | ||||
|     $('#pagination').html(div.find('#pagination').html()); | ||||
|     $('#rel-container').html(div.find('#rel-container').html()); | ||||
|     $('#rev-container').html(div.find('#rev-container').html()); | ||||
|     $('#loading-indicator').addClass('hide'); | ||||
|     $('#rel-container').removeClass('hide'); | ||||
|     $('#rev-container').removeClass('hide'); | ||||
|     (async () => { | ||||
|       const div = $(await $.ajax(String(ajaxUrl))); | ||||
|       $('#pagination').html(div.find('#pagination').html()); | ||||
|       $('#rel-container').html(div.find('#rel-container').html()); | ||||
|       $('#rev-container').html(div.find('#rev-container').html()); | ||||
|       $('#loading-indicator').addClass('hide'); | ||||
|       $('#rel-container').removeClass('hide'); | ||||
|       $('#rev-container').removeClass('hide'); | ||||
|     })(); | ||||
|   }; | ||||
|   const dropdownSelected = params.getAll('branch'); | ||||
|   if (params.has('hide-pr-refs') && params.get('hide-pr-refs') === 'true') { | ||||
|   | ||||
| @@ -351,6 +351,7 @@ export function initRepository() { | ||||
|  | ||||
|     // Edit issue or comment content | ||||
|     $(document).on('click', '.edit-content', async function (event) { | ||||
|       event.preventDefault(); | ||||
|       $(this).closest('.dropdown').find('.menu').toggle('visible'); | ||||
|       const $segment = $(this).closest('.header').next(); | ||||
|       const $editContentZone = $segment.find('.edit-content-zone'); | ||||
| @@ -511,7 +512,6 @@ export function initRepository() { | ||||
|         $textarea.focus(); | ||||
|         $simplemde.codemirror.focus(); | ||||
|       }); | ||||
|       event.preventDefault(); | ||||
|     }); | ||||
|  | ||||
|     initRepoIssueCommentDelete(); | ||||
|   | ||||
| @@ -63,9 +63,7 @@ export default function initRepoProject() { | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   (async () => { | ||||
|     await initRepoProjectSortable(); | ||||
|   })(); | ||||
|   const _promise = initRepoProjectSortable(); | ||||
|  | ||||
|   $('.edit-project-board').each(function () { | ||||
|     const projectHeader = $(this).closest('.board-column-header'); | ||||
|   | ||||
| @@ -82,8 +82,8 @@ export function initStopwatch() { | ||||
|   } | ||||
|  | ||||
|   const fn = (timeout) => { | ||||
|     setTimeout(async () => { | ||||
|       await updateStopwatchWithCallback(fn, timeout); | ||||
|     setTimeout(() => { | ||||
|       const _promise = updateStopwatchWithCallback(fn, timeout); | ||||
|     }, timeout); | ||||
|   }; | ||||
|  | ||||
| @@ -122,7 +122,7 @@ async function updateStopwatch() { | ||||
|   return updateStopwatchData(data); | ||||
| } | ||||
|  | ||||
| async function updateStopwatchData(data) { | ||||
| function updateStopwatchData(data) { | ||||
|   const watch = data[0]; | ||||
|   const btnEl = $('.active-stopwatch-trigger'); | ||||
|   if (!watch) { | ||||
| @@ -135,14 +135,14 @@ async function updateStopwatchData(data) { | ||||
|     $('.stopwatch-cancel').attr('action', `${issueUrl}/times/stopwatch/cancel`); | ||||
|     $('.stopwatch-issue').text(`${repo_owner_name}/${repo_name}#${issue_index}`); | ||||
|     $('.stopwatch-time').text(prettyMilliseconds(seconds * 1000)); | ||||
|     await updateStopwatchTime(seconds); | ||||
|     updateStopwatchTime(seconds); | ||||
|     btnEl.removeClass('hidden'); | ||||
|   } | ||||
|  | ||||
|   return !!data.length; | ||||
| } | ||||
|  | ||||
| async function updateStopwatchTime(seconds) { | ||||
| function updateStopwatchTime(seconds) { | ||||
|   const secs = parseInt(seconds); | ||||
|   if (!Number.isFinite(secs)) return; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user