Encapsulate analytics code using module pattern

Signed-off-by: Collin J. Doering <collin.doering@rekahsoft.ca>
This commit is contained in:
Collin J. Doering 2015-08-19 23:05:26 -04:00
parent e7decd4349
commit 0d7faa8d8f
1 changed files with 32 additions and 14 deletions

View File

@ -29,19 +29,8 @@
// Global array for processing piwik analytics commands
var _paq = _paq || [];
_paq.push(["setDoNotTrack", true]);
_paq.push(['enableLinkTracking']);
// Asynchronously load piwik.js
(function() {
var u="//analytics.rekahsoft.ca/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
(function ($, mj) {
(function ($, mj, _paq) {
"use strict";
var router = (function () {
@ -119,10 +108,36 @@ _paq.push(['enableLinkTracking']);
page = (function () {
// var pageId = '#page-content', navId = '#nav';
analytics = (function () {
var spec = { init: init,
trackPageView: trackPageView
};
function init () {
var u = "//analytics.rekahsoft.ca/",
d = document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
_paq.push(["setDoNotTrack", true]);
_paq.push(['enableLinkTracking']);
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 1]);
// Asynchronously load piwik.js
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
}
function trackPageView (href) {
_paq.push(['setDocumentTitle', document.domain + href]);
_paq.push(['trackPageView']);
}
return spec
}()),
page = (function () {
function loadPageContent(page_href, handlerCallback) {
// Track page view with piwik
_paq.push(['setDocumentTitle', document.domain + page_href]);
_paq.push(['trackPageView']);
analytics.trackPageView(page_href);
$.ajax({
url: page_href,
@ -226,6 +241,9 @@ _paq.push(['enableLinkTracking']);
function init(router) {
router.setCallback(loadPageContent);
// Setup piwik analytics
analytics.init();
window.addEventListener("popstate", function (e) {
router.runRouter(location.pathname);
});