]> _ Git - fluidbook-html5.git/commitdiff
wait #3840 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 18 Aug 2020 16:04:12 +0000 (18:04 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 18 Aug 2020 16:04:12 +0000 (18:04 +0200)
js/libs/fluidbook/fluidbook.links.js

index e16c355e55af3d90d4d39545efdae66074736574..fc116a965b712dc3cc32c98b1ad228ae78a3d006 100644 (file)
@@ -98,19 +98,8 @@ FluidbookLinks.prototype = {
                 return true;
             }
 
-            if (external && $this.fluidbook.stats.relay_url_params !== '' && !$(this).hasClass('relay_appended')) {
-                $(this).addClass('relay_appended');
-
-                var u = new URL(href);
-                var s = '';
-                if (u.search === '') {
-                    s = '?';
-                } else {
-                    s = '&';
-                }
-                u.search = s + $this.fluidbook.stats.relay_url_params;
-                $(this).attr('href', u.href);
-                href = u.href;
+            if (external) {
+                href = $this.handleExternalHref(this);
             }
 
             if (!navigator.onLine && external && $this.fluidbook.settings.phonegap) {
@@ -221,8 +210,40 @@ FluidbookLinks.prototype = {
 
             return false;
         });
+    },
+
+    handleExternalHref: function (link) {
+        var href = $(link).attr('href');
+        var change = false;
+        if (this.fluidbook.stats.relay_url_params !== '' && !$(link).hasClass('relay_appended')) {
+            $(link).addClass('relay_appended');
+            href = this.appendParamsToURL(href, this.fluidbook.stats.relay_url_params);
+            change = true;
+        }
 
+        if (this.fluidbook.settings.linkTracker !== '' && (this.fluidbook.settings.linkTrackerRegexp === '' || href.indexOf(this.fluidbook.settings.linkTrackerRegexp) >= 0) && !$(link).hasClass('tracking_appended')) {
+            $(link).addClass('relay_appended');
+            href = this.appendParamsToURL(href, this.fluidbook.settings.linkTracker);
+            change = true;
+        }
 
+        if (change) {
+            $(link).attr('href', href);
+        }
+        return href;
+
+    },
+
+    appendParamsToURL: function (url, params) {
+        var u = new URL(url);
+        var s = '';
+        if (u.search === '') {
+            s = '?';
+        } else {
+            s = '&';
+        }
+        u.search = s + params;
+        return u.href;
     },
 
     hidePlacedLink: function (p) {