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:
authorThomas Steur <thomas.steur@gmail.com>2015-11-25 23:12:20 +0300
committerThomas Steur <thomas.steur@gmail.com>2015-11-25 23:12:20 +0300
commit2ebe6246746356bebf75b801b6765e22b4c07919 (patch)
treed3254a60d63dea3043cedb68c4faa8874dd9001a /plugins/Overlay
parent926af9c74c67afc924e60fd6619ca499d1baab58 (diff)
make transtion and overlay row actions extendable by other plugins
Diffstat (limited to 'plugins/Overlay')
-rw-r--r--plugins/Overlay/javascripts/rowaction.js66
1 files changed, 40 insertions, 26 deletions
diff --git a/plugins/Overlay/javascripts/rowaction.js b/plugins/Overlay/javascripts/rowaction.js
index 8f11c736d0..de063b990e 100644
--- a/plugins/Overlay/javascripts/rowaction.js
+++ b/plugins/Overlay/javascripts/rowaction.js
@@ -15,39 +15,47 @@ function DataTable_RowActions_Overlay(dataTable) {
DataTable_RowActions_Overlay.prototype = new DataTable_RowAction;
+DataTable_RowActions_Overlay.registeredReports = [];
+DataTable_RowActions_Overlay.registerReport = function (handler) {
+ DataTable_RowActions_Overlay.registeredReports.push(handler);
+}
+
+
DataTable_RowActions_Overlay.prototype.onClick = function (actionA, tr, e) {
if (!actionA.data('overlay-manipulated')) {
actionA.data('overlay-manipulated', 1);
var segment, link;
- if (DataTable_RowActions_Transitions.isActionCustomDimensionReport(this.dataTable.param)) {
-
- link = this.getLabelFromTr(tr);
- if (link && link.substr(0, 1) === '@') {
- link = link.substr(1);
+ var i = 0;
+ for (i; i < DataTable_RowActions_Overlay.registeredReports.length; i++) {
+ var report = DataTable_RowActions_Overlay.registeredReports[i];
+ if (report
+ && report.onClick
+ && report.isAvailableOnReport
+ && report.isAvailableOnReport(this.dataTable.param)) {
+ var result = report.onClick.apply(this, arguments);
+
+ if (!result || !result.link) {
+ return;
+ }
+
+ link = result.link;
+ if (result.segment) {
+ segment = result.segment;
+ }
+ break;
}
-
- link = 'http://' + unescape(link);
-
- var subtable = tr.closest('table');
- if (subtable.is('.subDataTable')) {
- var prev = subtable.closest('tr').prev();
- segment = prev.attr('data-segment-filter');
- }
- } else {
-
- link = tr.find('> td:first > a').attr('href');
- link = $('<textarea>').html(link).val(); // remove html entities
}
+ if (link) {
+ var href = Overlay_Helper.getOverlayLink(this.dataTable.param.idSite, 'month', 'today', segment, link);
- var href = Overlay_Helper.getOverlayLink(this.dataTable.param.idSite, 'month', 'today', segment, link);
-
- actionA.attr({
- target: '_blank',
- href: href
- });
+ actionA.attr({
+ target: '_blank',
+ href: href
+ });
+ }
}
return true;
@@ -77,11 +85,17 @@ DataTable_RowActions_Registry.register({
return false;
}
- if (DataTable_RowActions_Transitions.isActionCustomDimensionReport(dataTableParams)) {
- return true;
+ var i = 0;
+ for (i; i < DataTable_RowActions_Overlay.registeredReports.length; i++) {
+ var report = DataTable_RowActions_Overlay.registeredReports[i];
+ if (report
+ && report.isAvailableOnReport
+ && report.isAvailableOnReport(dataTableParams)) {
+ return true;
+ }
}
- return DataTable_RowActions_Transitions.isPageUrlReport(dataTableParams.module, dataTableParams.action);
+ return false;
},
isAvailableOnRow: function (dataTableParams, tr) {