repo: janusweb
action: commit
revision: 
path_from: 
revision_from: 885fe44a79473df5b57fcf1e7f300de3a3e4cc0e:
path_to: 
revision_to: 
git.thebackupbox.net
janusweb
git clone git://git.thebackupbox.net/janusweb
commit 885fe44a79473df5b57fcf1e7f300de3a3e4cc0e
Author: James Baicoianu 
Date:   Tue Aug 1 02:23:43 2017 -0700

    Added tracking parameter on init

diff --git a/scripts/client.js b/scripts/client.js
index 9624ed07b38de0100c95a9f3e3ac0b176fb4aebd..
index ..bb561257b3206ff61c76f102eaab76b9c852dbf3 100644
--- a/scripts/client.js
+++ b/scripts/client.js
@@ -47,6 +47,11 @@ elation.require(['engine.engine', 'engine.assets', 'engine.things.light_ambient'
     }
     elation.config.set('dependencies.path', fullpath);

+    var usetracking = elation.utils.any(args.tracking, elation.config.get('janusweb.tracking.enabled'), false);
+    if (usetracking) {
+      var tracking = elation.janusweb.tracking({});
+    }
+
     var link = document.createElement('link');
     link.rel = 'stylesheet';
     link.href = fullpath + 'janusweb.css';
diff --git a/scripts/tracking.js b/scripts/tracking.js
index 9e7d5c0639a8cb819246896b7ba5731867bf515a..
index ..3f0c1a46133d4a85bccea35bc09b6a468c052729 100644
--- a/scripts/tracking.js
+++ b/scripts/tracking.js
@@ -1,154 +1,158 @@
 elation.require([], function() {
-  var track = elation.config.get('janusweb.tracking.enabled', false);
-  if (elation.env.isBrowser && track) {
-    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
-    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
-    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+  elation.component.add('janusweb.tracking', function() {
+    this.init = function() {
+      var track = elation.config.get('janusweb.tracking.enabled', false);
+      if (elation.env.isBrowser && track) {
+        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

-    ga('create', elation.config.get('janusweb.tracking.clientid'), 'auto');
-    ga('set', 'page', "/");
-    //ga('send', 'pageview');
+        ga('create', elation.config.get('janusweb.tracking.clientid'), 'auto');
+        ga('set', 'page', "/");
+        //ga('send', 'pageview');

-    elation.events.add(null, 'room_change', function(ev) {
-      console.log('[tracking] room changed', ev.type, ev.data);
-      setTimeout(function() {
-        ga('set', 'page', '/sites/' + ev.data);
-        ga('send', 'pageview');
-      }, 100);
-    });
-    elation.events.add(null, 'menu_enable', function(ev) {
-      console.log('[tracking] menu shown', ev);
-      ga('send', 'event', 'menu', 'show');
-    });
-    elation.events.add(null, 'menu_disable', function(ev) {
-      console.log('[tracking] menu hidden', ev);
-      ga('send', 'event', 'menu', 'hide');
-    });
-    elation.events.add(null, 'menuitem_activate', function(ev) {
-      console.log('[tracking] menu item selected', ev);
-      ga('send', 'event', 'menu', 'select', ev.element.properties.text);
-    });
-    elation.events.add(null, 'janusweb_chat_send', function(ev) {
-      console.log('[tracking] chat sent', ev);
-      ga('send', 'event', 'player', 'chat');
-    });
-    elation.events.add(null, 'janusweb_portal_click', function(ev) {
-      console.log('[tracking] portal clicked', ev);
-      ga('send', 'event', 'player', 'portal_click', ev.element.properties.url);
-    });
-    elation.events.add(null, 'janusweb_load_url', function(ev) {
-      console.log('[tracking] url loaded', ev);
-      ga('send', 'event', 'player', 'load_url', ev.data);
-    });
-    elation.events.add(null, 'janusweb_client_connected', function(ev) {
-      console.log('[tracking] client connected', ev);
-      ga('send', 'event', 'client', 'connected', ev.data);
-    });
-/*
-    elation.events.add(document, 'pointerlockchange,mozpointerlockchange', function(ev) {
-var el = document.pointerLockElement || document.mozPointerLockElement
-      console.log('[tracking] pointer lock!', (el !== null), ev);
-      ga('send', 'event', 'player', 'pointerlock', (el !== null));
-    });
-*/
-    elation.events.add(null, 'janusweb_client_disconnected', function(ev) {
-      console.log('[tracking] client disconnected', ev);
-      ga('send', 'event', 'client', 'disconnected', ev.data);
-    });
-    elation.events.add(null, 'janusweb_user_joined', function(ev) {
-      console.log('[tracking] user joined', ev);
-      ga('send', 'event', 'user', 'joined', ev.data.name);
-    });
-    elation.events.add(null, 'janusweb_user_left', function(ev) {
-      console.log('[tracking] user left', ev);
-      ga('send', 'event', 'user', 'left', ev.data.name);
-    });
-    elation.events.add(null, 'janusweb_bookmark_add', function(ev) {
-      console.log('[tracking] bookmark added', ev);
-      ga('send', 'event', 'bookmark', 'add', ev.data.url);
-    });
-    elation.events.add(null, 'engine_render_view_vr_detected', function(ev) {
-      console.log('[tracking] vr display detected', ev);
-      ga('send', 'event', 'vr', 'detected', ev.data.deviceName);
-    });
-    elation.events.add(null, 'engine_render_view_vr_start', function(ev) {
-      console.log('[tracking] vr display activated', ev);
-      ga('send', 'event', 'vr', 'start');
-    });
-    elation.events.add(null, 'voip_init', function(ev) {
-      console.log('[tracking] voip init', ev);
-      ga('send', 'event', 'voip', 'init');
-    });
-    elation.events.add(null, 'voip_start', function(ev) {
-      console.log('[tracking] voip start', ev);
-      ga('send', 'event', 'voip', 'start');
-    });
-    elation.events.add(null, 'voip_stop', function(ev) {
-      console.log('[tracking] voip stop', ev);
-      ga('send', 'event', 'voip', 'stop');
-    });
-    elation.events.add(null, 'voip_error', function(ev) {
-      console.log('[tracking] voip error', ev);
-      ga('send', 'event', 'voip', 'error', ev.data.name + ' : ' + ev.data.message);
-    });
-    elation.events.add(null, 'engine_render_view_vr_end', function(ev) {
-      console.log('[tracking] vr display ended', ev);
-      ga('send', 'event', 'vr', 'end');
-    });
-    elation.events.add(null, 'engine_start', function(ev) {
-      var engine = ev.element;
+        elation.events.add(null, 'room_change', function(ev) {
+          console.log('[tracking] room changed', ev.type, ev.data);
+          setTimeout(function() {
+            ga('set', 'page', '/sites/' + ev.data);
+            ga('send', 'pageview');
+          }, 100);
+        });
+        elation.events.add(null, 'menu_enable', function(ev) {
+          console.log('[tracking] menu shown', ev);
+          ga('send', 'event', 'menu', 'show');
+        });
+        elation.events.add(null, 'menu_disable', function(ev) {
+          console.log('[tracking] menu hidden', ev);
+          ga('send', 'event', 'menu', 'hide');
+        });
+        elation.events.add(null, 'menuitem_activate', function(ev) {
+          console.log('[tracking] menu item selected', ev);
+          ga('send', 'event', 'menu', 'select', ev.element.properties.text);
+        });
+        elation.events.add(null, 'janusweb_chat_send', function(ev) {
+          console.log('[tracking] chat sent', ev);
+          ga('send', 'event', 'player', 'chat');
+        });
+        elation.events.add(null, 'janusweb_portal_click', function(ev) {
+          console.log('[tracking] portal clicked', ev);
+          ga('send', 'event', 'player', 'portal_click', ev.element.properties.url);
+        });
+        elation.events.add(null, 'janusweb_load_url', function(ev) {
+          console.log('[tracking] url loaded', ev);
+          ga('send', 'event', 'player', 'load_url', ev.data);
+        });
+        elation.events.add(null, 'janusweb_client_connected', function(ev) {
+          console.log('[tracking] client connected', ev);
+          ga('send', 'event', 'client', 'connected', ev.data);
+        });
+    /*
+        elation.events.add(document, 'pointerlockchange,mozpointerlockchange', function(ev) {
+    var el = document.pointerLockElement || document.mozPointerLockElement
+          console.log('[tracking] pointer lock!', (el !== null), ev);
+          ga('send', 'event', 'player', 'pointerlock', (el !== null));
+        });
+    */
+        elation.events.add(null, 'janusweb_client_disconnected', function(ev) {
+          console.log('[tracking] client disconnected', ev);
+          ga('send', 'event', 'client', 'disconnected', ev.data);
+        });
+        elation.events.add(null, 'janusweb_user_joined', function(ev) {
+          console.log('[tracking] user joined', ev);
+          ga('send', 'event', 'user', 'joined', ev.data.name);
+        });
+        elation.events.add(null, 'janusweb_user_left', function(ev) {
+          console.log('[tracking] user left', ev);
+          ga('send', 'event', 'user', 'left', ev.data.name);
+        });
+        elation.events.add(null, 'janusweb_bookmark_add', function(ev) {
+          console.log('[tracking] bookmark added', ev);
+          ga('send', 'event', 'bookmark', 'add', ev.data.url);
+        });
+        elation.events.add(null, 'engine_render_view_vr_detected', function(ev) {
+          console.log('[tracking] vr display detected', ev);
+          ga('send', 'event', 'vr', 'detected', ev.data.deviceName);
+        });
+        elation.events.add(null, 'engine_render_view_vr_start', function(ev) {
+          console.log('[tracking] vr display activated', ev);
+          ga('send', 'event', 'vr', 'start');
+        });
+        elation.events.add(null, 'voip_init', function(ev) {
+          console.log('[tracking] voip init', ev);
+          ga('send', 'event', 'voip', 'init');
+        });
+        elation.events.add(null, 'voip_start', function(ev) {
+          console.log('[tracking] voip start', ev);
+          ga('send', 'event', 'voip', 'start');
+        });
+        elation.events.add(null, 'voip_stop', function(ev) {
+          console.log('[tracking] voip stop', ev);
+          ga('send', 'event', 'voip', 'stop');
+        });
+        elation.events.add(null, 'voip_error', function(ev) {
+          console.log('[tracking] voip error', ev);
+          ga('send', 'event', 'voip', 'error', ev.data.name + ' : ' + ev.data.message);
+        });
+        elation.events.add(null, 'engine_render_view_vr_end', function(ev) {
+          console.log('[tracking] vr display ended', ev);
+          ga('send', 'event', 'vr', 'end');
+        });
+        elation.events.add(null, 'engine_start', function(ev) {
+          var engine = ev.element;

-      ga('send', 'event', 'engine', 'start');
+          ga('send', 'event', 'engine', 'start');

-      elation.events.add(engine, 'engine_stop', function(ev) {
-        ga('send', 'event', 'engine', 'stop');
-      });
+          elation.events.add(engine, 'engine_stop', function(ev) {
+            ga('send', 'event', 'engine', 'stop');
+          });

-      var fired = {
-        playerMoved: false,
-        playerTurned: false,
-        playerPortaled: false,
-        playerChatted: false
-      };
-      var player = engine.client.player;
-      var playerStartPosition = player.properties.position.clone();
-      var playerStartOrientation = player.properties.orientation.clone();
+          var fired = {
+            playerMoved: false,
+            playerTurned: false,
+            playerPortaled: false,
+            playerChatted: false
+          };
+          var player = engine.client.player;
+          var playerStartPosition = player.properties.position.clone();
+          var playerStartOrientation = player.properties.orientation.clone();

-      var doPlayerChange = function(ev) {
-        var player = ev.element;
-        var cs = player.controlstate;
+          var doPlayerChange = function(ev) {
+            var player = ev.element;
+            var cs = player.controlstate;

-        if (!fired.playerMoved && !player.properties.position.equals(playerStartPosition)) {
-          ga('send', 'event', 'player', 'moved');
-          fired['playerMoved'] = true;
-        }
-        if (!fired.playerTurned && !player.properties.orientation.equals(playerStartOrientation)) {
-          ga('send', 'event', 'player', 'turned');
-          fired['playerTurned'] = true;
-        }
-      }
-      setTimeout(function() {
-        elation.events.add(player, 'thing_change', doPlayerChange);
-        playerStartPosition.copy(player.properties.position);
-        playerStartOrientation.copy(player.properties.orientation);
-      }, 1000);
+            if (!fired.playerMoved && !player.properties.position.equals(playerStartPosition)) {
+              ga('send', 'event', 'player', 'moved');
+              fired['playerMoved'] = true;
+            }
+            if (!fired.playerTurned && !player.properties.orientation.equals(playerStartOrientation)) {
+              ga('send', 'event', 'player', 'turned');
+              fired['playerTurned'] = true;
+            }
+          }
+          setTimeout(function() {
+            elation.events.add(player, 'thing_change', doPlayerChange);
+            playerStartPosition.copy(player.properties.position);
+            playerStartOrientation.copy(player.properties.orientation);
+          }, 1000);

-      // report FPS every 15 seconds
-/*
-      var stats = document.getElementById('fpsText');
-      if (stats) {
-        setInterval(function() {
-          var fpstxt = document.getElementById('fpsText').innerHTML; 
-          var fps = fpstxt.substr(0, fpstxt.indexOf(' '))
-          ga('send', 'event', 'engine', 'fps', fps);
-        }, 15000);
+          // report FPS every 15 seconds
+    /*
+          var stats = document.getElementById('fpsText');
+          if (stats) {
+            setInterval(function() {
+              var fpstxt = document.getElementById('fpsText').innerHTML; 
+              var fps = fpstxt.substr(0, fpstxt.indexOf(' '))
+              ga('send', 'event', 'engine', 'fps', fps);
+            }, 15000);
+          }
+    */
+          
+        });
+        elation.events.add(window, 'error', function(msg) {
+          ga('send', 'event', 'client', 'error', msg.message);
+        });
       }
-*/
-      
-    });
-    elation.events.add(window, 'error', function(msg) {
-      ga('send', 'event', 'client', 'error', msg.message);
-    });
-  }
+    }
+  });
 });

-----END OF PAGE-----