Skip to content

Commit 293e0d3

Browse files
committed
Issues-535: Max message length handling for discussion form
1 parent ebe7b7b commit 293e0d3

File tree

1 file changed

+35
-0
lines changed
  • vanilla/applications/vanilla/js

1 file changed

+35
-0
lines changed

vanilla/applications/vanilla/js/post.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,41 @@ jQuery(document).ready(function($) {
101101

102102
// Handler before submitting
103103
$(frm).triggerHandler('BeforeDiscussionSubmit', [frm, btn]);
104+
var maxCommentLength = $(frm).find('input:hidden[name$=MaxCommentLength]');
105+
var defaultValues = [
106+
undefined,
107+
null,
108+
'',
109+
'[{\"insert\":\"\\n\"}]'
110+
];
111+
112+
var editorContainer = $(frm).find('.EasyMDEContainer');
113+
var messageContainer = $(frm).find('.editor-statusbar .message');
114+
var textbox = $(frm).find('textarea#Form_Body');
115+
var currentVal = $(textbox).val();
116+
currentVal = gdn.normalizeText(currentVal);
117+
if(defaultValues.includes(currentVal) || currentVal.trim().length == 0) {
118+
$(editorContainer).addClass('error');
119+
$(messageContainer).text('Cannot post an empty message');
120+
$(frm).find(':submit').attr('disabled', 'disabled');
121+
$(frm).find('.Buttons a.Button:not(.Cancel)').addClass('Disabled');
122+
return false;
123+
}
124+
125+
if(currentVal.length > maxCommentLength.val()) {
126+
$(editorContainer).addClass('error');
127+
var count = currentVal.length - maxCommentLength.val();
128+
$(messageContainer).text('Discussion is '+ count +' characters too long');
129+
$(frm).find(':submit').attr('disabled', 'disabled');
130+
$(frm).find('.Buttons a.Button:not(.Cancel)').addClass('Disabled');
131+
return false;
132+
}
133+
134+
$(editorContainer).removeClass('error');
135+
$(messageContainer).text('');
136+
$(frm).find(':submit').removeAttr("disabled");
137+
$(frm).find('.Buttons a.Button').removeClass('Disabled');
138+
104139

105140
var inpDiscussionID = $(frm).find(':hidden[name$=DiscussionID]');
106141
var inpDraftID = $(frm).find(':hidden[name$=DraftID]');

0 commit comments

Comments
 (0)