diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 1fd6d1346..39f128a89 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -215,7 +215,7 @@ module ApplicationHelper
else
title = I18n.t 'application.helper.video_title.unknown'
end
- ' Youtube: ' + title + ''
+ ' Youtube: ' + title + ''
end
return processed_message
end
@@ -262,7 +262,7 @@ module ApplicationHelper
else
title = I18n.t 'application.helper.video_title.unknown'
end
- ' Vimeo: ' + title + ''
+ ' Vimeo: ' + title + ''
end
return processed_message
end
diff --git a/public/javascripts/widgets/embedder.js b/public/javascripts/widgets/embedder.js
index bab95c0bc..3dda07309 100644
--- a/public/javascripts/widgets/embedder.js
+++ b/public/javascripts/widgets/embedder.js
@@ -24,7 +24,7 @@
var service = $this.data("host"),
container = document.createElement("div"),
$container = $(container).attr("class", "video-container"),
- $videoContainer = $this.siblings(".video-container");
+ $videoContainer = $this.closest(".from").siblings(".video-container");
if($videoContainer.length) {
$videoContainer.slideUp("fast", function() { $(this).detach(); });
@@ -40,7 +40,7 @@
);
$container.hide()
- .insertBefore($this.siblings(".info"))
+ .insertBefore($this.closest(".from").siblings(".info"))
.slideDown('fast');
$this.click(function() {
@@ -53,6 +53,12 @@
Embedder.prototype.start = function() {
$(".stream").delegate("a.video-link", "click", this.onVideoLinkClicked);
this.registerServices();
+
+ var $post = $("#main_stream").children(".stream_element:first"),
+ $contentParagraph = $post.children(".content").children(".from").children("p"),
+ $infoDiv = $contentParagraph.closest(".from").siblings(".info");
+
+ this.canEmbed = $infoDiv.length;
};
Embedder.prototype.registerServices = function() {
@@ -70,8 +76,10 @@
};
Embedder.prototype.onVideoLinkClicked = function(evt) {
- evt.preventDefault();
- Diaspora.widgets.embedder.embed($(this));
+ if(this.canEmbed) {
+ evt.preventDefault();
+ Diaspora.widgets.embedder.embed($(this));
+ }
};
Diaspora.widgets.add("embedder", Embedder);
diff --git a/spec/javascripts/embedder-spec.js b/spec/javascripts/embedder-spec.js
index a1f92eb34..45d817b2d 100644
--- a/spec/javascripts/embedder-spec.js
+++ b/spec/javascripts/embedder-spec.js
@@ -45,6 +45,16 @@ describe("Diaspora", function() {
expect($.fn.delegate).toHaveBeenCalledWith("a.video-link", "click", Diaspora.widgets.embedder.onVideoLinkClicked);
});
});
+
+ it("has to have a certain DOM structure", function() {
+ spec.loadFixture("aspects_index");
+
+ var $post = $("#main_stream").children(".stream_element:first"),
+ $contentParagraph = $post.children(".content").children(".from").children("p"),
+ $infoDiv = $contentParagraph.closest(".from").siblings(".info");
+
+ expect($infoDiv.length).toEqual(1);
+ });
});
});
});
\ No newline at end of file