update Piwik to version 2.16 (fixes #91)

This commit is contained in:
oliver 2016-04-10 18:55:57 +02:00
commit 47263617c5
68 changed files with 418860 additions and 226988 deletions

View file

@ -1,6 +1,6 @@
<?php
/**
* Piwik - Open source 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
@ -11,6 +11,7 @@ namespace Piwik\Plugins\Overlay;
use Exception;
use Piwik\Access;
use Piwik\Config;
use Piwik\Container\StaticContainer;
use Piwik\DataTable;
use Piwik\Piwik;
use Piwik\Plugins\SitesManager\API as APISitesManager;
@ -105,26 +106,26 @@ class API extends \Piwik\Plugin\API
{
/**
* Triggered immediately before the user is authenticated.
*
*
* This event can be used by plugins that provide their own authentication mechanism
* to make that mechanism available. Subscribers should set the `'auth'` object in
* the {@link Piwik\Registry} to an object that implements the {@link Piwik\Auth} interface.
*
* to make that mechanism available. Subscribers should set the `'Piwik\Auth'` object in
* the container to an object that implements the {@link Piwik\Auth} interface.
*
* **Example**
*
* use Piwik\Registry;
*
*
* use Piwik\Container\StaticContainer;
*
* public function initAuthenticationObject($activateCookieAuth)
* {
* Registry::set('auth', new LDAPAuth($activateCookieAuth));
* StaticContainer::getContainer()->set('Piwik\Auth', new LDAPAuth($activateCookieAuth));
* }
*
*
* @param bool $activateCookieAuth Whether authentication based on `$_COOKIE` values should
* be allowed.
*/
Piwik::postEvent('Request.initAuthenticationObject', array($activateCookieAuth = true));
$auth = \Piwik\Registry::get('auth');
$auth = StaticContainer::get('Piwik\Auth');
$success = Access::getInstance()->reloadAccess($auth);
if (!$success) {

View file

@ -1,6 +1,6 @@
<?php
/**
* Piwik - Open source 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
@ -8,21 +8,34 @@
*/
namespace Piwik\Plugins\Overlay;
use Piwik\API\CORSHandler;
use Piwik\API\Request;
use Piwik\Common;
use Piwik\Config;
use Piwik\Metrics;
use Piwik\MetricsFormatter;
use Piwik\Piwik;
use Piwik\Plugin\Report;
use Piwik\Plugins\Actions\ArchivingHelper;
use Piwik\Plugins\SegmentEditor\SegmentFormatter;
use Piwik\Plugins\SitesManager\API as APISitesManager;
use Piwik\ProxyHttp;
use Piwik\Segment;
use Piwik\Tracker\Action;
use Piwik\Tracker\PageUrl;
use Piwik\View;
class Controller extends \Piwik\Plugin\Controller
{
/**
* @var SegmentFormatter
*/
private $segmentFormatter;
public function __construct(SegmentFormatter $segmentFormatter)
{
$this->segmentFormatter = $segmentFormatter;
parent::__construct();
}
/** The index of the plugin */
public function index()
@ -37,13 +50,11 @@ class Controller extends \Piwik\Plugin\Controller
$view = new View($template);
$this->setGeneralVariablesView($view);
$view->idSite = $this->idSite;
$view->date = Common::getRequestVar('date', 'today');
$view->period = Common::getRequestVar('period', 'day');
$view->segment = Request::getRawSegmentFromRequest();
$view->ssl = ProxyHttp::isHttps();
$this->outputCORSHeaders();
return $view->render();
}
@ -54,7 +65,9 @@ class Controller extends \Piwik\Plugin\Controller
$period = Common::getRequestVar('period');
$date = Common::getRequestVar('date');
$currentUrl = Common::getRequestVar('currentUrl');
$segment = Request::getRawSegmentFromRequest();
$currentUrl = Common::unsanitizeInputValue($currentUrl);
$segmentSidebar = '';
$normalizedCurrentUrl = PageUrl::excludeQueryParametersFromUrl($currentUrl, $idSite);
$normalizedCurrentUrl = Common::unsanitizeInputValue($normalizedCurrentUrl);
@ -64,33 +77,52 @@ class Controller extends \Piwik\Plugin\Controller
$path = ArchivingHelper::getActionExplodedNames($normalizedCurrentUrl, Action::TYPE_PAGE_URL);
$path = array_map('urlencode', $path);
$label = implode('>', $path);
$request = new Request(
'method=Actions.getPageUrls'
. '&idSite=' . urlencode($idSite)
. '&date=' . urlencode($date)
. '&period=' . urlencode($period)
. '&label=' . urlencode($label)
. '&format=original'
$params = array(
'idSite' => $idSite,
'date' => $date,
'period' => $period,
'label' => $label,
'format' => 'original',
'format_metrics' => 0,
);
$dataTable = $request->process();
if (!empty($segment)) {
$params['segment'] = $segment;
}
$dataTable = Request::processRequest('Actions.getPageUrls', $params);
$formatter = new Metrics\Formatter\Html();
$data = array();
if ($dataTable->getRowsCount() > 0) {
$row = $dataTable->getFirstRow();
$translations = Metrics::getDefaultMetricTranslations();
$showMetrics = array('nb_hits', 'nb_visits', 'nb_uniq_visitors',
$showMetrics = array('nb_hits', 'nb_visits', 'nb_users', 'nb_uniq_visitors',
'bounce_rate', 'exit_rate', 'avg_time_on_page');
$segmentSidebar = $row->getMetadata('segment');
if (!empty($segmentSidebar) && !empty($segment)) {
$segmentSidebar = $segment . ';' . $segmentSidebar;
}
foreach ($showMetrics as $metric) {
$value = $row->getColumn($metric);
if ($value === false) {
// skip unique visitors for period != day
continue;
}
if ($metric == 'avg_time_on_page') {
$value = MetricsFormatter::getPrettyTimeFromSeconds($value);
if ($metric == 'bounce_rate'
|| $metric == 'exit_rate'
) {
$value = $formatter->getPrettyPercentFromQuotient($value);
} else if ($metric == 'avg_time_on_page') {
$value = $formatter->getPrettyTimeFromSeconds($value, $displayAsSentence = true);
}
$data[] = array(
'name' => $translations[$metric],
'value' => $value
@ -117,6 +149,10 @@ class Controller extends \Piwik\Plugin\Controller
$view->idSite = $idSite;
$view->period = $period;
$view->date = $date;
$view->segment = $segmentSidebar;
$view->segmentDescription = $this->segmentFormatter->getHumanReadable($segment, $idSite);
$this->outputCORSHeaders();
return $view->render();
}
@ -129,63 +165,20 @@ class Controller extends \Piwik\Plugin\Controller
$idSite = Common::getRequestVar('idSite', 0, 'int');
Piwik::checkUserHasViewAccess($idSite);
$view = new View('@Overlay/startOverlaySession');
$sitesManager = APISitesManager::getInstance();
$site = $sitesManager->getSiteFromId($idSite);
$urls = $sitesManager->getSiteUrlsFromId($idSite);
@header('Content-Type: text/html; charset=UTF-8');
return '
<html><head><title></title></head><body>
<script type="text/javascript">
function handleProtocol(url) {
if (' . (ProxyHttp::isHttps() ? 'true' : 'false') . ') {
return url.replace(/http:\/\//i, "https://");
} else {
return url.replace(/https:\/\//i, "http://");
}
}
$view->isHttps = ProxyHttp::isHttps();
$view->knownUrls = json_encode($urls);
$view->mainUrl = $site['main_url'];
function removeUrlPrefix(url) {
return url.replace(/http(s)?:\/\/(www\.)?/i, "");
}
$this->outputCORSHeaders();
Common::sendHeader('Content-Type: text/html; charset=UTF-8');
if (window.location.hash) {
var match = false;
var urlToRedirect = window.location.hash.substr(1);
var urlToRedirectWithoutPrefix = removeUrlPrefix(urlToRedirect);
var knownUrls = ' . Common::json_encode($urls) . ';
for (var i = 0; i < knownUrls.length; i++) {
var testUrl = removeUrlPrefix(knownUrls[i]);
if (urlToRedirectWithoutPrefix.substr(0, testUrl.length) == testUrl) {
match = true;
if (navigator.appName == "Microsoft Internet Explorer") {
// internet explorer loses the referrer if we use window.location.href=X
var referLink = document.createElement("a");
referLink.href = handleProtocol(urlToRedirect);
document.body.appendChild(referLink);
referLink.click();
} else {
window.location.href = handleProtocol(urlToRedirect);
}
break;
}
}
if (!match) {
var idSite = window.location.href.match(/idSite=([0-9]+)/i)[1];
window.location.href = "index.php?module=Overlay&action=showErrorWrongDomain"
+ "&idSite=" + idSite
+ "&url=" + encodeURIComponent(urlToRedirect);
}
}
else {
window.location.href = handleProtocol("' . $site['main_url'] . '");
};
</script>
</body></html>
';
return $view->render();
}
/**
@ -204,6 +197,7 @@ class Controller extends \Piwik\Plugin\Controller
$message = nl2br(htmlentities($message));
$view = new View('@Overlay/showErrorWrongDomain');
$this->addCustomLogoInfo($view);
$view->message = $message;
if (Piwik::isUserHasAdminAccess($idSite)) {
@ -217,6 +211,7 @@ class Controller extends \Piwik\Plugin\Controller
$view->troubleshoot = htmlentities(Piwik::translate('Overlay_RedirectUrlErrorUser'));
}
$this->outputCORSHeaders();
return $view->render();
}
@ -231,6 +226,13 @@ class Controller extends \Piwik\Plugin\Controller
public function notifyParentIframe()
{
$view = new View('@Overlay/notifyParentIframe');
$this->outputCORSHeaders();
return $view->render();
}
protected function outputCORSHeaders()
{
$corsHandler = new CORSHandler();
$corsHandler->handle();
}
}

View file

@ -1,6 +1,6 @@
<?php
/**
* Piwik - Open source 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
@ -9,21 +9,12 @@
namespace Piwik\Plugins\Overlay;
class Overlay extends \Piwik\Plugin
{
public function getInformation()
{
$suffix = ' Note: Requires the Transitions plugin enabled.';
$info = parent::getInformation();
$info['description'] .= ' ' . $suffix;
return $info;
}
/**
* @see Piwik\Plugin::getListHooksRegistered
* @see Piwik\Plugin::registerEvents
*/
function getListHooksRegistered()
function registerEvents()
{
return array(
'AssetManager.getJavaScriptFiles' => 'getJsFiles',

View file

@ -10,7 +10,7 @@ var Piwik_Overlay_Client = (function () {
var idSite;
/** The current period and date */
var period, date;
var period, date, segment;
/** Reference to the status bar DOM element */
var statusBar;
@ -35,7 +35,7 @@ var Piwik_Overlay_Client = (function () {
callback();
}
else {
Piwik_Overlay_Client.loadScript('libs/jquery/jquery.js', function () {
Piwik_Overlay_Client.loadScript('libs/bower_components/jquery/dist/jquery.min.js', function () {
$ = jQuery;
jQuery.noConflict();
callback();
@ -131,11 +131,12 @@ var Piwik_Overlay_Client = (function () {
return {
/** Initialize in-site analytics */
initialize: function (pPiwikRoot, pIdSite, pPeriod, pDate) {
initialize: function (pPiwikRoot, pIdSite, pPeriod, pDate, pSegment) {
piwikRoot = pPiwikRoot;
idSite = pIdSite;
period = pPeriod;
date = pDate;
segment = pSegment;
var load = this.loadScript;
var loading = this.loadingNotification;
@ -193,6 +194,10 @@ var Piwik_Overlay_Client = (function () {
var url = piwikRoot + 'index.php?module=API&method=Overlay.' + method
+ '&idSite=' + idSite + '&period=' + period + '&date=' + date + '&format=JSON&filter_limit=-1';
if (segment) {
url += '&segment=' + segment;
}
if (additionalParams) {
url += '&' + additionalParams;
}

View file

@ -164,7 +164,12 @@ var Piwik_Overlay_FollowingPages = (function () {
linkTag[0].piwikTagElement = true;
var rate = data.clickRate;
if (rate < 10) {
if( rate < 0.001 ) {
rate = '<0.001';
} else if (rate < 1) {
rate = Math.round( rate * 1000 ) / 1000;
} else if (rate < 10) {
rate = Math.round(rate * 10) / 10;
} else {
rate = Math.round(rate);
@ -387,11 +392,11 @@ var Piwik_Overlay_FollowingPages = (function () {
offset = linkTag.offset();
height = linkTag.outerHeight();
}
var numLinks = linksOnPage[linkUrl].length;
putBoxAroundLink(offset, width, height, numLinks, data.referrals);
// highlight tags
for (var j = 0; j < numLinks; j++) {
var tag = linksOnPage[linkUrl][j][0].piwikTagElement;
@ -407,11 +412,11 @@ var Piwik_Overlay_FollowingPages = (function () {
linkTag[0].piwikHideNotification = Piwik_Overlay_Client.notification(
Piwik_Overlay_Translations.get('link') + ': ' + linkUrl, 'LinkLocation');
}
function putBoxAroundLink(offset, width, height, numLinks, numReferrals) {
var borderWidth = 2;
var padding = 4; // the distance between the link and the border
// top border
highlightElements[0]
.width(width + 2 * padding)
@ -419,7 +424,7 @@ var Piwik_Overlay_FollowingPages = (function () {
top: offset.top - borderWidth - padding,
left: offset.left - padding
}).show();
// right border
highlightElements[1]
.height(height + 2 * borderWidth + 2 * padding)
@ -427,7 +432,7 @@ var Piwik_Overlay_FollowingPages = (function () {
top: offset.top - borderWidth - padding,
left: offset.left + width + padding
}).show();
// left border
highlightElements[2]
.height(height + 2 * borderWidth + 2 * padding)
@ -456,7 +461,7 @@ var Piwik_Overlay_FollowingPages = (function () {
top: offset.top + height + padding,
left: offset.left - borderWidth - padding
}).show();
var minBoxWidth = width + 2 * borderWidth + 2 * padding;
if (highlightElements[3].width() < minBoxWidth) {
// we cannot use minWidth because of IE7
@ -485,7 +490,6 @@ var Piwik_Overlay_FollowingPages = (function () {
}
}
return {
/**

File diff suppressed because one or more lines are too long

View file

@ -189,6 +189,8 @@ var Piwik_Overlay_UrlNormalizer = (function () {
url = url.replace(/\?&/, '?');
url = url.replace(/\?#/, '#');
url = url.replace(/\?$/, '');
url = url.replace(/%5B/gi, '[');
url = url.replace(/%5D/gi, ']');
return url;
}

View file

@ -0,0 +1,14 @@
<?php
return array(
// Overlay needs the full URLs in order to find the links in the embedded page (otherwise the %
// tooltips don't show up)
'tests.ui.url_normalizer_blacklist.api' => DI\add(array(
'Overlay.getFollowingPages',
)),
'tests.ui.url_normalizer_blacklist.controller' => DI\add(array(
'Overlay.renderSidebar',
)),
);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

View file

@ -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
@ -20,11 +20,17 @@ var Overlay_Helper = {
},
/** Get the url to launch overlay */
getOverlayLink: function (idSite, period, date, link) {
var url = 'index.php?module=Overlay&period=' + period + '&date=' + date + '&idSite=' + idSite;
if (link) {
url += '#l=' + Overlay_Helper.encodeFrameUrl(link);
getOverlayLink: function (idSite, period, date, segment, link) {
var url = 'index.php?module=Overlay&period=' + encodeURIComponent(period) + '&date=' + encodeURIComponent(date) + '&idSite=' + encodeURIComponent(idSite);
if (segment) {
url += '&segment=' + encodeURIComponent(segment);
}
if (link) {
url += '#?l=' + Overlay_Helper.encodeFrameUrl(link);
}
return url;
}

View file

@ -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
@ -8,9 +8,9 @@
var Piwik_Overlay = (function () {
var $body, $iframe, $sidebar, $main, $location, $loading, $errorNotLoading;
var $rowEvolutionLink, $transitionsLink, $fullScreenLink;
var $rowEvolutionLink, $transitionsLink, $fullScreenLink, $visitorLogLink;
var idSite, period, date;
var idSite, period, date, segment;
var iframeSrcBase;
var iframeDomain = '';
@ -19,7 +19,6 @@ var Piwik_Overlay = (function () {
var iframeCurrentActionLabel = '';
var updateComesFromInsideFrame = false;
/** Load the sidebar for a url */
function loadSidebar(currentUrl) {
showLoading();
@ -29,20 +28,26 @@ var Piwik_Overlay = (function () {
iframeCurrentPage = currentUrl;
iframeDomain = currentUrl.match(/http(s)?:\/\/(www\.)?([^\/]*)/i)[3];
globalAjaxQueue.abort();
var ajaxRequest = new ajaxHelper();
ajaxRequest.addParams({
var params = {
module: 'Overlay',
action: 'renderSidebar',
currentUrl: currentUrl
}, 'get');
};
if (segment) {
params.segment = segment;
}
globalAjaxQueue.abort();
var ajaxRequest = new ajaxHelper();
ajaxRequest.addParams(params, 'get');
ajaxRequest.setCallback(
function (response) {
hideLoading();
var $response = $(response);
var $responseLocation = $response.find('.Overlay_Location');
var $responseLocation = $response.find('.overlayLocation');
var $url = $responseLocation.find('span');
iframeCurrentPageNormalized = $url.data('normalizedUrl');
iframeCurrentActionLabel = $url.data('label');
@ -57,7 +62,7 @@ var Piwik_Overlay = (function () {
$locationSpan.tooltip({
track: true,
items: '*',
tooltipClass: 'Overlay_Tooltip',
tooltipClass: 'overlayTooltip',
content: '<strong>' + Piwik_Overlay_Translations.domain + ':</strong> ' +
piwikHelper.addBreakpointsToUrl(iframeDomain),
show: false,
@ -67,10 +72,14 @@ var Piwik_Overlay = (function () {
$sidebar.empty().append($response).show();
if ($sidebar.find('.Overlay_NoData').size() == 0) {
if ($sidebar.find('.overlayNoData').size() == 0) {
$rowEvolutionLink.show();
$transitionsLink.show()
$transitionsLink.show();
if ($('#segment').val()) {
$visitorLogLink.show();
}
}
}
);
ajaxRequest.setErrorCallback(function () {
@ -97,6 +106,7 @@ var Piwik_Overlay = (function () {
$fullScreenLink.hide();
$rowEvolutionLink.hide();
$transitionsLink.hide();
$visitorLogLink.hide();
$errorNotLoading.hide();
}
@ -107,9 +117,29 @@ var Piwik_Overlay = (function () {
$fullScreenLink.show();
}
function getOverlaySegment(url) {
var location = broadcast.getParamValue('segment', url);
// angular will encode the value again since it is added as the fragment path, not the fragment query parameter,
// so we have to decode it again after getParamValue
location = decodeURIComponent(location);
return location;
}
function getOverlayLocationFromHash(urlHash) {
var location = broadcast.getParamValue('l', urlHash);
// angular will encode the value again since it is added as the fragment path, not the fragment query parameter,
// so we have to decode it again after getParamValue
location = decodeURIComponent(location);
return location;
}
/** $.history callback for hash change */
function hashChangeCallback(urlHash) {
var location = broadcast.getParamValue('l', urlHash);
var location = getOverlayLocationFromHash(urlHash);
location = Overlay_Helper.decodeFrameUrl(location);
if (!updateComesFromInsideFrame) {
@ -129,23 +159,25 @@ var Piwik_Overlay = (function () {
return {
/** This method is called when Overlay loads */
init: function (iframeSrc, pIdSite, pPeriod, pDate) {
init: function (iframeSrc, pIdSite, pPeriod, pDate, pSegment) {
iframeSrcBase = iframeSrc;
idSite = pIdSite;
period = pPeriod;
date = pDate;
segment = pSegment;
$body = $('body');
$iframe = $('#Overlay_Iframe');
$sidebar = $('#Overlay_Sidebar');
$location = $('#Overlay_Location');
$main = $('#Overlay_Main');
$loading = $('#Overlay_Loading');
$errorNotLoading = $('#Overlay_Error_NotLoading');
$iframe = $('#overlayIframe');
$sidebar = $('#overlaySidebar');
$location = $('#overlayLocation');
$main = $('#overlayMain');
$loading = $('#overlayLoading');
$errorNotLoading = $('#overlayErrorNotLoading');
$rowEvolutionLink = $('#Overlay_RowEvolution');
$transitionsLink = $('#Overlay_Transitions');
$fullScreenLink = $('#Overlay_FullScreen');
$rowEvolutionLink = $('#overlayRowEvolution');
$transitionsLink = $('#overlayTransitions');
$fullScreenLink = $('#overlayFullScreen');
$visitorLogLink = $('#overlaySegmentedVisitorLog');
adjustDimensions();
@ -171,6 +203,8 @@ var Piwik_Overlay = (function () {
// handle hash change
broadcast.loadAjaxContent = hashChangeCallback;
broadcast._isInit = false;
broadcast.init();
if (window.location.href.split('#').length == 1) {
@ -179,12 +213,12 @@ var Piwik_Overlay = (function () {
}
// handle date selection
var $select = $('select#Overlay_DateRangeSelect').change(function () {
var $select = $('select#overlayDateRangeSelect').change(function () {
var parts = $(this).val().split(';');
if (parts.length == 2) {
period = parts[0];
date = parts[1];
window.location.href = Overlay_Helper.getOverlayLink(idSite, period, date, iframeCurrentPage);
window.location.href = Overlay_Helper.getOverlayLink(idSite, period, date, segment, iframeCurrentPage);
}
});
@ -202,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;
});
@ -212,6 +250,12 @@ var Piwik_Overlay = (function () {
return false;
});
// handle segmented visitor log link
$visitorLogLink.click(function () {
SegmentedVisitorLog.show('Actions.getPageUrls', $('#segment').val(), {});
return false;
});
// handle full screen link
$fullScreenLink.click(function () {
var href = iframeSrcBase;
@ -230,7 +274,7 @@ var Piwik_Overlay = (function () {
var locationParts = location.href.split('#');
var currentLocation = '';
if (locationParts.length > 1) {
currentLocation = broadcast.getParamValue('l', locationParts[1]);
currentLocation = getOverlayLocationFromHash(locationParts[1]);
}
var newLocation = Overlay_Helper.encodeFrameUrl(currentUrl);

View file

@ -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
@ -15,17 +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 link = tr.find('> td:first > a').attr('href');
link = $('<textarea>').html(link).val(); // remove html entities
var segment, link;
actionA.attr({
target: '_blank',
href: Overlay_Helper.getOverlayLink(this.dataTable.param.idSite, 'month', 'today', link)
});
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;
}
}
if (link) {
var href = Overlay_Helper.getOverlayLink(this.dataTable.param.idSite, 'month', 'today', segment, link);
actionA.attr({
target: '_blank',
href: href
});
}
}
return true;
@ -54,7 +84,18 @@ DataTable_RowActions_Registry.register({
if (!window.DataTable_RowActions_Transitions) {
return false;
}
return DataTable_RowActions_Transitions.isPageUrlReport(dataTableParams.module, dataTableParams.action);
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 false;
},
isAvailableOnRow: function (dataTableParams, tr) {

View file

@ -0,0 +1,5 @@
{
"Overlay": {
"Location": "المكان"
}
}

View file

@ -0,0 +1,5 @@
{
"Overlay": {
"Location": "Лакаця"
}
}

View file

@ -0,0 +1,16 @@
{
"Overlay": {
"Clicks": "%s клика",
"ClicksFromXLinks": "%1$s щраквания от една от %2$s връзките",
"Domain": "Домейн",
"ErrorNotLoadingDetails": "Възможно е заредената страница вдясно да няма последяващия Piwik код. В този случай опитайте да стартирате нова връзка за различна страница от доклада на страници.",
"ErrorNotLoadingLink": "Щраквайки тук, ще получите повече съвети за отстраняване на проблеми",
"Link": "Връзка",
"Location": "Местоположение",
"NoData": "Няма данни за тази страница по време на избрания период.",
"OneClick": "1 клик",
"OpenFullScreen": "Цял екран (без странична лента)",
"RedirectUrlErrorAdmin": "Може да добавите домейнът като допълнителен адрес %1$sв настройките%2$s.",
"RedirectUrlErrorUser": "Попитайте вашият администратор да добави домейна, като допълнителен URL."
}
}

View file

@ -0,0 +1,20 @@
{
"Overlay": {
"Clicks": "%s clicks",
"ClicksFromXLinks": "%1$s clicks de un de %2$s enllaços",
"Domain": "Domini",
"ErrorNotLoading": "No es pot iniciar la sessió de pàgines Overlay",
"ErrorNotLoadingDetails": "Potser la pàgina carregada a la dreta no te el codi de rastreig de Piwik. En aquest cas, proveu de llençar el Overlay d'un altra pàgina del informe de pàgines.",
"ErrorNotLoadingDetailsSSL": "Com esteu fent servir Piwik a través de https, es possible que el vostre lloc web no suporti el SSL. Proveu utilitzant el Piwik sobre http.",
"ErrorNotLoadingLink": "Feu click aquí per obtenir més informació sobre com solucionar el problema.",
"Link": "Enllaç",
"Location": "Ubicació",
"NoData": "No hi ha informació per aquesta pàgina en el període seleccionat.",
"OneClick": "1 click",
"OpenFullScreen": "Mostra a pantalla complerta (sense barra lateral)",
"Overlay": "Overlay de pàgina",
"RedirectUrlError": "Esteu intentant obrir un pàgina Overlay per la URL \"%1$s\". %2$s Cap dels dominis configurats al Piwik concòrda amb l'enllaç.",
"RedirectUrlErrorAdmin": "Podeu afegir una URL addicional per un domini a %1$s les preferències%2$s.",
"RedirectUrlErrorUser": "Contacteu amb el vostre administrador per afegir el domini com una URL adicional."
}
}

View file

@ -0,0 +1,21 @@
{
"Overlay": {
"Clicks": "%s kliknutí",
"ClicksFromXLinks": "%1$s kliknutí z některého z %2$s odkazů",
"Domain": "Doména",
"ErrorNotLoading": "Sezení překryvu stránky nemohlo být zatím spuštěno.",
"ErrorNotLoadingDetails": "Možná nemá načtená stránka na pravé straně sledovací kód. V tomto případě zkuste spustit překryv pro jinou stránku z hlášení stránek.",
"ErrorNotLoadingDetailsSSL": "Protože používáte Piwik přes HTTPS, nejpravděpodobnější je, že stránky nepodporují SSL. Zkuste přistoupit k Piwiku přes HTTP.",
"ErrorNotLoadingLink": "Klikněte zde pro více tipů k řešení problémů",
"Link": "Odkaz",
"Location": "Umístění",
"NoData": "V daném období nejsou pro vybranou stránku k dispozici žádná data.",
"OneClick": "1 kliknutí",
"OpenFullScreen": "Přejít na celou obrazovku (bez postranní lišty)",
"Overlay": "Překryv stránky",
"PluginDescription": "Podívejte se na vaše analytická data jako na překryv na vašich stránkách. Zjistěte, kolik uživatelů kliklo na kterýkoliv odkaz. Poznámka: vyžaduje povolený zásuvný modul přechodů.",
"RedirectUrlError": "Pokoušíte se spustit překryv pro stránku s url \"%1$s\". %2$s Žádná doména z nastavení Piwiku ale neodpovídá odkazu.",
"RedirectUrlErrorAdmin": "Doménu můžete jako další URL přidat v %1$snastavení%2$s.",
"RedirectUrlErrorUser": "Požádejte svého administrátora o přidání stránky jako další URL:."
}
}

View file

@ -0,0 +1,20 @@
{
"Overlay": {
"Clicks": "%s klik",
"ClicksFromXLinks": "%1$s klik fra et af %2$s link",
"Domain": "Domæne",
"ErrorNotLoading": "Sideoverlay session kunne ikke startes endnu.",
"ErrorNotLoadingDetails": "Måske den indlæste side til højre ikke har Piwik sporingskode. I så tilfælde, kan du prøve at starte overlejring for en anden side fra siderapporter.",
"ErrorNotLoadingDetailsSSL": "Da du bruger Piwik over HTTPS, er den mest sandsynlige årsag, at hjemmesiden ikke understøtter SSL. Prøv at bruge Piwik over HTTP.",
"ErrorNotLoadingLink": "Klik her for at få flere tips til fejlfinding",
"Link": "Link",
"Location": "Lokation",
"NoData": "Der er ingen data for denne side i den valgte periode.",
"OneClick": "1 klik",
"OpenFullScreen": "Vis fuldskærm (ingen sidebjælke)",
"Overlay": "Side overlejring",
"RedirectUrlError": "Du forsøger at åbne sideoverlejring for URL \"%1$s\". %2$s Ingen af ​​domæner fra Piwiks indstillinger matcher linket.",
"RedirectUrlErrorAdmin": "Du kan tilføje domænet som en yderligere URL %1$si indstillingerne%2$s.",
"RedirectUrlErrorUser": "Spørg administratoren om at tilføje domænet som en yderligere URL."
}
}

View file

@ -0,0 +1,21 @@
{
"Overlay": {
"Clicks": "%s Klicks",
"ClicksFromXLinks": "%1$s klicks von einem von %2$s Verweisen",
"Domain": "Domain",
"ErrorNotLoading": "Die Seiten Overlay Sitzung kann gerade nicht aufgerufen werden.",
"ErrorNotLoadingDetails": "Möglicherweise hat die rechte Seite keinen Piwik Tracking Code. In diesem Fall bitte versuchen das Overlay für eine andere Seite aus dem Seitenbericht zu benutzen.",
"ErrorNotLoadingDetailsSSL": "Da Sie Piwik über https nutzen, ist es wahrscheinlich dass Ihre Website kein SSL unterstützt. Bitte benutzen Sie Piwik über http.",
"ErrorNotLoadingLink": "Klicken Sie hier für weitere Tipps zur Fehlerbehebung",
"Link": "Link",
"Location": "Seite",
"NoData": "Für den gewählten Zeitraum gibt es keine Daten für diese Seite.",
"OneClick": "1-click",
"OpenFullScreen": "Vollbildmodus starten (keine Sidebar)",
"Overlay": "Seiten Overlay",
"PluginDescription": "Sehen Sie Ihre Analysedaten als ein Overlay auf Ihrer aktuellen Website an. Lassen Sie sich anzeigen wie oft Ihre Benutzer auf welchen Link geklickt haben. Hinweis: Benötigt das Transitions-Plugin.",
"RedirectUrlError": "Sie versuchen, eine Seiten Overlay Sitzung für die URL \"%1$s\" zu starten. %2$s Keine der in den Piwik Einstellungen hinterlegten Domains passt zu diesem Link.",
"RedirectUrlErrorAdmin": "Sie können diese Domain %1$sin den Einstellungen%2$s als zusätzliche URL hinzufügen.",
"RedirectUrlErrorUser": "Bitten Sie Ihren Administrator diese Domain als zusätzliche URL hinzuzufügen."
}
}

Some files were not shown because too many files have changed in this diff Show more