update Piwik to version 2.16 (fixes #91)
This commit is contained in:
parent
296343bf3b
commit
d885a4baa9
5833 changed files with 418860 additions and 226988 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* Piwik - Web Analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -26,17 +26,17 @@
|
|||
|
||||
// helper function for ActionDataTable
|
||||
function setImageMinus(domElem) {
|
||||
$('img.plusMinus', domElem).attr('src', 'plugins/Zeitgeist/images/minus.png');
|
||||
$('img.plusMinus', domElem).attr('src', 'plugins/Morpheus/images/minus.png');
|
||||
}
|
||||
|
||||
// helper function for ActionDataTable
|
||||
function setImagePlus(domElem) {
|
||||
$('img.plusMinus', domElem).attr('src', 'plugins/Zeitgeist/images/plus.png');
|
||||
$('img.plusMinus', domElem).attr('src', 'plugins/Morpheus/images/plus.png');
|
||||
}
|
||||
|
||||
/**
|
||||
* UI control that handles extra functionality for Actions datatables.
|
||||
*
|
||||
*
|
||||
* @constructor
|
||||
*/
|
||||
exports.ActionsDataTable = function (element) {
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
var self = this;
|
||||
|
||||
self.cleanParams();
|
||||
|
||||
|
||||
if (!rows) {
|
||||
rows = $('tr', domElem);
|
||||
}
|
||||
|
|
@ -90,6 +90,37 @@
|
|||
self.handleCellTooltips(domElem);
|
||||
self.handleExpandFooter(domElem);
|
||||
self.setFixWidthToMakeEllipsisWork(domElem);
|
||||
self.handleSummaryRow(domElem);
|
||||
self.openSubtableFromLevel0IfOnlyOneSubtableGiven(domElem);
|
||||
},
|
||||
|
||||
openSubtableFromLevel0IfOnlyOneSubtableGiven: function (domElem) {
|
||||
var $subtables = domElem.find('.subDataTable');
|
||||
var hasOnlyOneSubtable = $subtables.length === 1;
|
||||
|
||||
if (hasOnlyOneSubtable) {
|
||||
var hasOnlyOneRow = domElem.find('tbody tr.level0').length === 1;
|
||||
|
||||
if (hasOnlyOneRow) {
|
||||
var $labels = $subtables.find('.label');
|
||||
if ($labels.length) {
|
||||
$labels.first().click();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
openSubtableFromSubtableIfOnlyOneSubtableGiven: function (domElem) {
|
||||
var hasOnlyOneRow = domElem.length === 1
|
||||
var hasOnlyOneSubtable = domElem.hasClass('subDataTable');
|
||||
|
||||
if (hasOnlyOneRow && hasOnlyOneSubtable) {
|
||||
// when subtable is loaded
|
||||
var $labels = domElem.find('.label');
|
||||
if ($labels.length) {
|
||||
$labels.first().click();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//see dataTable::applyCosmetics
|
||||
|
|
@ -114,11 +145,11 @@
|
|||
});
|
||||
|
||||
var rootRow = rows.first().prev();
|
||||
|
||||
|
||||
// we look at the style of the row before the new rows to determine the rows'
|
||||
// level
|
||||
var level = rootRow.length ? getLevelFromClass(rootRow.attr('class')) + 1 : 0;
|
||||
|
||||
|
||||
rows.each(function () {
|
||||
var currentStyle = $(this).attr('class') || '';
|
||||
|
||||
|
|
@ -133,21 +164,15 @@
|
|||
return self.parentAttributeParent + ' ' + self.parentId;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
self.addOddAndEvenClasses(domElem);
|
||||
},
|
||||
|
||||
|
||||
addOddAndEvenClasses: function(domElem) {
|
||||
// Add some styles on the cells even/odd
|
||||
// Add some styles on the cells
|
||||
// label (first column of a data row) or not
|
||||
$("tr:not(.hidden):odd td:first-child", domElem)
|
||||
.removeClass('labeleven').addClass('label labelodd');
|
||||
$("tr:not(.hidden):even td:first-child", domElem)
|
||||
.removeClass('labelodd').addClass('label labeleven');
|
||||
$("tr:not(.hidden):odd td", domElem).slice(1)
|
||||
.removeClass('columneven').addClass('column columnodd');
|
||||
$("tr:not(.hidden):even td", domElem).slice(1)
|
||||
.removeClass('columnodd').addClass('column columneven');
|
||||
$("tr:not(.hidden) td:first-child", domElem).addClass('label');
|
||||
$("tr:not(.hidden) td", domElem).slice(1).addClass('column');
|
||||
},
|
||||
|
||||
handleRowActions: function (domElem, rows) {
|
||||
|
|
@ -181,7 +206,7 @@
|
|||
$(domElem).after('\
|
||||
<tr id="' + divIdToReplaceWithSubTable + '" class="cellSubDataTable">\
|
||||
<td colspan="' + numberOfColumns + '">\
|
||||
<span class="loadingPiwik" style="display:inline"><img src="plugins/Zeitgeist/images/loading-blue.gif" /> Loading...</span>\
|
||||
<span class="loadingPiwik" style="display:inline"><img src="plugins/Morpheus/images/loading-blue.gif" /> Loading...</span>\
|
||||
</td>\
|
||||
</tr>\
|
||||
');
|
||||
|
|
@ -211,8 +236,7 @@
|
|||
// else we toggle all these rows
|
||||
else {
|
||||
var plusDetected = $('td img.plusMinus', domElem).attr('src').indexOf('plus') >= 0;
|
||||
var stripingNeeded = false;
|
||||
|
||||
|
||||
$(domElem).siblings().each(function () {
|
||||
var parents = $(this).prop('parent').split(' ');
|
||||
if (parents) {
|
||||
|
|
@ -220,8 +244,7 @@
|
|||
|| parents.indexOf('subDataTable_' + idSubTable) >= 0) {
|
||||
if (plusDetected) {
|
||||
$(this).css('display', '').removeClass('hidden');
|
||||
stripingNeeded = !stripingNeeded;
|
||||
|
||||
|
||||
//unroll everything and display '-' sign
|
||||
//if the row is already opened
|
||||
var NextStyle = $(this).next().attr('class');
|
||||
|
|
@ -235,7 +258,6 @@
|
|||
}
|
||||
else {
|
||||
$(this).css('display', 'none').addClass('hidden');
|
||||
stripingNeeded = !stripingNeeded;
|
||||
}
|
||||
self.repositionRowActions($(domElem));
|
||||
}
|
||||
|
|
@ -246,9 +268,6 @@
|
|||
if (!table.hasClass('dataTable')) {
|
||||
table = table.closest('.dataTable');
|
||||
}
|
||||
if (stripingNeeded) {
|
||||
self.addOddAndEvenClasses(table);
|
||||
}
|
||||
|
||||
self.$element.trigger('piwik:actionsSubTableToggled');
|
||||
}
|
||||
|
|
@ -299,7 +318,12 @@
|
|||
|
||||
$('tr#' + idToReplace, root).after(response).remove();
|
||||
|
||||
var missingColumns = (response.prev().find('td').size() - response.find('td').size());
|
||||
var requiredColumnCount = 0, availableColumnCount = 0;
|
||||
|
||||
response.prev().find('td').each(function(){ requiredColumnCount += $(this).attr('colspan') || 1; });
|
||||
response.find('td').each(function(){ availableColumnCount += $(this).attr('colspan') || 1; });
|
||||
|
||||
var missingColumns = requiredColumnCount - availableColumnCount;
|
||||
for (var i = 0; i < missingColumns; i++) {
|
||||
// if the subtable has fewer columns than the parent table, add some columns.
|
||||
// this happens for example, when the parent table has performance metrics and the subtable doesn't.
|
||||
|
|
@ -322,7 +346,9 @@
|
|||
function () {
|
||||
self.onClickActionSubDataTable(this)
|
||||
});
|
||||
|
||||
self.openSubtableFromSubtableIfOnlyOneSubtableGiven(response);
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery, require);
|
||||
})(jQuery, require);
|
||||
|
|
|
|||
65
www/analytics/plugins/Actions/javascripts/rowactions.js
Normal file
65
www/analytics/plugins/Actions/javascripts/rowactions.js
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
$(function () {
|
||||
|
||||
function isActionsModule(params)
|
||||
{
|
||||
return params.module == 'Actions';
|
||||
}
|
||||
|
||||
function isPageUrlReport(params) {
|
||||
var action = params.action;
|
||||
|
||||
return isActionsModule(params) &&
|
||||
(action == 'getPageUrls' || action == 'getEntryPageUrls' || action == 'getExitPageUrls' || action == 'getPageUrlsFollowingSiteSearch');
|
||||
};
|
||||
|
||||
function isPageTitleReport(params) {
|
||||
var action = params.action;
|
||||
|
||||
return isActionsModule(params) && (action == 'getPageTitles' || action == 'getPageTitlesFollowingSiteSearch');
|
||||
};
|
||||
|
||||
function getLinkForTransitionAndOverlayPopover(tr)
|
||||
{
|
||||
var link = tr.find('> td:first > a').attr('href');
|
||||
link = $('<textarea>').html(link).val(); // remove html entities
|
||||
return link;
|
||||
}
|
||||
|
||||
DataTable_RowActions_Transitions.registerReport({
|
||||
isAvailableOnReport: function (dataTableParams) {
|
||||
return isPageUrlReport(dataTableParams);
|
||||
},
|
||||
isAvailableOnRow: function (dataTableParams, tr) {
|
||||
return isPageUrlReport(dataTableParams) && tr.find('> td:first span.label').parent().is('a')
|
||||
},
|
||||
trigger: function (tr, e, subTableLabel) {
|
||||
var link = getLinkForTransitionAndOverlayPopover(tr);
|
||||
this.openPopover('url:' + link);
|
||||
}
|
||||
});
|
||||
|
||||
DataTable_RowActions_Transitions.registerReport({
|
||||
isAvailableOnReport: function (dataTableParams) {
|
||||
return isPageTitleReport(dataTableParams);
|
||||
},
|
||||
isAvailableOnRow: function (dataTableParams, tr) {
|
||||
return isPageTitleReport(dataTableParams);
|
||||
},
|
||||
trigger: function (tr, e, subTableLabel) {
|
||||
DataTable_RowAction.prototype.trigger.apply(this, [tr, e, subTableLabel]);
|
||||
}
|
||||
});
|
||||
|
||||
DataTable_RowActions_Overlay.registerReport({
|
||||
isAvailableOnReport: function (dataTableParams) {
|
||||
return isPageUrlReport(dataTableParams);
|
||||
},
|
||||
onClick: function (actionA, tr, e) {
|
||||
return {
|
||||
link: getLinkForTransitionAndOverlayPopover(tr),
|
||||
segment: null
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue