diff options
author | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
---|---|---|
committer | mensonge <mensonge@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2008-11-13 09:49:11 +0000 |
commit | e44a7e37b6c7b5961adaffc62b9042b8d442938e (patch) | |
tree | 95b67c356e93163467db2451f2b8cce84ed5d582 /includes/js/dojox/analytics/plugins | |
parent | a62b9742ee5e28bcec6872d88f50f25b820914f6 (diff) | |
download | semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.gz semanticscuttle-e44a7e37b6c7b5961adaffc62b9042b8d442938e.tar.bz2 |
New feature: basic Ajax suggestion for tags and implementation of Dojo toolkit
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@151 b3834d28-1941-0410-a4f8-b48e95affb8f
Diffstat (limited to 'includes/js/dojox/analytics/plugins')
-rw-r--r-- | includes/js/dojox/analytics/plugins/consoleMessages.js | 24 | ||||
-rw-r--r-- | includes/js/dojox/analytics/plugins/dojo.js | 22 | ||||
-rw-r--r-- | includes/js/dojox/analytics/plugins/idle.js | 34 | ||||
-rw-r--r-- | includes/js/dojox/analytics/plugins/mouseClick.js | 49 | ||||
-rw-r--r-- | includes/js/dojox/analytics/plugins/mouseOver.js | 90 | ||||
-rw-r--r-- | includes/js/dojox/analytics/plugins/window.js | 34 |
6 files changed, 253 insertions, 0 deletions
diff --git a/includes/js/dojox/analytics/plugins/consoleMessages.js b/includes/js/dojox/analytics/plugins/consoleMessages.js new file mode 100644 index 0000000..6b8e0f0 --- /dev/null +++ b/includes/js/dojox/analytics/plugins/consoleMessages.js @@ -0,0 +1,24 @@ +if(!dojo._hasResource["dojox.analytics.plugins.consoleMessages"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.analytics.plugins.consoleMessages"] = true; +dojo.provide("dojox.analytics.plugins.consoleMessages"); + +dojox.analytics.plugins.consoleMessages = new (function(){ + // summary: + // plugin to have analyitcs return the base info dojo collects + this.addData = dojo.hitch(dojox.analytics, "addData", "consoleMessages"); + + var lvls = dojo.config["consoleLogFuncs"] || ["error", "warn", "info", "rlog"]; + if(!console){ + console={}; + } + + for(var i=0; i<lvls.length;i++){ + if (console[lvls[i]]){ + dojo.connect(console, lvls[i], dojo.hitch(this, "addData", lvls[i])); + }else{ + console[lvls[i]] = dojo.hitch(this, "addData", lvls[i]); + } + } +})(); + +} diff --git a/includes/js/dojox/analytics/plugins/dojo.js b/includes/js/dojox/analytics/plugins/dojo.js new file mode 100644 index 0000000..5ecd2ba --- /dev/null +++ b/includes/js/dojox/analytics/plugins/dojo.js @@ -0,0 +1,22 @@ +if(!dojo._hasResource["dojox.analytics.plugins.dojo"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.analytics.plugins.dojo"] = true; +dojo.provide("dojox.analytics.plugins.dojo"); + +dojox.analytics.plugins.dojo = new (function(){ + // summary: + // plugin to have analyitcs return the base info dojo collects + this.addData = dojo.hitch(dojox.analytics, "addData", "dojo"); + dojo.addOnLoad(dojo.hitch(this, function(){ + var data = {}; + for(var i in dojo){ + if ((i=="version") || ((!dojo.isObject(dojo[i]))&&(i[0]!="_"))){ + data[i]=dojo[i]; + } + } + + if (dojo.config){data.djConfig=dojo.config} + this.addData(data); + })); +})(); + +} diff --git a/includes/js/dojox/analytics/plugins/idle.js b/includes/js/dojox/analytics/plugins/idle.js new file mode 100644 index 0000000..d1e71b7 --- /dev/null +++ b/includes/js/dojox/analytics/plugins/idle.js @@ -0,0 +1,34 @@ +if(!dojo._hasResource["dojox.analytics.plugins.idle"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.analytics.plugins.idle"] = true; +dojo.provide("dojox.analytics.plugins.idle"); + +// window startup data +dojox.analytics.plugins.idle = new (function(){ + this.addData = dojo.hitch(dojox.analytics, "addData", "idle"); + this.idleTime=dojo.config["idleTime"] || 60000; + this.idle=true; + + this.setIdle = function(){ + this.addData("isIdle"); + this.idle=true; + + } + + dojo.addOnLoad(dojo.hitch(this, function(){ + var idleResets=["onmousemove","onkeydown","onclick","onscroll"]; + for (var i=0;i<idleResets.length;i++){ + dojo.connect(dojo.doc,idleResets[i],this, function(e){ + if (this.idle){ + this.idle=false; + this.addData("isActive"); + this.idleTimer=setTimeout(dojo.hitch(this,"setIdle"), this.idleTime); + }else{ + clearTimeout(this.idleTimer); + this.idleTimer=setTimeout(dojo.hitch(this,"setIdle"), this.idleTime); + } + }); + } + })); +})(); + +} diff --git a/includes/js/dojox/analytics/plugins/mouseClick.js b/includes/js/dojox/analytics/plugins/mouseClick.js new file mode 100644 index 0000000..c527383 --- /dev/null +++ b/includes/js/dojox/analytics/plugins/mouseClick.js @@ -0,0 +1,49 @@ +if(!dojo._hasResource["dojox.analytics.plugins.mouseClick"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.analytics.plugins.mouseClick"] = true; +dojo.provide("dojox.analytics.plugins.mouseClick"); + +// window startup data +dojox.analytics.plugins.mouseClick = new (function(){ + this.addData = dojo.hitch(dojox.analytics, "addData", "mouseClick"); + + this.onClick=function(e){ + this.addData(this.trimEvent(e)); + } + dojo.connect(dojo.doc, "onclick", this, "onClick"); + + this.trimEvent=function(e){ + var t = {}; + for (var i in e){ + switch(i){ + case "target": + case "originalTarget": + case "explicitOriginalTarget": + var props=["id","className","nodeName", "localName","href", "spellcheck", "lang"]; + t[i]={}; + for(var j=0;j<props.length;j++){ + if(e[i][props[j]]){ + if (props[j]=="text" || props[j]=="textContent"){ + if ((e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){ + t[i][props[j]]=e[i][props[j]].substr(0,50); + } + }else{ + t[i][props[j]]=e[i][props[j]]; + } + } + } + break; + case "clientX": + case "clientY": + case "pageX": + case "pageY": + case "screenX": + case "screenY": + t[i]=e[i]; + break; + } + } + return t; + } +})(); + +} diff --git a/includes/js/dojox/analytics/plugins/mouseOver.js b/includes/js/dojox/analytics/plugins/mouseOver.js new file mode 100644 index 0000000..beaf25c --- /dev/null +++ b/includes/js/dojox/analytics/plugins/mouseOver.js @@ -0,0 +1,90 @@ +if(!dojo._hasResource["dojox.analytics.plugins.mouseOver"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.analytics.plugins.mouseOver"] = true; +dojo.provide("dojox.analytics.plugins.mouseOver"); + +dojox.analytics.plugins.mouseOver = new (function(){ + this.watchMouse = dojo.config["watchMouseOver"] || true; + this.mouseSampleDelay = dojo.config["sampleDelay"] || 2500; + this.addData = dojo.hitch(dojox.analytics, "addData", "mouseOver"); + this.targetProps = dojo.config["targetProps"] || ["id","className","localName","href", "spellcheck", "lang", "textContent", "value" ]; + + this.toggleWatchMouse=function(){ + if (this._watchingMouse){ + dojo.disconnect(this._watchingMouse); + delete this._watchingMouse; + return; + } + dojo.connect(dojo.doc, "onmousemove", this, "sampleMouse"); + } + + if (this.watchMouse){ + dojo.connect(dojo.doc, "onmouseover", this, "toggleWatchMouse"); + dojo.connect(dojo.doc, "onmouseout", this, "toggleWatchMouse"); + } + + this.sampleMouse=function(e){ + if (!this._rateLimited){ + this.addData("sample",this.trimMouseEvent(e)); + this._rateLimited=true; + setTimeout(dojo.hitch(this, function(){ + if (this._rateLimited){ + //this.addData("sample", this.trimMouseEvent(this._lastMouseEvent)); + this.trimMouseEvent(this._lastMouseEvent); + delete this._lastMouseEvent; + delete this._rateLimited; + } + }), this.mouseSampleDelay); + } + this._lastMouseEvent = e; + return e; + } + + this.trimMouseEvent=function(e){ + var t = {}; + for (var i in e){ + switch(i){ + //case "currentTarget": + case "target": + //case "originalTarget": + //case "explicitOriginalTarget": + var props=this.targetProps; + t[i]={}; + //console.log(e, i, e[i]); + for(var j=0;j<props.length;j++){ + if(dojo.isObject(e[i]) && props[j] in e[i]){ + + if (props[j]=="text" || props[j]=="textContent"){ + if (e[i]["localName"] && (e[i]["localName"]!="HTML")&&(e[i]["localName"]!="BODY")){ + t[i][props[j]]=e[i][props[j]].substr(0,50); + } + }else{ + t[i][props[j]]=e[i][props[j]]; + } + } + } + break; + //case "clientX": + //case "clientY": + //case "pageX": + //case "pageY": + //case "screenX": + //case "screenY": + case "x": + case "y": + if (e[i]) { + //console.log("Attempting: " + i); + var val = e[i]; + //console.log("val: " + val); console.log(i + "e of i: " + val); + t[i]=val + ''; + } + break; + default: + //console.log("Skipping: ", i); + break; + } + } + return t; + } +})(); + +} diff --git a/includes/js/dojox/analytics/plugins/window.js b/includes/js/dojox/analytics/plugins/window.js new file mode 100644 index 0000000..1eb86bb --- /dev/null +++ b/includes/js/dojox/analytics/plugins/window.js @@ -0,0 +1,34 @@ +if(!dojo._hasResource["dojox.analytics.plugins.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.analytics.plugins.window"] = true; +dojo.provide("dojox.analytics.plugins.window"); + +// window startup data +dojox.analytics.plugins.window = new (function(){ + this.addData = dojo.hitch(dojox.analytics, "addData", "window"); + this.windowConnects = dojo.config["windowConnects"] || ["open", "onerror"]; + + for(var i=0; i<this.windowConnects.length;i++){ + dojo.connect(window, this.windowConnects[i], dojo.hitch(this, "addData", this.windowConnects[i])); + } + + dojo.addOnLoad(dojo.hitch(this, function(){ + var data = {}; + for(var i in window){ + if (dojo.isObject(window[i])){ + switch(i){ + case "location": + case "console": + data[i]=window[i]; + break; + default: + break; + } + }else{ + data[i]=window[i]; + } + } + this.addData(data); + })); +})(); + +} |