Skip to content

Commit 5a28308

Browse files
authored
Merge pull request #536 from topcoder-platform/issues-483
Issues-483, Issues-484, Issues-535: Added validation of comment lengt…
2 parents b41f458 + c54d5b9 commit 5a28308

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

vanilla/applications/vanilla/js/discussion.js

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ jQuery(document).ready(function($) {
66
// Hide it if they leave the area without typing
77
$('div.CommentForm textarea').blur(function(ev) {
88
var Comment = $(ev.target).val();
9+
var textArea = $(ev.target);
910
if (!Comment || Comment == '')
10-
$('a.Cancel').hide();
11+
$(textArea).closest('a.Cancel').hide();
1112
});
1213

1314
// Reveal the textarea and hide previews.
@@ -33,6 +34,7 @@ jQuery(document).ready(function($) {
3334
var textbox = $(frm).find('textarea');
3435
var inpCommentID = $(frm).find('input:hidden[name$=CommentID]');
3536
var inpDraftID = $(frm).find('input:hidden[name$=DraftID]');
37+
var maxCommentLength = $(frm).find('input:hidden[name$=MaxCommentLength]');
3638
var type = 'Post';
3739
var preview = $(btn).hasClass('PreviewButton');
3840
var defaultValues = [
@@ -48,6 +50,34 @@ jQuery(document).ready(function($) {
4850
return false;
4951
}
5052
}
53+
54+
var editorContainer = $(frm).find('.EasyMDEContainer');
55+
var messageContainer = $(frm).find('.editor-statusbar .message');
56+
57+
var currentVal = $(textbox).val();
58+
if(defaultValues.includes(currentVal) || currentVal.trim().length == 0) {
59+
$(editorContainer).addClass('error');
60+
$(messageContainer).text('Cannot post an empty message');
61+
$(frm).find(':submit').attr('disabled', 'disabled');
62+
$(frm).find('.Buttons a.Button:not(.Cancel)').addClass('Disabled');
63+
return false;
64+
}
65+
66+
67+
if(currentVal.length > maxCommentLength.val()) {
68+
$(editorContainer).addClass('error');
69+
var count = currentVal.length - maxCommentLength.val();
70+
$(messageContainer).text('Comment is '+ count +' characters too long');
71+
$(frm).find(':submit').attr('disabled', 'disabled');
72+
$(frm).find('.Buttons a.Button:not(.Cancel)').addClass('Disabled');
73+
return false;
74+
}
75+
76+
$(editorContainer).removeClass('error');
77+
$(messageContainer).text('');
78+
$(frm).find(':submit').removeAttr("disabled");
79+
$(frm).find('.Buttons a.Button').removeClass('Disabled');
80+
5181
var draft = $(btn).hasClass('DraftButton');
5282
if (draft) {
5383
var currentVal = $(textbox).val()

0 commit comments

Comments
 (0)