Browse Source

introduce sending posts with citation (retwists with comments)

master
Simon Grim 9 years ago
parent
commit
66431127e6
  1. 4
      css/style.css
  2. 123
      js/interface_common.js
  3. 50
      js/twister_actions.js
  4. 10
      js/twister_network.js
  5. 4
      theme_calm/css/style.css

4
css/style.css

@ -1787,6 +1787,10 @@ ol.toptrends-list {
min-height: 68px; min-height: 68px;
} }
.reTwist .post-area-extras {
margin-right: 10px;
}
/************************************* /*************************************
********* REPLY POSTS PROMPT ********* ********* REPLY POSTS PROMPT *********
**************************************/ **************************************/

123
js/interface_common.js

@ -379,13 +379,25 @@ function reTwistPopup(e) {
return; return;
} }
openModal({ var modal = openModal({
classBase: '.prompt-wrapper', classBase: '.prompt-wrapper',
classAdd: 'reTwist', classAdd: 'reTwist',
title: polyglot.t('retransmit_this') title: polyglot.t('retransmit_this')
}) });
.content
.append(postToElem($.evalJSON($(this).parents('.post-data').attr('data-userpost')), '')); modal.content
.append(postToElem($.evalJSON($(this).parents('.post-data').attr('data-userpost')), ''))
.append($('#reply-modal-template').children().clone(true)) // FIXME retwist-reply-modal-template
;
var replyArea = modal.content.find('.post-area .post-area-new');
var textArea = replyArea.find('textarea');
var textAreaPostInline = modal.content.find('.post .post-area-new textarea');
$.each(['placeholder', 'data-reply-to'], function(i, attribute) {
textArea.attr(attribute, textAreaPostInline.attr(attribute));
});
replyArea.find('.post-submit').addClass('with-reference');
} }
// Expande Área do Novo post // Expande Área do Novo post
@ -399,16 +411,16 @@ function replyInitPopup(e, post) {
getFullname(post.userpost.n, modal.self.find('h3 .fullname')); getFullname(post.userpost.n, modal.self.find('h3 .fullname'));
modal.content modal.content
.append($('#reply-modal-template').children().clone(true))
.append(postToElem(post, '')) .append(postToElem(post, ''))
.append($('#reply-modal-template').children().clone(true))
; ;
// FIXME passing data through attributes may result in a mess like following // FIXME passing data through attributes may result in a mess like following
var replyArea = modal.content.find('.post-area .post-area-new').addClass('open'); var replyArea = modal.content.find('.post-area .post-area-new').addClass('open');
var replyText = replyArea.find('textarea'); var textArea = replyArea.find('textarea');
var postInlineReplyText = modal.content.find('.post .post-area-new textarea'); var textAreaPostInline = modal.content.find('.post .post-area-new textarea');
$.each(['placeholder', 'data-reply-to'], function(i, attribute) { $.each(['placeholder', 'data-reply-to'], function(i, attribute) {
replyText.attr(attribute, postInlineReplyText.attr(attribute)); textArea.attr(attribute, textAreaPostInline.attr(attribute));
}); });
composeNewPost(e, replyArea); composeNewPost(e, replyArea);
@ -1202,82 +1214,95 @@ function undoLastUnicode(e) {
} }
function postSubmit(e, oldLastPostId) { function postSubmit(e, oldLastPostId) {
var btnPostSubmit;
if (e instanceof $) { if (e instanceof $) {
var $this = e; btnPostSubmit = e;
//check if previous part was sent... //check if previous part was sent...
if (oldLastPostId === lastPostId) { if (oldLastPostId === lastPostId) {
setTimeout(postSubmit, 1000, $this, oldLastPostId); setTimeout(postSubmit, 1000, btnPostSubmit, oldLastPostId);
return; return;
} }
} else { } else {
e.stopPropagation(); e.stopPropagation();
e.preventDefault(); e.preventDefault();
var $this = $(this); btnPostSubmit = $(this);
} }
$.MAL.disableButton($this); $.MAL.disableButton(btnPostSubmit);
var $replyText = $this.closest('.post-area-new').find('textarea'); var textArea = btnPostSubmit.closest('.post-area-new').find('textarea');
$replyText.siblings('#post-preview').hide(); textArea.siblings('#post-preview').hide();
var $postOrig = $this.closest('.post-data'); var postData = btnPostSubmit.closest('.post-data');
if (!$postOrig.length) { if (!postData.length) {
$postOrig = $this.closest('.modal-content').find('.post-data'); postData = btnPostSubmit.closest('.modal-content').find('.post-data');
} }
if (splitedPostsCount > 1) { if (btnPostSubmit.hasClass('with-reference')) {
if ($replyText.length < splitedPostsCount) { function doSubmitPost(postText, postData) {
//current part will be sent as reply to the previous part... newRtMsg(postData, postText);
$postOrig = $('<div data-id="' + lastPostId + '" data-screen-name="' + defaultScreenName + '"></div>'); }
} else {
if (splitedPostsCount > 1) {
if (textArea.length < splitedPostsCount) {
//current part will be sent as reply to the previous part...
postData = $('<div data-id="' + lastPostId + '" data-screen-name="' + defaultScreenName + '"></div>');
}
}
function doSubmitPost(postText, postData) {
newPostMsg(postText, postData);
} }
} }
if ($replyText.length <= 1) { if (textArea.length <= 1) {
if (splitedPostsCount > 1) { if (splitedPostsCount > 1) {
var postxt = ''; var postText = '';
var reply_to = $replyText.attr('data-reply-to'); var reply_to = textArea.attr('data-reply-to');
var val = $replyText.val(); var val = textArea.val();
if (typeof reply_to === 'undefined' || checkPostForMentions(val, reply_to, 140)) if (typeof reply_to === 'undefined' || checkPostForMentions(val, reply_to, 140))
postxt = val + ' (' + splitedPostsCount.toString() + '/' + splitedPostsCount.toString() + ')'; postText = val + ' (' + splitedPostsCount.toString() + '/' + splitedPostsCount.toString() + ')';
else else
postxt = reply_to + val + ' (' + splitedPostsCount.toString() + '/' + splitedPostsCount.toString() + ')'; postText = reply_to + val + ' (' + splitedPostsCount.toString() + '/' + splitedPostsCount.toString() + ')';
newPostMsg(postxt, $postOrig); doSubmitPost(postText, postData);
} else } else
newPostMsg($replyText.val(), $postOrig); doSubmitPost(textArea.val(), postData);
splitedPostsCount = 1; splitedPostsCount = 1;
} else { } else {
var postxt = ''; var postText = '';
var reply_to = $replyText.attr('data-reply-to'); var reply_to = textArea.attr('data-reply-to');
var val = $replyText[0].value; var val = textArea[0].value;
if (typeof reply_to === 'undefined' || checkPostForMentions(val, reply_to, 140)) if (typeof reply_to === 'undefined' || checkPostForMentions(val, reply_to, 140))
postxt = val + ' (' + (splitedPostsCount - $replyText.length + 1).toString() + '/' + splitedPostsCount.toString() + ')'; postText = val + ' (' + (splitedPostsCount - textArea.length + 1).toString() + '/' + splitedPostsCount.toString() + ')';
else else
postxt = reply_to + val + ' (' + (splitedPostsCount - $replyText.length + 1).toString() + '/' + splitedPostsCount.toString() + ')'; postText = reply_to + val + ' (' + (splitedPostsCount - textArea.length + 1).toString() + '/' + splitedPostsCount.toString() + ')';
$($replyText[0]).remove(); $(textArea[0]).remove();
oldLastPostId = lastPostId; oldLastPostId = lastPostId;
newPostMsg(postxt, $postOrig); doSubmitPost(postText, postData);
setTimeout(postSubmit, 1000, $this, oldLastPostId); setTimeout(postSubmit, 1000, btnPostSubmit, oldLastPostId);
return; return;
} }
$replyText.val('').attr('placeholder', polyglot.t('Your message was sent!')); if (btnPostSubmit.parents('.prompt-wrapper').length)
var tweetForm = $this.parents('form');
var remainingCount = tweetForm.find('.post-area-remaining');
remainingCount.text(140);
if ($this.parents('.prompt-wrapper').length)
closeModalHandler('.prompt-wrapper'); closeModalHandler('.prompt-wrapper');
else {
if ($this.closest('.post-area,.post-reply-content')) { textArea.val('').attr('placeholder', polyglot.t('Your message was sent!'));
$('.post-area-new').removeClass('open').find('textarea').blur(); var tweetForm = btnPostSubmit.parents('form');
}; var remainingCount = tweetForm.find('.post-area-remaining');
$replyText.data('unicodeConversionStack', []); remainingCount.text(140);
$replyText.data('disabledUnicodeRules', []);
if (btnPostSubmit.closest('.post-area,.post-reply-content')) {
$('.post-area-new').removeClass('open').find('textarea').blur();
};
textArea.data('unicodeConversionStack', []);
textArea.data('disabledUnicodeRules', []);
}
} }
function retweetSubmit(e) { function retweetSubmit(e) {

50
js/twister_actions.js

@ -263,30 +263,50 @@ function newPostMsg(msg, $postOrig) {
} }
} }
function newRtMsg($postOrig) { function newRtMsg(postData, msg) {
var content_to_rt = $postOrig.attr('data-content_to_rt'); var userpost = $.evalJSON(postData.attr('data-content_to_rt'));
var content_to_sigrt = $postOrig.attr('data-content_to_sigrt'); var sig_userpost;
if (userpost.rt) {
if (parseInt(twisterVersion) <= 93000) {
alert(polyglot.t('error',
{error: 'can\'t handle retwisting of commented retwisted twists with daemon version '
+ twisterDisplayVersion + ' and below of that. please upgrade it.'}
));
return;
} else {
// dropping of rt to avoid overquoting
sig_userpost = userpost.sig_wort;
userpost.rt = undefined;
userpost.sig_rt = undefined;
}
} else {
sig_userpost = postData.attr('data-content_to_sigrt');
}
var sig_userpost = String(content_to_sigrt); var rtObj = {sig_userpost: sig_userpost, userpost: userpost};
var userpost = $.evalJSON(String(content_to_rt));
var rtObj = { sig_userpost :sig_userpost, userpost : userpost };
if( lastPostId != undefined ) { if (typeof lastPostId !== 'undefined') {
if ( typeof _sendedPostIDs !== 'undefined' ) if (typeof _sendedPostIDs !== 'undefined')
_sendedPostIDs.push(lastPostId + 1); _sendedPostIDs.push(lastPostId + 1);
var params = [defaultScreenName, lastPostId+1, rtObj] var params = [defaultScreenName, lastPostId + 1, rtObj];
twisterRpc("newrtmsg", params, if (typeof msg !== 'undefined')
function(arg, ret) { incLastPostId(); }, null, params.push(msg);
function(arg, ret) { var msg = ("message" in ret) ? ret.message : ret;
alert(polyglot.t("ajax_error", { error: msg })); }, null); twisterRpc('newrtmsg', params,
function(arg, ret) {incLastPostId();}, null,
function(arg, ret) {var msg = ('message' in ret) ? ret.message : ret;
alert(polyglot.t('ajax_error', {error: msg}));
}, null
);
} else { } else {
alert(polyglot.t("Internal error: lastPostId unknown (following yourself may fix!)")); alert(polyglot.t('Internal error: lastPostId unknown (following yourself may fix!)'));
} }
} }
function updateProfileData(profileModalContent, username) { function updateProfileData(profileModalContent, username) {
//profileModalContent.find("a").attr("href",$.MAL.userUrl(username)); //profileModalContent.find("a").attr("href",$.MAL.userUrl(username));

10
js/twister_network.js

@ -4,6 +4,8 @@
// Provides functions for periodic network status check // Provides functions for periodic network status check
// Interface to network.html page. // Interface to network.html page.
var twisterVersion;
var twisterDisplayVersion;
var twisterdConnections = 0; var twisterdConnections = 0;
var twisterdAddrman = 0; var twisterdAddrman = 0;
var twisterDhtNodes = 0; var twisterDhtNodes = 0;
@ -301,10 +303,10 @@ function initInterfaceNetwork() {
}); });
} }
else else
{ {
$(".userMenu-profile > a").text(polyglot.t("Login")); $(".userMenu-profile > a").text(polyglot.t("Login"));
$(".userMenu-profile > a").attr("href","login.html"); $(".userMenu-profile > a").attr("href","login.html");
} }
}); });
networkUpdate(); networkUpdate();
setInterval("networkUpdate()", 2000); setInterval("networkUpdate()", 2000);

4
theme_calm/css/style.css

@ -2183,6 +2183,10 @@ textarea.splited-post {
min-height: 68px; min-height: 68px;
} }
.reTwist .post-area-extras {
margin-right: 10px;
}
/************************************* /*************************************
********* REPLY POSTS PROMPT ********* ********* REPLY POSTS PROMPT *********
**************************************/ **************************************/

Loading…
Cancel
Save