Add support triggering a piwik goal when a map layer is selected
authorTom Hughes <tom@compton.nu>
Sat, 24 Aug 2013 11:55:29 +0000 (12:55 +0100)
committerTom Hughes <tom@compton.nu>
Sat, 24 Aug 2013 11:55:29 +0000 (12:55 +0100)
app/assets/javascripts/index.js
app/assets/javascripts/piwik.js

index 2a704f72464f8d697fe02f8b91bd592855b3ac46..d577e0cf731be9086e673ee4e63e883951c09570 100644 (file)
@@ -113,6 +113,18 @@ $(document).ready(function () {
 
   map.on('moveend layeradd layerremove', updateLocation);
 
+  if (OSM.PIWIK) {
+    map.on('layeradd', function (e) {
+      if (e.layer.options) {
+        var goal = OSM.PIWIK.goals[e.layer.options.keyid];
+
+        if (goal) {
+          $('body').trigger('piwikgoal', goal);
+        }
+      }
+    });
+  }
+
   var marker = L.marker([0, 0], {icon: getUserIcon()});
 
   if (!params.object_zoom) {
index d81a9ec630a97e2da3cf94c8152cb788a6ee1e17..a48e903add43ee638029805e80323307b20fc596 100644 (file)
@@ -1,13 +1,14 @@
 if (OSM.PIWIK) {
   $(document).ready(function () {
     var base = document.location.protocol + "//" + OSM.PIWIK.location + "/";
+    var piwikTracker;
 
-    $.ajax({
+    var piwikLoader = $.ajax({
       url: base + "piwik.js",
       dataType: "script",
       cache: true,
       success: function () {
-        var piwikTracker = Piwik.getTracker(base + "piwik.php", OSM.PIWIK.site);
+        piwikTracker = Piwik.getTracker(base + "piwik.php", OSM.PIWIK.site);
       
         piwikTracker.trackPageView();
         piwikTracker.enableLinkTracking();
@@ -17,5 +18,11 @@ if (OSM.PIWIK) {
         });
       }
     });
+
+    $("body").on("piwikgoal", function (e, goal) {
+      piwikLoader.done(function () {
+        piwikTracker.trackGoal(goal);
+      });
+    });
   });
 }