/**
* @license Angulartics v0.15.19 * (c) 2013 Luis Farzati http://luisfarzati.github.io/angulartics * Piwik 2.1.x update contributed by http://github.com/highskillz * License: MIT */
(function(angular) {
'use strict'; /** * @ngdoc overview * @name angulartics.piwik * Enables analytics support for Piwik (http://piwik.org/docs/tracking-api/) */ angular.module('angulartics.piwik', ['angulartics']) .config(['$analyticsProvider', function($analyticsProvider) { // Piwik seems to suppors buffered invocations so we don't need // to wrap these inside angulartics.waitForVendorApi $analyticsProvider.settings.trackRelativePath = true; $analyticsProvider.registerPageTrack(function(path) { if (window._paq) { _paq.push(['setCustomUrl', path]); _paq.push(['trackPageView']); } }); $analyticsProvider.registerEventTrack(function(action, properties) { // GA requires that eventValue be an integer, see: // https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#eventValue // https://github.com/luisfarzati/angulartics/issues/81 if (properties.value) { var parsed = parseInt(properties.value, 10); properties.value = isNaN(parsed) ? 0 : parsed; } console.warn('Piwik doesn\'t support event tracking -- silently ignored.'); console.warn('\t action\t[%s]', action); console.warn('\t category\t[%s]', properties.category); console.warn('\t label\t[%s]', properties.label); console.warn('\t value\t[%s]', properties.value); console.warn('\t noninteraction\t[%s]', properties.noninteraction); console.warn(''); }); } ]);
})(angular);