* Move all Diaspora-specific javascripts to app/assets/javascripts * Move all vendored javascripts to vendor/assets/javascripts * Add the appropriate Sprockets require directives to make sure everything gets included in the right order * Remove Jammit dependencies * Fix all templates that were using Jammit's include_javascripts helper * Add handlebars_assets gem for compiling Handlebars templates * Move all Handlebars templates to app/assets/templates and rename from .handlebars to .jst.hbs (this is to keep them in the same global JST namespace that they were in under Jammit) * Add public/assets to .gitignore since these files can and should be re-generated by Heroku or Capistrano during each deploy * Fix a few Handlebars templates that were looking for images in the wrong location (I'm sure there are others, but it's late) * Configure application.rb to precompile all javascript and css assets that were compiled by Jammit in the Rails 3.0 code
70 lines
1.9 KiB
JavaScript
70 lines
1.9 KiB
JavaScript
//= require ./stream_object_view
|
|
app.views.Content = app.views.StreamObject.extend({
|
|
|
|
events: {
|
|
"click .oembed .thumb": "showOembedContent",
|
|
"click .expander": "expandPost"
|
|
},
|
|
|
|
presenter : function(){
|
|
return _.extend(this.defaultPresenter(), {
|
|
text : app.helpers.textFormatter(this.model),
|
|
o_embed_html : this.embedHTML(),
|
|
largePhoto : this.largePhoto(),
|
|
smallPhotos : this.smallPhotos()
|
|
});
|
|
},
|
|
|
|
embedHTML: function(){
|
|
if(!this.model.get("o_embed_cache")) { return ""; }
|
|
var data = this.model.get("o_embed_cache").data;
|
|
if(data.type == "photo") {
|
|
return '<img src="'+data.url+'" width="'+data.width+'" height="'+data.height+'" />';
|
|
} else {
|
|
return data.html || ""
|
|
}
|
|
},
|
|
|
|
largePhoto : function() {
|
|
var photos = this.model.get("photos")
|
|
if(!photos || photos.length == 0) { return }
|
|
return photos[0]
|
|
},
|
|
|
|
smallPhotos : function() {
|
|
var photos = this.model.get("photos")
|
|
if(!photos || photos.length < 2) { return }
|
|
return photos.slice(1,8)
|
|
},
|
|
|
|
showOembedContent: function() {
|
|
var oembed = $(this.el).find(".oembed");
|
|
var insertHTML = $( this.embedHTML() );
|
|
var paramSeparator = ( /\?/.test(insertHTML.attr("src")) ) ? "&" : "?";
|
|
insertHTML.attr("src", insertHTML.attr("src") + paramSeparator + "autoplay=1");
|
|
oembed.html( insertHTML );
|
|
},
|
|
|
|
expandPost: function(evt) {
|
|
var el = $(this.el).find('.collapsible');
|
|
el.removeClass('collapsed').addClass('opened');
|
|
el.animate({'height':el.data('orig-height')}, 550, function() {
|
|
el.css('height','auto');
|
|
});
|
|
$(evt.currentTarget).hide();
|
|
}
|
|
|
|
});
|
|
|
|
app.views.StatusMessage = app.views.Content.extend({
|
|
templateName : "status-message"
|
|
});
|
|
|
|
app.views.Reshare = app.views.Content.extend({
|
|
templateName : "reshare"
|
|
});
|
|
|
|
app.views.ActivityStreams__Photo = app.views.Content.extend({
|
|
templateName : "activity-streams-photo"
|
|
});
|
|
|