diff --git a/plugins/Overlay/javascripts/Piwik_Overlay.js b/plugins/Overlay/javascripts/Piwik_Overlay.js index d04f8e5fbe80317823990a44f439b15230594ff9..4bde0ee34364ba901596d1962cbc479ea027f2c4 100644 --- a/plugins/Overlay/javascripts/Piwik_Overlay.js +++ b/plugins/Overlay/javascripts/Piwik_Overlay.js @@ -236,7 +236,11 @@ var Piwik_Overlay = (function () { // handle transitions link $transitionsLink.click(function () { - DataTable_RowActions_Transitions.launchForUrl(iframeCurrentPageNormalized); + var unescapedSegment = null; + if (segment) { + unescapedSegment = unescape(segment); + } + DataTable_RowActions_Transitions.launchForUrl(iframeCurrentPageNormalized, unescapedSegment); return false; }); diff --git a/plugins/Transitions/javascripts/transitions.js b/plugins/Transitions/javascripts/transitions.js index 20a4e7febffb67fd9f9772b432910cc3c334939b..8461c89069c444d595baf48e85a67d651e5115ba 100644 --- a/plugins/Transitions/javascripts/transitions.js +++ b/plugins/Transitions/javascripts/transitions.js @@ -17,8 +17,12 @@ function DataTable_RowActions_Transitions(dataTable) { DataTable_RowActions_Transitions.prototype = new DataTable_RowAction; /** Static helper method to launch transitions from anywhere */ -DataTable_RowActions_Transitions.launchForUrl = function (url) { - broadcast.propagateNewPopoverParameter('RowAction', 'Transitions:url:' + url); +DataTable_RowActions_Transitions.launchForUrl = function (url, segment) { + var value = 'Transitions:url:' + url; + if (segment) { + value += ':segment:' + segment; + } + broadcast.propagateNewPopoverParameter('RowAction', value); }; DataTable_RowActions_Transitions.isPageUrlReport = function (module, action) { @@ -63,6 +67,15 @@ DataTable_RowActions_Transitions.prototype.performAction = function (label, tr, }; DataTable_RowActions_Transitions.prototype.doOpenPopover = function (link) { + var posSegment = (link+'').indexOf(':segment:'); + var segment = null; + + // handle and remove ':segment:$SEGMENT' from link + if (posSegment && posSegment > 0) { + segment = link.substring(posSegment + (':segment:'.length)); + link = link.substring(0, posSegment); + } + var parts = link.split(':'); if (parts.length < 2) { return; @@ -73,9 +86,9 @@ DataTable_RowActions_Transitions.prototype.doOpenPopover = function (link) { var actionName = parts.join(':'); if (this.transitions === null) { - this.transitions = new Piwik_Transitions(actionType, actionName, this); + this.transitions = new Piwik_Transitions(actionType, actionName, this, segment); } else { - this.transitions.reset(actionType, actionName); + this.transitions.reset(actionType, actionName, segment); } this.transitions.showPopover(); };