diaspora/public/javascripts/app/views/stream_object_view.js

53 lines
1.5 KiB
JavaScript

app.views.StreamObject = app.views.Base.extend({
initialize: function(options) {
this.setupRenderEvents();
},
postRenderTemplate : function() {
// collapse long posts
this.$(".collapsible").expander({
slicePoint: 400,
widow: 12,
expandPrefix: "",
expandText: Diaspora.I18n.t("show_more"),
userCollapse: false,
beforeExpand: function() {
if ($(this).find('.summary').length == 0) { // Sigh. See comments in the spec.
var readMoreDiv = $(this).find('.read-more');
var lastElementBeforeReadMore = readMoreDiv.prev();
var firstElementAfterReadMore = readMoreDiv.next().children().first();
if (lastElementBeforeReadMore.is('p')) {
lastElementBeforeReadMore.append(firstElementAfterReadMore.html());
firstElementAfterReadMore.remove();
} else if (lastElementBeforeReadMore.is('ul') && firstElementAfterReadMore.is('ul')) {
var firstBullet = firstElementAfterReadMore.children().first();
lastElementBeforeReadMore.find('li').last().append(firstBullet.html());
firstBullet.remove();
}
readMoreDiv.remove();
}
}
});
},
destroyModel: function(evt) {
if (evt) {
evt.preventDefault();
}
if (!confirm(Diaspora.I18n.t("confirm_dialog"))) {
return
}
this.model.destroy();
this.slideAndRemove();
},
slideAndRemove : function() {
$(this.el).slideUp(400, function() {
$(this).remove();
});
}
});