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:
-rw-r--r--plugins/CoreHome/templates/datatable.js50
-rw-r--r--plugins/CoreHome/templates/datatable_rowactions.js10
-rw-r--r--plugins/Transitions/templates/transitions.js11
3 files changed, 42 insertions, 29 deletions
diff --git a/plugins/CoreHome/templates/datatable.js b/plugins/CoreHome/templates/datatable.js
index e1ed3a5704..4d7bed7ac1 100644
--- a/plugins/CoreHome/templates/datatable.js
+++ b/plugins/CoreHome/templates/datatable.js
@@ -1294,40 +1294,42 @@ dataTable.prototype =
doHandleRowActions: function(trs)
{
var self = this;
+
+ var availableActionsForReport = DataTable_RowActions_Registry
+ .getAvailableActionsForReport(self.param);
+
+ if (availableActionsForReport.length == 0)
+ {
+ return;
+ }
+
var actionInstances = {};
+ for (var i = 0; i < availableActionsForReport.length; i++)
+ {
+ var action = availableActionsForReport[i];
+ actionInstances[action.name] = action.createInstance(self);
+ }
trs.each(function()
{
var tr = $(this);
var td = tr.find('td:first');
- // load available actions for this row
- var availableActions = DataTable_RowActions_Registry.getAvailableActions(self.param, tr);
- if (availableActions.length == 0)
+ // call initTr on all actions that are available for the report
+ for (var i = 0; i < availableActionsForReport.length; i++)
{
- return;
+ var action = availableActionsForReport[i];
+ actionInstances[action.name].initTr(tr);
}
- // call initTr on all available actions
- for (var i = 0; i < availableActions.length; i++)
- {
- var action = availableActions[i];
- if (typeof actionInstances[action.name] == "undefined")
- {
- actionInstances[action.name] = action.createInstance(self);
- }
- var actionInstance = actionInstances[action.name];
- actionInstance.initTr(tr);
- }
-
- // show actions on hover
+ // show actions that are available for the row on hover
var actionsDom = null;
tr.hover(function()
{
if (actionsDom === null)
{
// create dom nodes on the fly
- actionsDom = self.createRowActions(availableActions, tr, actionInstances);
+ actionsDom = self.createRowActions(availableActionsForReport, tr, actionInstances);
td.prepend(actionsDom);
}
// reposition and show the actions
@@ -1344,19 +1346,23 @@ dataTable.prototype =
});
},
- createRowActions: function(availableActions, tr, actionInstances)
+ createRowActions: function(availableActionsForReport, tr, actionInstances)
{
var container = $(document.createElement('div')).addClass('dataTableRowActions');
- for (var i = availableActions.length - 1; i >= 0; i--)
+ for (var i = availableActionsForReport.length - 1; i >= 0; i--)
{
- var action = availableActions[i];
+ var action = availableActionsForReport[i];
+
+ if (!action.isAvailableOnRow(this.param, tr)) {
+ continue;
+ }
var actionEl = $(document.createElement('a')).attr({href: '#'}).addClass('action' + action.name);
actionEl.append($(document.createElement('img')).attr({src: action.dataTableIcon}));
container.append(actionEl);
- if (i == availableActions.length - 1) {
+ if (i == availableActionsForReport.length - 1) {
actionEl.addClass('leftmost');
}
if (i == 0) {
diff --git a/plugins/CoreHome/templates/datatable_rowactions.js b/plugins/CoreHome/templates/datatable_rowactions.js
index 77666139ba..ab452f433f 100644
--- a/plugins/CoreHome/templates/datatable_rowactions.js
+++ b/plugins/CoreHome/templates/datatable_rowactions.js
@@ -26,7 +26,7 @@ var DataTable_RowActions_Registry = {
this.registry.push(action);
},
- getAvailableActions: function(dataTableParams, tr) {
+ getAvailableActionsForReport: function(dataTableParams, tr) {
if (dataTableParams.disable_row_actions == '1')
{
return [];
@@ -34,7 +34,7 @@ var DataTable_RowActions_Registry = {
var available = [];
for (var i = 0; i < this.registry.length; i++) {
- if (this.registry[i].isAvailable(dataTableParams, tr)) {
+ if (this.registry[i].isAvailableOnReport(dataTableParams, tr)) {
available.push(this.registry[i]);
}
}
@@ -69,7 +69,7 @@ DataTable_RowActions_Registry.register({
return new DataTable_RowActions_RowEvolution(dataTable);
},
- isAvailable: function(dataTableParams, tr) {
+ isAvailableOnReport: function(dataTableParams) {
return (
typeof dataTableParams.disable_row_evolution == 'undefined'
|| dataTableParams.disable_row_evolution == "0"
@@ -77,6 +77,10 @@ DataTable_RowActions_Registry.register({
typeof dataTableParams.flat == 'undefined'
|| dataTableParams.flat == "0"
);
+ },
+
+ isAvailableOnRow: function(dataTableParams, tr) {
+ return true;
}
});
diff --git a/plugins/Transitions/templates/transitions.js b/plugins/Transitions/templates/transitions.js
index dd0fc2452d..0f779a51d0 100644
--- a/plugins/Transitions/templates/transitions.js
+++ b/plugins/Transitions/templates/transitions.js
@@ -79,13 +79,16 @@ DataTable_RowActions_Registry.register({
return new DataTable_RowActions_Transitions(dataTable);
},
- isAvailable: function(dataTableParams, tr) {
+ isAvailableOnReport: function(dataTableParams) {
return (
- DataTable_RowActions_Transitions.isPageUrlReport(dataTableParams.module, dataTableParams.action)
- && tr.find('> td:first > a').size() > 0 // only available on pages, not folders
- ) || (
+ DataTable_RowActions_Transitions.isPageUrlReport(dataTableParams.module, dataTableParams.action) ||
DataTable_RowActions_Transitions.isPageTitleReport(dataTableParams.module, dataTableParams.action)
);
+ },
+
+ isAvailableOnRow: function(dataTableParams, tr) {
+ // not available on groups (i.e. folders)
+ return !tr.attr('id');
}
});