mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Require codereview to have content (#18156)
- Report a validityError when the codeReview have no comment. - Resolves #18151 - Refactor
This commit is contained in:
		| @@ -96,3 +96,31 @@ export function getAttachedEasyMDE(el) { | |||||||
|   } |   } | ||||||
|   return el._data_easyMDE; |   return el._data_easyMDE; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * validate if the given textarea from a form, is non-empty. | ||||||
|  |  * @param {jQuery | HTMLElement} form | ||||||
|  |  * @param {jQuery | HTMLElement} textarea | ||||||
|  |  * @returns {boolean} returns true if validation succeeded. | ||||||
|  |  */ | ||||||
|  | export function validateTextareaNonEmpty(form, textarea) { | ||||||
|  |   if (form instanceof jQuery) { | ||||||
|  |     form = form[0]; | ||||||
|  |   } | ||||||
|  |   if (textarea instanceof jQuery) { | ||||||
|  |     textarea = textarea[0]; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   const $markdownEditorTextArea = $(getAttachedEasyMDE(textarea).codemirror.getInputField()); | ||||||
|  |   // The original edit area HTML element is hidden and replaced by the | ||||||
|  |   // SimpleMDE/EasyMDE editor, breaking HTML5 input validation if the text area is empty. | ||||||
|  |   // This is a workaround for this upstream bug. | ||||||
|  |   // See https://github.com/sparksuite/simplemde-markdown-editor/issues/324 | ||||||
|  |   if (textarea.value.length) { | ||||||
|  |     $markdownEditorTextArea.prop('required', true); | ||||||
|  |     form.reportValidity(); | ||||||
|  |     return false; | ||||||
|  |   } | ||||||
|  |   $markdownEditorTextArea.prop('required', false); | ||||||
|  |   return true; | ||||||
|  | } | ||||||
|   | |||||||
| @@ -1,5 +1,6 @@ | |||||||
| import {initCompReactionSelector} from './comp/ReactionSelector.js'; | import {initCompReactionSelector} from './comp/ReactionSelector.js'; | ||||||
| import {initRepoIssueContentHistory} from './repo-issue-content.js'; | import {initRepoIssueContentHistory} from './repo-issue-content.js'; | ||||||
|  | import {validateTextareaNonEmpty} from './comp/CommentEasyMDE.js'; | ||||||
| const {csrfToken} = window.config; | const {csrfToken} = window.config; | ||||||
|  |  | ||||||
| export function initRepoDiffReviewButton() { | export function initRepoDiffReviewButton() { | ||||||
| @@ -23,7 +24,13 @@ export function initRepoDiffFileViewToggle() { | |||||||
| export function initRepoDiffConversationForm() { | export function initRepoDiffConversationForm() { | ||||||
|   $(document).on('submit', '.conversation-holder form', async (e) => { |   $(document).on('submit', '.conversation-holder form', async (e) => { | ||||||
|     e.preventDefault(); |     e.preventDefault(); | ||||||
|  |  | ||||||
|     const form = $(e.target); |     const form = $(e.target); | ||||||
|  |     const $textArea = form.find('textarea'); | ||||||
|  |     if (!validateTextareaNonEmpty(form, $textArea)) { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     const newConversationHolder = $(await $.post(form.attr('action'), form.serialize())); |     const newConversationHolder = $(await $.post(form.attr('action'), form.serialize())); | ||||||
|     const {path, side, idx} = newConversationHolder.data(); |     const {path, side, idx} = newConversationHolder.data(); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| import {initMarkupContent} from '../markup/content.js'; | import {initMarkupContent} from '../markup/content.js'; | ||||||
|  | import {validateTextareaNonEmpty} from './comp/CommentEasyMDE.js'; | ||||||
| import {initCompMarkupContentPreviewTab} from './comp/MarkupContentPreview.js'; | import {initCompMarkupContentPreviewTab} from './comp/MarkupContentPreview.js'; | ||||||
|  |  | ||||||
| const {csrfToken} = window.config; | const {csrfToken} = window.config; | ||||||
| @@ -121,19 +122,8 @@ export function initRepoWikiForm() { | |||||||
|     const $markdownEditorTextArea = $(easyMDE.codemirror.getInputField()); |     const $markdownEditorTextArea = $(easyMDE.codemirror.getInputField()); | ||||||
|     $markdownEditorTextArea.addClass('js-quick-submit'); |     $markdownEditorTextArea.addClass('js-quick-submit'); | ||||||
|  |  | ||||||
|     $form.on('submit', function (e) { |     $form.on('submit', function () { | ||||||
|       // The original edit area HTML element is hidden and replaced by the |       validateTextareaNonEmpty(this, $editArea); | ||||||
|       // SimpleMDE/EasyMDE editor, breaking HTML5 input validation if the text area is empty. |  | ||||||
|       // This is a workaround for this upstream bug. |  | ||||||
|       // See https://github.com/sparksuite/simplemde-markdown-editor/issues/324 |  | ||||||
|       const input = $editArea.val(); |  | ||||||
|       if (!input.length) { |  | ||||||
|         e.preventDefault(); |  | ||||||
|         $markdownEditorTextArea.prop('required', true); |  | ||||||
|         this.reportValidity(); |  | ||||||
|       } else { |  | ||||||
|         $markdownEditorTextArea.prop('required', false); |  | ||||||
|       } |  | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     setTimeout(() => { |     setTimeout(() => { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Gusted
					Gusted