From c4f60a375b1723c80aec5706200897c32cd2ad2d Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 5 Jun 2020 17:26:03 +0200 Subject: [PATCH] wip #3658 @1.5 --- js/libs/fluidbook/fluidbook.links.js | 21 +++++++++++++++++-- js/libs/fluidbook/fluidbook.stats.js | 12 +++++++++++ .../fluidbook/links/fluidbook.links.zoom.js | 2 +- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/js/libs/fluidbook/fluidbook.links.js b/js/libs/fluidbook/fluidbook.links.js index 2c8e339e..5913d593 100644 --- a/js/libs/fluidbook/fluidbook.links.js +++ b/js/libs/fluidbook/fluidbook.links.js @@ -37,7 +37,7 @@ FluidbookLinks.prototype = { }); new ClipboardJS('[data-clipboard-text]'); - $(document).on('click','[data-clipboard-text]',function(){ + $(document).on('click', '[data-clipboard-text]', function () { $this.fluidbook.tooltip.displayTooltip($this.fluidbook.l10n.__('copied!')); return true; }); @@ -75,11 +75,28 @@ FluidbookLinks.prototype = { if (href === undefined) { return true; } - var external = href.substr(0, 4) === 'http'; + var external = href.indexOf('http') === 0; if (href === '#') { return true; } + console.log(external, $this.fluidbook.stats.relay_url_params, $(this).hasClass('relay_appended')); + + 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 (!navigator.onLine && external && $this.fluidbook.settings.phonegap) { $this.fluidbook.alertInternetRequired(); e.preventDefault(); diff --git a/js/libs/fluidbook/fluidbook.stats.js b/js/libs/fluidbook/fluidbook.stats.js index b9195339..5de67832 100644 --- a/js/libs/fluidbook/fluidbook.stats.js +++ b/js/libs/fluidbook/fluidbook.stats.js @@ -1,7 +1,9 @@ function FluidbookStats(fluidbook) { + var $this = this; this.fluidbook = fluidbook; this.id = this.fluidbook.settings.id; this.vid = guid(); + this.relay_url_params = {}; if (this.fluidbook.settings.stats) { this.worker = new Worker('js/libs/fluidbook/workers/stats.js'); } @@ -19,6 +21,16 @@ function FluidbookStats(fluidbook) { this.ga = false; } } + if (this.fluidbook.settings.relay_url_params !== '') { + var e = this.fluidbook.settings.relay_url_params.split(','); + var p = []; + $.each(e, function (k, v) { + if ($_GET[v] !== undefined && $_GET[v] !== null) { + p.push(v + '=' + encodeURIComponent($_GET[v])); + } + }); + this.relay_url_params = p.join('&'); + } this.init(); } diff --git a/js/libs/fluidbook/links/fluidbook.links.zoom.js b/js/libs/fluidbook/links/fluidbook.links.zoom.js index d681d15d..4a3d7294 100644 --- a/js/libs/fluidbook/links/fluidbook.links.zoom.js +++ b/js/libs/fluidbook/links/fluidbook.links.zoom.js @@ -171,7 +171,6 @@ FluidbookLinksZoom.prototype = { for (var i = from; increment === 1 ? i <= to : i >= to; i += increment) { var data = zoomLink.data('d-' + i); - console.log(i, data); if (data !== undefined) { var j = i + 1; var label = $this.fluidbook.settings['product_zoom_label_' + j]; @@ -199,6 +198,7 @@ FluidbookLinksZoom.prototype = { if (action === 'link') { menu += 'href="' + data + '" target="_blank"'; + linkClass += ' ext'; } else if (action === 'copy') { menu += 'data-clipboard-text="' + escapeHtml(data) + '" '; } else if (action === 'video') { -- 2.39.5