Browse Source

make post size (display and editor) configurable.

default is now 256.
readme-update
Miguel Freitas 9 years ago
parent
commit
baf464b761
  1. 21
      js/interface_common.js
  2. 14
      js/options.js
  3. 4
      js/twister_formatpost.js
  4. 12
      options.html

21
js/interface_common.js

@ -1667,8 +1667,9 @@ function replyTextInput(event) { @@ -1667,8 +1667,9 @@ 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' &&
@ -1676,7 +1677,7 @@ function replyTextInput(event) { @@ -1676,7 +1677,7 @@ function replyTextInput(event) {
pml -= reply_to.length;
}
} else
var pml = 140;
var pml = MaxPostSize;
return pml;
}
@ -1723,7 +1724,8 @@ function replyTextUpdateRemaining(ta) { @@ -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 {
@ -1739,14 +1741,15 @@ function replyTextCountRemaining(ta) { @@ -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;
}
@ -2211,7 +2214,7 @@ function postSubmit(e, oldLastPostId) { @@ -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() + ')';
@ -2225,7 +2228,7 @@ function postSubmit(e, oldLastPostId) { @@ -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() + ')';
@ -2242,7 +2245,7 @@ function postSubmit(e, oldLastPostId) { @@ -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();

14
js/options.js

@ -190,6 +190,20 @@ function twisterOptions() { @@ -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'

4
js/twister_formatpost.js

@ -89,6 +89,10 @@ function postToElem(post, kind, promoted) { @@ -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')

12
options.html

@ -312,6 +312,12 @@ @@ -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>
@ -417,6 +423,12 @@ @@ -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>

Loading…
Cancel
Save