diff --git a/app/assets/javascripts/app/views/content_view.js b/app/assets/javascripts/app/views/content_view.js
index f40f607d9..3be2e958c 100644
--- a/app/assets/javascripts/app/views/content_view.js
+++ b/app/assets/javascripts/app/views/content_view.js
@@ -2,28 +2,17 @@
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.get("text"), 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 '';
- } else {
- return data.html || ""
- }
- },
largePhoto : function() {
var photos = this.model.get("photos")
@@ -37,13 +26,6 @@ app.views.Content = app.views.StreamObject.extend({
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');
@@ -95,3 +77,34 @@ app.views.ActivityStreams__Photo = app.views.Content.extend({
templateName : "activity-streams-photo"
});
+app.views.OEmbed = app.views.Base.extend({
+ templateName : "oembed",
+ events : {
+ "click .oembed .thumb": "showOembedContent"
+ },
+
+ presenter:function () {
+ return _.extend(this.defaultPresenter(), {
+ o_embed_html:this.embedHTML()
+ })
+ },
+
+ embedHTML:function () {
+ if (!this.model.get("o_embed_cache")) {
+ return "";
+ }
+ var data = this.model.get("o_embed_cache").data;
+ if (data.type == "photo") {
+ return '
';
+ } else {
+ return data.html || ""
+ }
+ },
+
+ showOembedContent:function () {
+ var insertHTML = $(this.embedHTML());
+ var paramSeparator = ( /\?/.test(insertHTML.attr("src")) ) ? "&" : "?";
+ insertHTML.attr("src", insertHTML.attr("src") + paramSeparator + "autoplay=1");
+ this.$el.html(insertHTML);
+ },
+})
\ No newline at end of file
diff --git a/app/assets/javascripts/app/views/stream_post_views.js b/app/assets/javascripts/app/views/stream_post_views.js
index 5d75c6a1e..599504911 100644
--- a/app/assets/javascripts/app/views/stream_post_views.js
+++ b/app/assets/javascripts/app/views/stream_post_views.js
@@ -6,7 +6,8 @@ app.views.StreamPost = app.views.Post.extend({
".feedback" : "feedbackView",
".likes" : "likesInfoView",
".comments" : "commentStreamView",
- ".post-content" : "postContentView"
+ ".post-content" : "postContentView",
+ ".oembed" : "oEmbedView"
},
events: {
@@ -26,6 +27,7 @@ app.views.StreamPost = app.views.Post.extend({
//subviews
this.commentStreamView = new app.views.CommentStream({model : this.model});
+ this.oEmbedView = new app.views.OEmbed({model : this.model});
},
diff --git a/app/assets/templates/oembed.jst.hbs b/app/assets/templates/oembed.jst.hbs
new file mode 100644
index 000000000..f2695f92a
--- /dev/null
+++ b/app/assets/templates/oembed.jst.hbs
@@ -0,0 +1,10 @@
+{{#if o_embed_cache}}
+ {{#if o_embed_cache.data.thumbnail_url}}
+