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.js59
1 files changed, 48 insertions, 11 deletions
diff --git a/plugins/Transitions/javascripts/transitions.js b/plugins/Transitions/javascripts/transitions.js
index cb98e3d045..a11f6860c6 100644
--- a/plugins/Transitions/javascripts/transitions.js
+++ b/plugins/Transitions/javascripts/transitions.js
@@ -30,6 +30,10 @@ DataTable_RowActions_Transitions.isPageTitleReport = function (module, action) {
return module == 'Actions' && (action == 'getPageTitles' || action == 'getPageTitlesFollowingSiteSearch');
};
+DataTable_RowActions_Transitions.isActionCustomDimensionReport = function (params) {
+ return params.module == 'CustomDimensions' && params.action == 'getCustomDimension' && params.scopeOfDimension && params.scopeOfDimension === 'action';
+};
+
DataTable_RowActions_Transitions.prototype.trigger = function (tr, e, subTableLabel) {
var link = tr.find('> td:first > a').attr('href');
link = $('<textarea>').html(link).val(); // remove html entities
@@ -40,6 +44,27 @@ DataTable_RowActions_Transitions.prototype.trigger = function (tr, e, subTableLa
this.openPopover('url:' + link);
} else if (DataTable_RowActions_Transitions.isPageTitleReport(module, action)) {
DataTable_RowAction.prototype.trigger.apply(this, [tr, e, subTableLabel]);
+ } else if (DataTable_RowActions_Transitions.isActionCustomDimensionReport(this.dataTable.param)) {
+
+ var label = this.getLabelFromTr(tr);
+ if (label && label.substr(0, 1) === '@') {
+ label = label.substr(1);
+ }
+
+ var subtable = tr.closest('table');
+ if (subtable.is('.subDataTable')) {
+ var prev = subtable.closest('tr').prev();
+ var segment = prev.attr('data-segment-filter');
+ if (segment) {
+ label = unescape(label);
+ if (this.transitions === null) {
+ this.transitions = new Piwik_Transitions('url', label, this, segment);
+ } else {
+ this.transitions.reset('url', label, segment);
+ }
+ this.transitions.showPopover();
+ }
+ }
} else {
alert('Transitions can\'t be used on this report.');
}
@@ -95,7 +120,8 @@ DataTable_RowActions_Registry.register({
isAvailableOnReport: function (dataTableParams) {
return (
DataTable_RowActions_Transitions.isPageUrlReport(dataTableParams.module, dataTableParams.action) ||
- DataTable_RowActions_Transitions.isPageTitleReport(dataTableParams.module, dataTableParams.action)
+ DataTable_RowActions_Transitions.isPageTitleReport(dataTableParams.module, dataTableParams.action) ||
+ DataTable_RowActions_Transitions.isActionCustomDimensionReport(dataTableParams)
);
},
@@ -109,6 +135,11 @@ DataTable_RowActions_Registry.register({
// not on page url without link (i.e. "Page URL not defined")
return false;
}
+ if (DataTable_RowActions_Transitions.isActionCustomDimensionReport(dataTableParams)
+ && !tr.parents('table').first().hasClass('subDataTable')) {
+ // only show it in subtables of custom dimensions
+ return false;
+ }
return true;
}
@@ -118,8 +149,8 @@ DataTable_RowActions_Registry.register({
// TRANSITIONS IMPLEMENTATION
//
-function Piwik_Transitions(actionType, actionName, rowAction) {
- this.reset(actionType, actionName);
+function Piwik_Transitions(actionType, actionName, rowAction, segment) {
+ this.reset(actionType, actionName, segment);
this.rowAction = rowAction;
this.ajax = new Piwik_Transitions_Ajax();
@@ -129,9 +160,10 @@ function Piwik_Transitions(actionType, actionName, rowAction) {
this.rightGroups = ['followingPages', 'followingSiteSearches', 'downloads', 'outlinks'];
}
-Piwik_Transitions.prototype.reset = function (actionType, actionName) {
+Piwik_Transitions.prototype.reset = function (actionType, actionName, segment) {
this.actionType = actionType;
this.actionName = actionName;
+ this.segment = segment;
this.popover = null;
this.canvas = null;
@@ -179,7 +211,7 @@ Piwik_Transitions.prototype.showPopover = function () {
}
// load the data
- self.model.loadData(self.actionType, self.actionName, function () {
+ self.model.loadData(self.actionType, self.actionName, self.segment, function () {
if (typeof Piwik_Transitions.popoverHtml == 'undefined') {
// html not there yet
callbackForHtml = bothLoaded;
@@ -1249,7 +1281,7 @@ Piwik_Transitions_Model.prototype.htmlLoaded = function () {
};
};
-Piwik_Transitions_Model.prototype.loadData = function (actionType, actionName, callback) {
+Piwik_Transitions_Model.prototype.loadData = function (actionType, actionName, segment, callback) {
var self = this;
this.pageviews = 0;
@@ -1287,11 +1319,16 @@ Piwik_Transitions_Model.prototype.loadData = function (actionType, actionName, c
this.date = '';
- this.ajax.callApi('Transitions.getTransitionsForAction', {
- actionType: actionType,
- actionName: actionName,
- expanded: 1
- },
+ var params = {
+ actionType: actionType,
+ actionName: actionName,
+ expanded: 1
+ };
+ if (segment) {
+ params.segment = segment;
+ }
+
+ this.ajax.callApi('Transitions.getTransitionsForAction', params,
function (report) {
self.date = report.date;