Skip to content

Commit

Permalink
Allowing adding more than one person to reply to. First part of #30
Browse files Browse the repository at this point in the history
  • Loading branch information
cezarsa committed Jan 17, 2010
1 parent eee7c01 commit 54cb8ec
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 8 deletions.
1 change: 1 addition & 0 deletions background.html
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,7 @@
this.urlShortener = '';
this.isComposing = false;
this.replyId = null;
this.replyUser = null;
}

function TweetManager() {
Expand Down
52 changes: 44 additions & 8 deletions popup.html
Original file line number Diff line number Diff line change
Expand Up @@ -118,13 +118,15 @@

var Composer = {
replyId: null,
replyUser: null,
rtId: null,
destroyId: null,
favoriteId: null,

init: function() {
if(tweetManager.composerData.isComposing) {
Composer.replyId = tweetManager.composerData.replyId;
Composer.replyUser = tweetManager.composerData.replyUser;
$("#compose_tweet_area textarea").val(tweetManager.composerData.saveMessage || '');
Composer.showComposeArea(true, true);
}
Expand Down Expand Up @@ -225,16 +227,35 @@
}, this.favoriteId);
},

addUser: function (user) {
var textArea = $("#compose_tweet_area textarea");
var currentVal = textArea.val();
if(currentVal.length > 0 && currentVal[currentVal.length - 1] != ' ') {
currentVal += ' ';
}
currentVal += '@' + user + ' ';
textArea.val(currentVal);
},

reply: function (node) {
Composer.showComposeArea(true);
var el = $("#compose_tweet_area textarea");

var textArea = $("#compose_tweet_area textarea");
var currentVal = textArea.val();
var user = $(".user", node).attr('screen_name');
if(tweetManager.currentTimeline == "dms") {
el.val("d " + user + " ");

if(Composer.replyId && currentVal.indexOf(Composer.replyUser) != -1) {
this.addUser(user);
return;
} else {
el.val("@" + user + " ");
if(tweetManager.currentTimeline == "dms") {
textArea.val("d " + user + " ");
} else {
this.addUser(user);
}
tweetManager.composerData.replyId = Composer.replyId = $(node).attr('tweetid');
tweetManager.composerData.replyUser = Composer.replyUser = user;
}
tweetManager.composerData.replyId = Composer.replyId = $(node).attr('tweetid');
Composer.textareaChanged();
},

Expand All @@ -255,6 +276,7 @@
$("#compose_tweet img").attr('src', 'img/arrow_up.gif');
tweetManager.composerData.isComposing = true;
tweetManager.composerData.replyId = Composer.replyId;
tweetManager.composerData.replyUser = Composer.replyUser;
} else if(!showOnly) {
if(noAnimation) {
composeArea.hide();
Expand All @@ -265,6 +287,7 @@
tweetManager.composerData.saveMessage = '';
tweetManager.composerData.isComposing = false;
tweetManager.composerData.replyId = null;
tweetManager.composerData.replyUser = null;
Shortener.closeArea();
}

Expand Down Expand Up @@ -516,7 +539,7 @@

var from = null;
if(tweet.source) {
from = tweet.source.replace(/(href=(['"])(.*?)\2)/i, "onclick=\"openTab('$3')\"");
from = tweet.source.replace(/(href=(['"])(.*?)\2)/i, "href='#' onclick=\"openTab('$3')\"");
}

var inReply = null;
Expand All @@ -541,8 +564,8 @@

var str = '<div tweetid="' + tweet.id + '" class="' + tweetClass + '">';
str += '<div class="first_container">';
str += '<img class="profile" src="' + user.profile_image_url + '" onclick="openTab(\'' + TwitterLib.URLS.BASE + user.screen_name + '\')"></img>';
str += '<a href="#" class="user" screen_name="' + user.screen_name + '" onclick="openTab(\'' + TwitterLib.URLS.BASE + user.screen_name + '\')" title="' + tweetTitleUserName + '">' + tweetUserName + '</a>';
str += '<img class="profile" src="' + user.profile_image_url + '" onclick="Renderer.handleUserClick(\'' + user.screen_name + '\', \'' + TwitterLib.URLS.BASE + user.screen_name + '\')"></img>';
str += '<a href="#" class="user" screen_name="' + user.screen_name + '" onclick="Renderer.handleUserClick(\'' + user.screen_name + '\', \'' + TwitterLib.URLS.BASE + user.screen_name + '\')" title="' + tweetTitleUserName + '">' + tweetUserName + '</a>';

str += '<div class="text">';
if(tweet.retweeted_status) {
Expand Down Expand Up @@ -597,6 +620,19 @@
return str;
},

handleUserClick: function (user, url) {
// We're gonna do different stuff depending on Composer area status
var composeArea = $("#compose_tweet_area");
var visible = composeArea.is(':visible');
var button = event.button;
if(!visible || button == 1 || event.ctrlKey) {
// Composer not visible or Middle click or Ctrl click: Bailing out.
openTab(url);
return;
}
Composer.addUser(user);
},

assemblyTweets: function (tweets, timelineId) {
var destination = $("#timeline-" + timelineId);
if(destination.length == 0)
Expand Down

0 comments on commit 54cb8ec

Please sign in to comment.