Newer
Older
Thomas Steur
a validé
/*!
* Piwik - free/libre analytics platform
Thomas Steur
a validé
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
Thomas Steur
a validé
(function () {
angular.module('piwikApp.service').service('piwik', piwikService);
Thomas Steur
a validé
Benaka
a validé
piwikService.$inject = ['piwikPeriods'];
Thomas Steur
a validé
Benaka
a validé
function piwikService(piwikPeriods) {
Thomas Steur
a validé
piwik.helper = piwikHelper;
piwik.broadcast = broadcast;
Benaka
a validé
piwik.updatePeriodParamsFromUrl = updatePeriodParamsFromUrl;
Thomas Steur
a validé
return piwik;
Benaka
a validé
function updatePeriodParamsFromUrl() {
var date = piwik.broadcast.getValueFromHash('date');
var period = piwik.broadcast.getValueFromHash('period');
if (!isValidPeriod(period, date)) {
Benaka
a validé
// invalid data in URL
return;
}
if (piwik.period === period && piwik.currentDateString === date) {
// this period / date is already loaded
return;
}
piwik.period = period;
var dateRange = piwikPeriods.parse(period, date).getDateRange();
piwik.startDateString = $.datepicker.formatDate('yy-mm-dd', dateRange[0]);
piwik.endDateString = $.datepicker.formatDate('yy-mm-dd', dateRange[1]);
// do not set anything to previous7/last7, as piwik frontend code does not
// expect those values.
if (piwik.period === 'range') {
date = piwik.startDateString + ',' + piwik.endDateString;
}
Benaka
a validé
if (date && date.indexOf(',') > -1) {
var dateParts = date.split(',');
if (dateParts[1]) {
piwik.currentDateString = dateParts[1];
} else if (dateParts[0]) {
piwik.currentDateString = dateParts[0];
}
} else {
piwik.currentDateString = date;
}
}
function isValidPeriod(periodStr, dateStr) {
Benaka
a validé
try {
piwikPeriods.get(periodStr).parse(dateStr);
Benaka
a validé
return true;
} catch (e) {
return false;
}
}
}
angular.module('piwikApp.service').run(initPiwikService);
initPiwikService.$inject = ['piwik', '$rootScope'];
function initPiwikService(piwik, $rootScope) {
$rootScope.$on('$locationChangeSuccess', piwik.updatePeriodParamsFromUrl);
Thomas Steur
a validé
}