mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08: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