2 var e = window.jQuery;
\r
3 Discourse.ClickTrack = {
\r
4 trackClick: function(t) {
\r
5 if ("" !== Discourse.Utilities.selectedText()) return !1;
\r
6 var s = e(t.currentTarget);
\r
7 if (s.hasClass("lightbox")) return !0;
\r
8 var a = s.attr("href") || s.data("href"),
\r
9 n = s.closest("article"),
\r
10 r = n.data("post-id"),
\r
11 o = e("#topic").data("topic-id"),
\r
12 i = s.data("user-id");
\r
13 if (a && 0 !== a.trim().length) {
\r
14 i || (i = n.data("user-id"));
\r
15 var u = i && i === Discourse.User.currentProp("id"),
\r
16 c = Discourse.getURL("/clicks/track?url=" + encodeURIComponent(a));
\r
17 if (r && !s.data("ignore-post-id") && (c += "&post_id=" + encodeURI(r)), o && (c += "&topic_id=" + encodeURI(o)), !u) {
\r
18 var l = e("span.badge", s);
\r
19 if (1 === l.length && 0 === s.closest(".badge-category").length && (0 === s.closest(".onebox-result").length && 0 === s.closest(".onebox-body").length || s.hasClass("track-link"))) {
\r
21 /^\d+$/.test(h) && l.html(parseInt(h, 10) + 1)
\r
24 if (3 === t.which) {
\r
25 var p = Discourse.SiteSettings.track_external_right_clicks ? c : a;
\r
26 return s.attr("href", p), !0
\r
28 if (t.shiftKey || t.metaKey || t.ctrlKey || 2 === t.which) return Discourse.ajax("/clicks/track", {
\r
37 if (t.preventDefault(), s.hasClass("back") || s.hasClass("quote-other-topic")) return !0;
\r
38 if (s.data("href") || (s.addClass("no-href"), s.data("href", s.attr("href")), s.attr("href", null), s.data("auto-route", !0)), Discourse.SiteSettings.prevent_anons_from_downloading_files && s.hasClass("attachment") && !Discourse.User.current()) return bootbox.alert(I18n.t("post.errors.attachment_download_requires_login")), !1;
\r
39 if (Discourse.URL.isInternal(a) && !s.hasClass("attachment")) return Discourse.ajax("/clicks/track", {
\r
47 }), Discourse.URL.routeTo(a), !1;
\r
48 if (Discourse.User.currentProp("external_links_in_new_tab")) {
\r
49 var f = window.open(c, "_blank");
\r
50 f.focus(), setTimeout(function() {
\r
51 s.removeClass("no-href"), s.attr("href", s.data("href")), s.data("href", null)
\r
53 } else Discourse.URL.redirectTo(c);
\r