Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Transitions/javascripts/transitions.js')
-rw-r--r--plugins/Transitions/javascripts/transitions.js67
1 files changed, 33 insertions, 34 deletions
diff --git a/plugins/Transitions/javascripts/transitions.js b/plugins/Transitions/javascripts/transitions.js
index e4efbe2def..944fb0c765 100644
--- a/plugins/Transitions/javascripts/transitions.js
+++ b/plugins/Transitions/javascripts/transitions.js
@@ -249,18 +249,22 @@ Piwik_Transitions.prototype.preparePopover = function () {
if (self.actionType == 'url') {
title = Piwik_Transitions_Util.shortenUrl(title, true);
}
- title = self.centerBox.find('h2')
- .addClass('Transitions_ApplyTextAndTruncate')
- .data('text', title)
- .data('maxLines', 3);
-
+ var h2 = self.centerBox.find('h2');
+ var textContainer = h2;
if (self.actionType == 'url') {
- title.click(function () {
- self.openExternalUrl(self.actionName);
- }).css('cursor', 'pointer');
+ var a = $(document.createElement('a'));
+ a.attr('href', self.actionName);
+ a.attr('rel', 'noreferrer noopener');
+ a.attr('target', '_blank');
+ h2.append(a);
+ textContainer = a;
}
- var element = title.add(self.popover.find('p.Transitions_Pageviews'));
+ textContainer.addClass('Transitions_ApplyTextAndTruncate')
+ .data('text', title)
+ .data('maxLines', 3);
+
+ var element = textContainer.add(self.popover.find('p.Transitions_Pageviews'));
element.tooltip({
track: true,
@@ -564,15 +568,11 @@ Piwik_Transitions.prototype.renderOpenGroup = function (groupName, side, onlyBg)
if (!isOthers && (groupName == 'previousPages' || groupName == 'followingPages')) {
onClick = (function (url) {
return function () {
- self.reloadPopover(url);
+ self.reloadPopover(url.replace(/^(?!http)/, 'http://'));
};
})(label);
} else if (!isOthers && (groupName == 'outlinks' || groupName == 'websites' || groupName == 'downloads')) {
- onClick = (function (url) {
- return function () {
- self.openExternalUrl(url);
- };
- })(label);
+ onClick = label
}
var tooltip = Piwik_Transitions_Translations.XOfY;
@@ -742,17 +742,6 @@ Piwik_Transitions.prototype.unHighlightGroup = function (groupName, side) {
this.renderLoops();
};
-/** Open a link in a new tab */
-Piwik_Transitions.prototype.openExternalUrl = function (url) {
- if (url.substring(0, 4) != 'http') {
- // internal pages don't have the protocol
- // external links / downloads have the protocol
- url = 'http://' + url;
- }
- url = piwik.piwik_url + '?module=Proxy&action=redirect&url=' + encodeURIComponent(url);
- window.open(url, '_newtab');
-};
-
// --------------------------------------
// CANVAS
// --------------------------------------
@@ -906,17 +895,27 @@ Piwik_Transitions_Canvas.prototype.renderText = function (text, x, y, cssClass,
div.addClass('Transitions_' + cssClass);
}
}
+ var textContainer = div;
if (onClick) {
- div.css('cursor', 'pointer').hover(function () {
- $(this).addClass('Transitions_Hover');
- },function () {
- $(this).removeClass('Transitions_Hover');
- }).click(onClick);
+ if (typeof onClick == 'function') {
+ div.css('cursor', 'pointer').hover(function () {
+ $(this).addClass('Transitions_Hover');
+ },function () {
+ $(this).removeClass('Transitions_Hover');
+ }).click(onClick);
+ } else {
+ var a = $(document.createElement('a'));
+ a.attr('href', onClick);
+ a.attr('rel', 'noreferrer noopener');
+ a.attr('target', '_blank');
+ div.append(a);
+ textContainer = a;
+ }
}
if (maxLines) {
- div.addClass('Transitions_ApplyTextAndTruncate').data('text', text);
+ textContainer.addClass('Transitions_ApplyTextAndTruncate').data('text', text);
} else {
- div.html(text);
+ textContainer.html(text);
}
return div;
};
@@ -1025,7 +1024,7 @@ Piwik_Transitions_Canvas.prototype.renderBox = function (params) {
// text inside the box
if (params.boxText && !params.onlyBg) {
- var onClick = typeof params.onClick == 'function' ? params.onClick : false;
+ var onClick = params.onClick;
var boxTextLeft, boxTextTop, el;
if (params.side == 'left') {
boxTextLeft = this.leftBoxBeginX + 10;