mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
FIX: don't track clicks on links in quotes
This commit is contained in:
@ -12,7 +12,15 @@ export default {
|
|||||||
if (Discourse.Utilities.selectedText() !== "") { return false; }
|
if (Discourse.Utilities.selectedText() !== "") { return false; }
|
||||||
|
|
||||||
var $link = $(e.currentTarget);
|
var $link = $(e.currentTarget);
|
||||||
if ($link.hasClass('lightbox') || $link.hasClass('mention-group') || $link.hasClass('no-track-link')) { return true; }
|
|
||||||
|
// don't track lightboxes, group mentions or links with disabled tracking
|
||||||
|
if ($link.hasClass('lightbox') || $link.hasClass('mention-group') ||
|
||||||
|
$link.hasClass('no-track-link') || $link.hasClass('hashtag')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// don't track links in quotes or in elided part
|
||||||
|
if ($link.parents('aside.quote,.elided').length) { return true; }
|
||||||
|
|
||||||
var href = $link.attr('href') || $link.data('href'),
|
var href = $link.attr('href') || $link.data('href'),
|
||||||
$article = $link.closest('article,.excerpt,#revisions'),
|
$article = $link.closest('article,.excerpt,#revisions'),
|
||||||
@ -20,7 +28,8 @@ export default {
|
|||||||
topicId = $('#topic').data('topic-id') || $article.data('topic-id'),
|
topicId = $('#topic').data('topic-id') || $article.data('topic-id'),
|
||||||
userId = $link.data('user-id');
|
userId = $link.data('user-id');
|
||||||
|
|
||||||
if (!href || href.trim().length === 0 || href.indexOf("mailto:") === 0) { return; }
|
if (!href || href.trim().length === 0) { return false; }
|
||||||
|
if (href.indexOf("mailto:") === 0) { return true; }
|
||||||
|
|
||||||
if (!userId) userId = $article.data('user-id');
|
if (!userId) userId = $article.data('user-id');
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ test("does not track clicks on quote buttons", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("does not track clicks on category badges", () => {
|
test("does not track clicks on category badges", () => {
|
||||||
ok(!track(generateClickEventOn('.hashtag')));
|
ok(track(generateClickEventOn('.hashtag')));
|
||||||
});
|
});
|
||||||
|
|
||||||
test("removes the href and put it as a data attribute", function() {
|
test("removes the href and put it as a data attribute", function() {
|
||||||
|
@ -79,7 +79,7 @@ test("does not track clicks on quote buttons", function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("does not track clicks on category badges", () => {
|
test("does not track clicks on category badges", () => {
|
||||||
ok(!track(generateClickEventOn('.hashtag')));
|
ok(track(generateClickEventOn('.hashtag')));
|
||||||
});
|
});
|
||||||
|
|
||||||
test("removes the href and put it as a data attribute", function() {
|
test("removes the href and put it as a data attribute", function() {
|
||||||
|
@ -31,6 +31,10 @@ module("lib:click-track", {
|
|||||||
<a id="same-site" href="http://discuss.domain.com">forum</a>
|
<a id="same-site" href="http://discuss.domain.com">forum</a>
|
||||||
<a class="attachment" href="http://discuss.domain.com/uploads/default/1234/1532357280.txt">log.txt</a>
|
<a class="attachment" href="http://discuss.domain.com/uploads/default/1234/1532357280.txt">log.txt</a>
|
||||||
<a class="hashtag" href="http://discuss.domain.com">#hashtag</a>
|
<a class="hashtag" href="http://discuss.domain.com">#hashtag</a>
|
||||||
|
<a class="mailto" href="mailto:foo@bar.com">email-me</a>
|
||||||
|
<aside class="quote">
|
||||||
|
<a class="inside-quote" href="http://discuss.domain.com">foobar</a>
|
||||||
|
</aside>
|
||||||
</article>
|
</article>
|
||||||
</div>`);
|
</div>`);
|
||||||
}
|
}
|
||||||
@ -66,12 +70,20 @@ test("does not track clicks on back buttons", function() {
|
|||||||
ok(track(generateClickEventOn('.back')));
|
ok(track(generateClickEventOn('.back')));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("does not track clicks in quotes", function() {
|
||||||
|
ok(track(generateClickEventOn('.inside-quote')));
|
||||||
|
});
|
||||||
|
|
||||||
test("does not track clicks on quote buttons", function() {
|
test("does not track clicks on quote buttons", function() {
|
||||||
ok(track(generateClickEventOn('.quote-other-topic')));
|
ok(track(generateClickEventOn('.quote-other-topic')));
|
||||||
});
|
});
|
||||||
|
|
||||||
test("does not track clicks on category badges", () => {
|
test("does not track clicks on category badges", () => {
|
||||||
ok(!track(generateClickEventOn('.hashtag')));
|
ok(track(generateClickEventOn('.hashtag')));
|
||||||
|
});
|
||||||
|
|
||||||
|
test("does not track clicks on mailto", function() {
|
||||||
|
ok(track(generateClickEventOn('.mailto')));
|
||||||
});
|
});
|
||||||
|
|
||||||
test("removes the href and put it as a data attribute", function() {
|
test("removes the href and put it as a data attribute", function() {
|
||||||
|
Reference in New Issue
Block a user