mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Load citation JS only when needed (#29855)
Previously, the citation js would load every time when opening a citable repo. Now it only loads when the user clicks the button for it. The loading state is representend with a spinner on the button: <img width="83" alt="Screenshot 2024-03-17 at 00 25 13" src="https://github.com/go-gitea/gitea/assets/115237/29649089-13f3-4974-ab81-e12c0f8e651f"> Diff ist best viewed with whitespace hidden. --------- Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
		@@ -40,28 +40,35 @@ export async function initCitationFileCopyContent() {
 | 
			
		||||
    $citationCopyApa.toggleClass('primary', !isBibtex);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  try {
 | 
			
		||||
    await initInputCitationValue($citationCopyApa, $citationCopyBibtex);
 | 
			
		||||
  } catch (e) {
 | 
			
		||||
    console.error(`initCitationFileCopyContent error: ${e}`, e);
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
  updateUi();
 | 
			
		||||
  $('#cite-repo-button').on('click', async (e) => {
 | 
			
		||||
    const dropdownBtn = e.target.closest('.ui.dropdown.button');
 | 
			
		||||
    dropdownBtn.classList.add('is-loading');
 | 
			
		||||
 | 
			
		||||
  $citationCopyApa.on('click', () => {
 | 
			
		||||
    localStorage.setItem('citation-copy-format', 'apa');
 | 
			
		||||
    updateUi();
 | 
			
		||||
  });
 | 
			
		||||
  $citationCopyBibtex.on('click', () => {
 | 
			
		||||
    localStorage.setItem('citation-copy-format', 'bibtex');
 | 
			
		||||
    updateUi();
 | 
			
		||||
  });
 | 
			
		||||
    try {
 | 
			
		||||
      try {
 | 
			
		||||
        await initInputCitationValue($citationCopyApa, $citationCopyBibtex);
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error(`initCitationFileCopyContent error: ${e}`, e);
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      updateUi();
 | 
			
		||||
 | 
			
		||||
  $inputContent.on('click', () => {
 | 
			
		||||
    $inputContent.trigger('select');
 | 
			
		||||
  });
 | 
			
		||||
      $citationCopyApa.on('click', () => {
 | 
			
		||||
        localStorage.setItem('citation-copy-format', 'apa');
 | 
			
		||||
        updateUi();
 | 
			
		||||
      });
 | 
			
		||||
      $citationCopyBibtex.on('click', () => {
 | 
			
		||||
        localStorage.setItem('citation-copy-format', 'bibtex');
 | 
			
		||||
        updateUi();
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
      $inputContent.on('click', () => {
 | 
			
		||||
        $inputContent.trigger('select');
 | 
			
		||||
      });
 | 
			
		||||
    } finally {
 | 
			
		||||
      dropdownBtn.classList.remove('is-loading');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  $('#cite-repo-button').on('click', () => {
 | 
			
		||||
    $('#cite-repo-modal').modal('show');
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user