Skip to content

Commit

Permalink
make post size (display and editor) configurable.
Browse files Browse the repository at this point in the history
default is now 256.
  • Loading branch information
miguelfreitas committed Jul 16, 2016
1 parent 097d848 commit baf464b
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 9 deletions.
21 changes: 12 additions & 9 deletions js/interface_common.js
Expand Up @@ -1667,16 +1667,17 @@ function replyTextInput(event) {
}

function getPostSplitingPML() {
var MaxPostSize = $.Options.MaxPostEditorChars.val;
if (splitedPostsCount > 1) {
var pml = 140 - (i+1).toString().length - splitedPostsCount.toString().length - 4;
var pml = MaxPostSize - (i+1).toString().length - splitedPostsCount.toString().length - 4;

// if mention exists, we shouldn't add it while posting.
if (typeof reply_to !== 'undefined' &&
!checkPostForMentions(tas[i].value, reply_to, pml -reply_to.length)) {
pml -= reply_to.length;
}
} else
var pml = 140;
var pml = MaxPostSize;
return pml;
}

Expand Down Expand Up @@ -1723,7 +1724,8 @@ function replyTextUpdateRemaining(ta) {
return false;
}
});
if (!disable && c >= 0 && c < 140 && textArea.val() !== textArea.attr('data-reply-to')) {
if (!disable && c >= 0 && c < $.Options.MaxPostEditorChars.val &&
textArea.val() !== textArea.attr('data-reply-to')) {
remainingCount.removeClass('warn');
$.MAL.enableButton(buttonSend);
} else {
Expand All @@ -1739,14 +1741,15 @@ function replyTextCountRemaining(ta) {
var textArea = $(ta);
var c;

var MaxPostSize = $.Options.MaxPostEditorChars.val;
if (usePostSpliting && !textArea.closest('.directMessages').length && splitedPostsCount > 1) {
c = 140 - ta.value.length - (textArea.closest('form').find('textarea').index(ta) + 1).toString().length - splitedPostsCount.toString().length - 4;
c = MaxPostSize - ta.value.length - (textArea.closest('form').find('textarea').index(ta) + 1).toString().length - splitedPostsCount.toString().length - 4;
var reply_to = textArea.attr('data-reply-to');
if (typeof reply_to !== 'undefined' &&
!checkPostForMentions(ta.value, reply_to, 140 -c -reply_to.length))
!checkPostForMentions(ta.value, reply_to, MaxPostSize -c -reply_to.length))
c -= reply_to.length;
} else
c = 140 - ta.value.length;
c = MaxPostSize - ta.value.length;

return c;
}
Expand Down Expand Up @@ -2211,7 +2214,7 @@ function postSubmit(e, oldLastPostId) {
var postText = '';
var reply_to = textArea.attr('data-reply-to');
var val = textArea.val();
if (typeof reply_to === 'undefined' || checkPostForMentions(val, reply_to, 140))
if (typeof reply_to === 'undefined' || checkPostForMentions(val, reply_to, $.Options.MaxPostEditorChars.val))
postText = val + ' (' + splitedPostsCount.toString() + '/' + splitedPostsCount.toString() + ')';
else
postText = reply_to + val + ' (' + splitedPostsCount.toString() + '/' + splitedPostsCount.toString() + ')';
Expand All @@ -2225,7 +2228,7 @@ function postSubmit(e, oldLastPostId) {
var postText = '';
var reply_to = textArea.attr('data-reply-to');
var val = textArea[0].value;
if (typeof reply_to === 'undefined' || checkPostForMentions(val, reply_to, 140))
if (typeof reply_to === 'undefined' || checkPostForMentions(val, reply_to, $.Options.MaxPostEditorChars.val))
postText = val + ' (' + (splitedPostsCount - textArea.length + 1).toString() + '/' + splitedPostsCount.toString() + ')';
else
postText = reply_to + val + ' (' + (splitedPostsCount - textArea.length + 1).toString() + '/' + splitedPostsCount.toString() + ')';
Expand All @@ -2242,7 +2245,7 @@ function postSubmit(e, oldLastPostId) {
closePrompt(btnPostSubmit);
else {
textArea.val('').attr('placeholder', polyglot.t('Your message was sent!'));
btnPostSubmit.closest('form').find('.post-area-remaining').text('140');
btnPostSubmit.closest('form').find('.post-area-remaining').text('');

if (btnPostSubmit.closest('.post-area,.post-reply-content')) {
$('.post-area-new').removeClass('open').find('textarea').blur();
Expand Down
14 changes: 14 additions & 0 deletions js/options.js
Expand Up @@ -190,6 +190,20 @@ function twisterOptions() {
type: 'checkbox',
valDefault: false
});
this.add({
name: 'MaxPostDisplayChars',
type: 'numeric',
valDefault: '256',
valMes: 'characters',
getMethod: function (val) {return parseInt(val);}
});
this.add({
name: 'MaxPostEditorChars',
type: 'numeric',
valDefault: '256',
valMes: 'characters',
getMethod: function (val) {return parseInt(val);}
});
this.add({
name: 'splitPosts',
valDefault: 'disable'
Expand Down
4 changes: 4 additions & 0 deletions js/twister_formatpost.js
Expand Up @@ -89,6 +89,10 @@ function postToElem(post, kind, promoted) {
if (typeof msg !== 'string')
msg = '';

if (msg.length > $.Options.MaxPostDisplayChars.val) {
msg = msg.slice(0,$.Options.MaxPostDisplayChars.val) + "\u2026";
}

// Now create the html elements
var elem = $.MAL.getPostTemplate().clone(true).appendTo(twister.html.detached);
elem.removeAttr('id')
Expand Down
12 changes: 12 additions & 0 deletions options.html
Expand Up @@ -312,6 +312,12 @@
<input name="" id="useProxyForImgOnly" class="container" type="checkbox" /> <span class="label">Use proxy for image preview only</span>
</form>
</div>
<div class="container">
<form action="">
<p class="label">Maximum post size to show</p>
<input type="text" id="MaxPostDisplayChars" class="container" maxlength="5" size="5"/> <span class="label">characters</span>
</form>
</div>
</div>
<div class="module">
<p class="label label-h"> Top Trends </p>
Expand Down Expand Up @@ -417,6 +423,12 @@
</div>
</form>
</div>
<div class="container">
<form action="">
<p class="label">Maximum post size to send</p>
<input type="text" id="MaxPostEditorChars" class="container" maxlength="5" size="5"/> <span class="label">characters</span>
</form>
</div>
<div class="container">
<form action="" id="splitPostsOpt">
<p class="label">Split long posts</p>
Expand Down

0 comments on commit baf464b

Please sign in to comment.