diaspora/public/javascripts/widgets/stream-element.js
danielgrippi ae6fa5bebb don't use Diaspora widget system or stream.js when backbone is active;
migrating like actions over to backbone; some cleanup; bump jquery to
1.7.1
2012-01-07 14:23:22 -08:00

70 lines
2.2 KiB
JavaScript

(function() {
var StreamElement = function() {
var self = this;
this.subscribe("widget/ready", function(evt, element) {
if( Diaspora.backboneEnabled() ){ return }
self.postGuid = element.attr("id");
$.extend(self, {
commentForm: self.instantiate("CommentForm", element.find("form.new_comment")),
commentStream: self.instantiate("CommentStream", element.find(".comment_stream")),
likes: self.instantiate("Likes", element.find(".likes.on_post .likes_container:first")),
lightBox: self.instantiate("Lightbox", element),
timeAgo: self.instantiate("TimeAgo", element.find(".timeago a abbr.timeago")),
content: element.find(".content .collapsible"),
blockUserLink: element.find(".block_user"),
deletePostLink: element.find(".remove_post"),
focusCommentLink: element.find("a.focus_comment_textarea"),
hidePostLoader: element.find("img.hide_loader"),
hidePostUndo: element.find("a.stream_element_hide_undo"),
post: element,
postScope: element.find("span.post_scope")
});
// twipsy tooltips
$([
self.blockUserLink,
self.deletePostLink,
self.postScope
]).map(function() { this.twipsy(); });
// collapse long posts
self.content.expander({
slicePoint: 400,
widow: 12,
expandText: Diaspora.I18n.t("show_more"),
userCollapse: false
});
self.globalSubscribe("likes/" + self.postGuid + "/updated", function() {
self.likes = self.instantiate("Likes", self.post.find(".likes_container:first"));
});
self.deletePostLink.click(function(evt) {
evt.preventDefault();
self.hidePostLoader.ajaxStart( function() {
self.deletePostLink.addClass("hidden");
$(this).removeClass('hidden');
} );
});
self.focusCommentLink.click(function(evt) {
evt.preventDefault();
self.commentForm.commentInput.focus();
});
self.hidePostUndo.click(function(evt) {
evt.preventDefault();
self.hidePostLoader.toggleClass("hidden");
});
});
};
Diaspora.Widgets.StreamElement = StreamElement;
})();