mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 08:34:30 +01:00 
			
		
		
		
	Backport #31445 by wxiaoguang Fix #19031 Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		
							parent
							
								
									be302f3025
								
							
						
					
					
						commit
						8d60c7d568
					
				@ -131,22 +131,22 @@ class ComboMarkdownEditor {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  setupTab() {
 | 
			
		||||
    const $container = $(this.container);
 | 
			
		||||
    const tabs = $container[0].querySelectorAll('.tabular.menu > .item');
 | 
			
		||||
    const tabs = this.container.querySelectorAll('.tabular.menu > .item');
 | 
			
		||||
 | 
			
		||||
    // Fomantic Tab requires the "data-tab" to be globally unique.
 | 
			
		||||
    // So here it uses our defined "data-tab-for" and "data-tab-panel" to generate the "data-tab" attribute for Fomantic.
 | 
			
		||||
    const tabEditor = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-writer');
 | 
			
		||||
    const tabPreviewer = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-previewer');
 | 
			
		||||
    tabEditor.setAttribute('data-tab', `markdown-writer-${elementIdCounter}`);
 | 
			
		||||
    tabPreviewer.setAttribute('data-tab', `markdown-previewer-${elementIdCounter}`);
 | 
			
		||||
    const panelEditor = $container[0].querySelector('.ui.tab[data-tab-panel="markdown-writer"]');
 | 
			
		||||
    const panelPreviewer = $container[0].querySelector('.ui.tab[data-tab-panel="markdown-previewer"]');
 | 
			
		||||
    this.tabEditor = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-writer');
 | 
			
		||||
    this.tabPreviewer = Array.from(tabs).find((tab) => tab.getAttribute('data-tab-for') === 'markdown-previewer');
 | 
			
		||||
    this.tabEditor.setAttribute('data-tab', `markdown-writer-${elementIdCounter}`);
 | 
			
		||||
    this.tabPreviewer.setAttribute('data-tab', `markdown-previewer-${elementIdCounter}`);
 | 
			
		||||
 | 
			
		||||
    const panelEditor = this.container.querySelector('.ui.tab[data-tab-panel="markdown-writer"]');
 | 
			
		||||
    const panelPreviewer = this.container.querySelector('.ui.tab[data-tab-panel="markdown-previewer"]');
 | 
			
		||||
    panelEditor.setAttribute('data-tab', `markdown-writer-${elementIdCounter}`);
 | 
			
		||||
    panelPreviewer.setAttribute('data-tab', `markdown-previewer-${elementIdCounter}`);
 | 
			
		||||
    elementIdCounter++;
 | 
			
		||||
 | 
			
		||||
    tabEditor.addEventListener('click', () => {
 | 
			
		||||
    this.tabEditor.addEventListener('click', () => {
 | 
			
		||||
      requestAnimationFrame(() => {
 | 
			
		||||
        this.focus();
 | 
			
		||||
      });
 | 
			
		||||
@ -154,11 +154,11 @@ class ComboMarkdownEditor {
 | 
			
		||||
 | 
			
		||||
    $(tabs).tab();
 | 
			
		||||
 | 
			
		||||
    this.previewUrl = tabPreviewer.getAttribute('data-preview-url');
 | 
			
		||||
    this.previewContext = tabPreviewer.getAttribute('data-preview-context');
 | 
			
		||||
    this.previewUrl = this.tabPreviewer.getAttribute('data-preview-url');
 | 
			
		||||
    this.previewContext = this.tabPreviewer.getAttribute('data-preview-context');
 | 
			
		||||
    this.previewMode = this.options.previewMode ?? 'comment';
 | 
			
		||||
    this.previewWiki = this.options.previewWiki ?? false;
 | 
			
		||||
    tabPreviewer.addEventListener('click', async () => {
 | 
			
		||||
    this.tabPreviewer.addEventListener('click', async () => {
 | 
			
		||||
      const formData = new FormData();
 | 
			
		||||
      formData.append('mode', this.previewMode);
 | 
			
		||||
      formData.append('context', this.previewContext);
 | 
			
		||||
@ -170,6 +170,10 @@ class ComboMarkdownEditor {
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  switchTabToEditor() {
 | 
			
		||||
    this.tabEditor.click();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  prepareEasyMDEToolbarActions() {
 | 
			
		||||
    this.easyMDEToolbarDefault = [
 | 
			
		||||
      'bold', 'italic', 'strikethrough', '|', 'heading-1', 'heading-2', 'heading-3',
 | 
			
		||||
 | 
			
		||||
@ -172,6 +172,7 @@ async function onEditContent(event) {
 | 
			
		||||
  if (!comboMarkdownEditor.value()) {
 | 
			
		||||
    comboMarkdownEditor.value(rawContent.textContent);
 | 
			
		||||
  }
 | 
			
		||||
  comboMarkdownEditor.switchTabToEditor();
 | 
			
		||||
  comboMarkdownEditor.focus();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user