Remove jQuery AJAX from the markdown editor preview (#29384)

- Removed all jQuery AJAX calls and replaced with our fetch wrapper
- Tested the markdown editor preview button functionality and it works
as before

# Demo using `fetch` instead of jQuery AJAX

![action](https://github.com/go-gitea/gitea/assets/20454870/3fc7abb8-4fdc-46e9-95f6-087d9526bb52)

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
(cherry picked from commit 1f6de13897fa0ac74087b2d1ec00cbef06caf2f7)
This commit is contained in:
Yarden Shoham 2024-02-25 06:42:29 +02:00 committed by Earl Warren
parent 29517c54e6
commit 4a08726c96
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 0579CB2928A78A00

View file

@ -9,6 +9,7 @@ import {renderPreviewPanelContent} from '../repo-editor.js';
import {easyMDEToolbarActions} from './EasyMDEToolbarActions.js'; import {easyMDEToolbarActions} from './EasyMDEToolbarActions.js';
import {initTextExpander} from './TextExpander.js'; import {initTextExpander} from './TextExpander.js';
import {showErrorToast} from '../../modules/toast.js'; import {showErrorToast} from '../../modules/toast.js';
import {POST} from '../../modules/fetch.js';
let elementIdCounter = 0; let elementIdCounter = 0;
@ -147,17 +148,16 @@ class ComboMarkdownEditor {
this.previewContext = $tabPreviewer.attr('data-preview-context'); this.previewContext = $tabPreviewer.attr('data-preview-context');
this.previewMode = this.options.previewMode ?? 'comment'; this.previewMode = this.options.previewMode ?? 'comment';
this.previewWiki = this.options.previewWiki ?? false; this.previewWiki = this.options.previewWiki ?? false;
$tabPreviewer.on('click', () => { $tabPreviewer.on('click', async () => {
$.post(this.previewUrl, { const formData = new FormData();
_csrf: window.config.csrfToken, formData.append('mode', this.previewMode);
mode: this.previewMode, formData.append('context', this.previewContext);
context: this.previewContext, formData.append('text', this.value());
text: this.value(), formData.append('wiki', this.previewWiki);
wiki: this.previewWiki, const response = await POST(this.previewUrl, {data: formData});
}, (data) => { const data = await response.text();
renderPreviewPanelContent($panelPreviewer, data); renderPreviewPanelContent($panelPreviewer, data);
}); });
});
} }
prepareEasyMDEToolbarActions() { prepareEasyMDEToolbarActions() {