repo: janusweb action: commit revision: path_from: revision_from: 885fe44a79473df5b57fcf1e7f300de3a3e4cc0e: path_to: revision_to:
commit 885fe44a79473df5b57fcf1e7f300de3a3e4cc0e Author: James BaicoianuDate: Tue Aug 1 02:23:43 2017 -0700 Added tracking parameter on init diff --git a/scripts/client.js b/scripts/client.js
--- 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
--- 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-----