From 10b70298321d09267b485cfb2a4a0d158597bb35 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 28 Oct 2016 12:31:34 +0000 Subject: [PATCH] wip #801 @1 --- js/libs/cube/util.js | 175 ++++++++++++++------------- js/libs/fluidbook/fluidbook.stats.js | 112 ++++++++--------- js/widget.js | 3 +- 3 files changed, 152 insertions(+), 138 deletions(-) diff --git a/js/libs/cube/util.js b/js/libs/cube/util.js index 9d813835..116a771b 100644 --- a/js/libs/cube/util.js +++ b/js/libs/cube/util.js @@ -1,100 +1,111 @@ function ucfirst(str) { - str += ''; - var f = str.charAt(0).toUpperCase(); - return f + str.substr(1); + str += ''; + var f = str.charAt(0).toUpperCase(); + return f + str.substr(1); } function arrayRemove(array, element) { - var index = array.indexOf(element); - if (index == -1) { - return; - } - array.splice(index, 1); - return array; + var index = array.indexOf(element); + if (index == -1) { + return; + } + array.splice(index, 1); + return array; } function json_parse(str, info) { - try { - return JSON.parse(str); - } catch (err) { - if (info != undefined) { + try { + return JSON.parse(str); + } catch (err) { + if (info != undefined) { - } - console.error('Error parsing json :: ' + err + ' :: ' + str); - } + } + console.error('Error parsing json :: ' + err + ' :: ' + str); + } } function trim(str, charlist) { - // http://kevin.vanzonneveld.net - // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // + improved by: mdsjack (http://www.mdsjack.bo.it) - // + improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev) - // + input by: Erkekjetter - // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // + input by: DxGx - // + improved by: Steven Levithan (http://blog.stevenlevithan.com) - // + tweaked by: Jack - // + bugfixed by: Onno Marsman - // * example 1: trim(' Kevin van Zonneveld '); - // * returns 1: 'Kevin van Zonneveld' - // * example 2: trim('Hello World', 'Hdle'); - // * returns 2: 'o Wor' - // * example 3: trim(16, 1); - // * returns 3: 6 - var whitespace, l = 0, - i = 0; - str += ''; + // http://kevin.vanzonneveld.net + // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // + improved by: mdsjack (http://www.mdsjack.bo.it) + // + improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev) + // + input by: Erkekjetter + // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) + // + input by: DxGx + // + improved by: Steven Levithan (http://blog.stevenlevithan.com) + // + tweaked by: Jack + // + bugfixed by: Onno Marsman + // * example 1: trim(' Kevin van Zonneveld '); + // * returns 1: 'Kevin van Zonneveld' + // * example 2: trim('Hello World', 'Hdle'); + // * returns 2: 'o Wor' + // * example 3: trim(16, 1); + // * returns 3: 6 + var whitespace, l = 0, + i = 0; + str += ''; - if (!charlist) { - // default list - whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000"; - } else { - // preg_quote custom list - charlist += ''; - whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1'); - } + if (!charlist) { + // default list + whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000"; + } else { + // preg_quote custom list + charlist += ''; + whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1'); + } - l = str.length; - for (i = 0; i < l; i++) { - if (whitespace.indexOf(str.charAt(i)) === -1) { - str = str.substring(i); - break; - } - } + l = str.length; + for (i = 0; i < l; i++) { + if (whitespace.indexOf(str.charAt(i)) === -1) { + str = str.substring(i); + break; + } + } - l = str.length; - for (i = l - 1; i >= 0; i--) { - if (whitespace.indexOf(str.charAt(i)) === -1) { - str = str.substring(0, i + 1); - break; - } - } + l = str.length; + for (i = l - 1; i >= 0; i--) { + if (whitespace.indexOf(str.charAt(i)) === -1) { + str = str.substring(0, i + 1); + break; + } + } - return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''; + return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''; } -(function() { - var lastTime = 0; - var vendors = ['ms', 'moz', 'webkit', 'o']; - for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { - window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; - window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] - || window[vendors[x] + 'CancelRequestAnimationFrame']; - } - if (!window.requestAnimationFrame) - window.requestAnimationFrame = function(callback, element) { - var currTime = new Date().getTime(); - var timeToCall = Math.max(0, 16 - (currTime - lastTime)); - var id = window.setTimeout(function() { - callback(currTime + timeToCall); - }, - timeToCall); - lastTime = currTime + timeToCall; - return id; - }; - if (!window.cancelAnimationFrame) - window.cancelAnimationFrame = function(id) { - clearTimeout(id); - }; -}()); \ No newline at end of file +(function () { + var lastTime = 0; + var vendors = ['ms', 'moz', 'webkit', 'o']; + for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { + window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; + window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] + || window[vendors[x] + 'CancelRequestAnimationFrame']; + } + if (!window.requestAnimationFrame) + window.requestAnimationFrame = function (callback, element) { + var currTime = new Date().getTime(); + var timeToCall = Math.max(0, 16 - (currTime - lastTime)); + var id = window.setTimeout(function () { + callback(currTime + timeToCall); + }, + timeToCall); + lastTime = currTime + timeToCall; + return id; + }; + if (!window.cancelAnimationFrame) + window.cancelAnimationFrame = function (id) { + clearTimeout(id); + }; +}()); + +function guid() { + function s4() { + return Math.floor((1 + Math.random()) * 0x10000) + .toString(16) + .substring(1); + } + + return s4() + s4() + '-' + s4() + '-' + s4() + '-' + + s4() + '-' + s4() + s4() + s4(); +} \ No newline at end of file diff --git a/js/libs/fluidbook/fluidbook.stats.js b/js/libs/fluidbook/fluidbook.stats.js index 546520c6..49734152 100644 --- a/js/libs/fluidbook/fluidbook.stats.js +++ b/js/libs/fluidbook/fluidbook.stats.js @@ -1,66 +1,68 @@ function FluidbookStats(fluidbook) { - this.fluidbook = fluidbook; - this.id = this.fluidbook.datas.id; - this.init(); + this.fluidbook = fluidbook; + this.id = this.fluidbook.datas.id; + this.vid = guid(); + this.init(); } FluidbookStats.prototype = { - init: function() { - var $this = this; - $(document).on('click', 'a[data-track]', function() { - $this.track(6, 0, $(this).attr('data-track')); - return true; - }); - }, - trackPageChange: function() { - if (!this.fluidbook.support.hasNetwork()) { - return; - } - try { - if (_gaq == undefined) { - return; - } - var page = location.pathname + location.search + location.hash; - if (_gatrackers != undefined) { - $.each(_gatrackers, function(k, v) { - _gaq.push([v + '._trackPageview', page]); - }); - } else { - _gaq.push(['_trackPageview', page]); - } - } catch (err) { + init: function () { + var $this = this; + $(document).on('click', 'a[data-track]', function () { + $this.track(6, 0, $(this).attr('data-track')); + return true; + }); + }, + trackPageChange: function () { + if (!this.fluidbook.support.hasNetwork()) { + return; + } + try { + if (_gaq == undefined) { + return; + } + var page = location.pathname + location.search + location.hash; + if (_gatrackers != undefined) { + $.each(_gatrackers, function (k, v) { + _gaq.push([v + '._trackPageview', page]); + }); + } else { + _gaq.push(['_trackPageview', page]); + } + } catch (err) { - } - }, - track: function(type, page, extra) { - if (!this.fluidbook.support.hasNetwork()) { - return; - } + } + }, + track: function (type, page, extra) { + if (!this.fluidbook.support.hasNetwork()) { + return; + } - if (page == undefined) { - page = 0; - } - if (extra == undefined) { - extra = ''; - } + if (page == undefined) { + page = 0; + } + if (extra == undefined) { + extra = ''; + } - $.ajax({ - url: 'https://stats.fluidbook.com/stats2.php', - type: 'GET', - data: { - id: this.id, - type: type, - page: page, - str: extra, - time: new Date().getTime() - }, - success: function() { + $.ajax({ + url: 'https://stats.fluidbook.com/stats2.php', + type: 'GET', + data: { + id: this.id, + vid: this.vid, + type: type, + page: page, + str: extra, + time: new Date().getTime() + }, + success: function () { - }, - error: function() { + }, + error: function () { - } - }); - } + } + }); + } }; diff --git a/js/widget.js b/js/widget.js index 993353e6..95b97a91 100644 --- a/js/widget.js +++ b/js/widget.js @@ -356,4 +356,5 @@ function getColor(color) { function resize() { widget.resize(); -} \ No newline at end of file +} + -- 2.39.5