aboutsummaryrefslogtreecommitdiffstats
path: root/web_src/js/features/repo-issue-edit.js
diff options
context:
space:
mode:
authormetiftikci <metiftikci@hotmail.com>2024-05-27 18:34:18 +0300
committerGitHub <noreply@github.com>2024-05-27 15:34:18 +0000
commitaa92b13164e84c26be91153b6022220ce0a27720 (patch)
tree9fcfb6e0e73fad3af441c1ac1059c61dcd877cd1 /web_src/js/features/repo-issue-edit.js
parent1ed8e6aa5fad235506f211daa9dffd448d9d5ad4 (diff)
downloadgitea-aa92b13164e84c26be91153b6022220ce0a27720.tar.gz
gitea-aa92b13164e84c26be91153b6022220ce0a27720.zip
Prevent simultaneous editing of comments and issues (#31053)
fixes #22907 Tested: - [x] issue content edit - [x] issue content change tasklist - [x] pull request content edit - [x] pull request change tasklist ![issue-content-edit](https://github.com/go-gitea/gitea/assets/29250154/a0828889-fb96-4bc4-8600-da92e3205812)
Diffstat (limited to 'web_src/js/features/repo-issue-edit.js')
-rw-r--r--web_src/js/features/repo-issue-edit.js7
1 files changed, 7 insertions, 0 deletions
diff --git a/web_src/js/features/repo-issue-edit.js b/web_src/js/features/repo-issue-edit.js
index abf2d31221..9a8d737e01 100644
--- a/web_src/js/features/repo-issue-edit.js
+++ b/web_src/js/features/repo-issue-edit.js
@@ -3,6 +3,7 @@ import {handleReply} from './repo-issue.js';
import {getComboMarkdownEditor, initComboMarkdownEditor} from './comp/ComboMarkdownEditor.js';
import {createDropzone} from './dropzone.js';
import {GET, POST} from '../modules/fetch.js';
+import {showErrorToast} from '../modules/toast.js';
import {hideElem, showElem} from '../utils/dom.js';
import {attachRefIssueContextPopup} from './contextpopup.js';
import {initCommentContent, initMarkupContent} from '../markup/content.js';
@@ -124,11 +125,17 @@ async function onEditContent(event) {
const params = new URLSearchParams({
content: comboMarkdownEditor.value(),
context: editContentZone.getAttribute('data-context'),
+ content_version: editContentZone.getAttribute('data-content-version'),
});
for (const fileInput of dropzoneInst?.element.querySelectorAll('.files [name=files]')) params.append('files[]', fileInput.value);
const response = await POST(editContentZone.getAttribute('data-update-url'), {data: params});
const data = await response.json();
+ if (response.status === 400) {
+ showErrorToast(data.errorMessage);
+ return;
+ }
+ editContentZone.setAttribute('data-content-version', data.contentVersion);
if (!data.content) {
renderContent.innerHTML = document.getElementById('no-content').innerHTML;
rawContent.textContent = '';