Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--js/piwik.js2
-rw-r--r--piwik.js4
-rw-r--r--plugins/CoreHome/templates/broadcast.js2
-rw-r--r--plugins/Overlay/Controller.php12
-rw-r--r--plugins/Overlay/client/client.css5
-rw-r--r--plugins/Overlay/client/client.js59
-rw-r--r--plugins/Overlay/client/followingpages.js48
-rw-r--r--plugins/Overlay/templates/index.css2
-rw-r--r--plugins/Overlay/templates/index.js28
-rw-r--r--plugins/Overlay/templates/index.tpl2
-rw-r--r--plugins/Overlay/templates/index_noframe.tpl8
11 files changed, 135 insertions, 37 deletions
diff --git a/js/piwik.js b/js/piwik.js
index 7a978ce925..ecfff3951f 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -971,7 +971,7 @@ var
}
};
script.onload = onLoad;
- script.src = root + 'plugins/Overlay/client/client.js';
+ script.src = root + 'plugins/Overlay/client/client.js?v=1';
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
}
diff --git a/piwik.js b/piwik.js
index 594e35a032..54e9cfb2ef 100644
--- a/piwik.js
+++ b/piwik.js
@@ -14,7 +14,7 @@ return typeof f==="function"?m({"":n},""):n}throw new SyntaxError("JSON.parse")}
}function j(){var L;if(n.addEventListener){J(n,"DOMContentLoaded",function i(){n.removeEventListener("DOMContentLoaded",i,false);F()})}else{if(n.attachEvent){n.attachEvent("onreadystatechange",function i(){if(n.readyState==="complete"){n.detachEvent("onreadystatechange",i);F()}});if(n.documentElement.doScroll&&w===w.top){(function i(){if(!k){try{n.documentElement.doScroll("left")}catch(M){setTimeout(i,0);return}F()}}())}}}if((new RegExp("WebKit")).test(c.userAgent)){L=setInterval(function(){if(k||/loaded|complete/.test(n.readyState)){clearInterval(L);F()}},10)}J(w,"load",F,false)}function q(){var i="";try{i=w.top.document.referrer}catch(M){if(w.parent){try{i=w.parent.document.referrer}catch(L){i=""}}}if(i===""){i=n.referrer}return i}function f(i){var M=new RegExp("^([a-z]+):"),L=M.exec(i);return L?L[1]:null}function b(i){var M=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),L=M.exec(i);return L?L[1]:i}function x(M,L){var P=new RegExp("^(?:https?|ftp)(?::/*(?:[^?]+)[?])([^#]+)"),O=P.exec(M),N=new RegExp("(?:^|&)"+L+"=([^&]*)"),i=O?N.exec(O[1]):0;
return i?v(i[1]):""}function m(i){return d(g(i))}function I(ab){var N=function(W,i){return(W<<i)|(W>>>(32-i))},ac=function(ai){var ah="",ag,W;for(ag=7;ag>=0;ag--){W=(ai>>>(ag*4))&15;ah+=W.toString(16)}return ah},Q,ae,ad,M=[],U=1732584193,S=4023233417,R=2562383102,P=271733878,O=3285377520,aa,Z,Y,X,V,af,L,T=[];ab=m(ab);L=ab.length;for(ae=0;ae<L-3;ae+=4){ad=ab.charCodeAt(ae)<<24|ab.charCodeAt(ae+1)<<16|ab.charCodeAt(ae+2)<<8|ab.charCodeAt(ae+3);T.push(ad)}switch(L&3){case 0:ae=2147483648;break;case 1:ae=ab.charCodeAt(L-1)<<24|8388608;break;case 2:ae=ab.charCodeAt(L-2)<<24|ab.charCodeAt(L-1)<<16|32768;break;case 3:ae=ab.charCodeAt(L-3)<<24|ab.charCodeAt(L-2)<<16|ab.charCodeAt(L-1)<<8|128;break}T.push(ae);while((T.length&15)!==14){T.push(0)}T.push(L>>>29);T.push((L<<3)&4294967295);for(Q=0;Q<T.length;Q+=16){for(ae=0;ae<16;ae++){M[ae]=T[Q+ae]}for(ae=16;ae<=79;ae++){M[ae]=N(M[ae-3]^M[ae-8]^M[ae-14]^M[ae-16],1)}aa=U;Z=S;Y=R;X=P;V=O;for(ae=0;ae<=19;ae++){af=(N(aa,5)+((Z&Y)|(~Z&X))+V+M[ae]+1518500249)&4294967295;
V=X;X=Y;Y=N(Z,30);Z=aa;aa=af}for(ae=20;ae<=39;ae++){af=(N(aa,5)+(Z^Y^X)+V+M[ae]+1859775393)&4294967295;V=X;X=Y;Y=N(Z,30);Z=aa;aa=af}for(ae=40;ae<=59;ae++){af=(N(aa,5)+((Z&Y)|(Z&X)|(Y&X))+V+M[ae]+2400959708)&4294967295;V=X;X=Y;Y=N(Z,30);Z=aa;aa=af}for(ae=60;ae<=79;ae++){af=(N(aa,5)+(Z^Y^X)+V+M[ae]+3395469782)&4294967295;V=X;X=Y;Y=N(Z,30);Z=aa;aa=af}U=(U+aa)&4294967295;S=(S+Z)&4294967295;R=(R+Y)&4294967295;P=(P+X)&4294967295;O=(O+V)&4294967295}af=ac(U)+ac(S)+ac(R)+ac(P)+ac(O);return af.toLowerCase()}function C(M,i,L){if(M==="translate.googleusercontent.com"){if(L===""){L=i}i=x(i,"u");M=b(i)}else{if(M==="cc.bingj.com"||M==="webcache.googleusercontent.com"||M.slice(0,5)==="74.6."){i=n.links[0].href;M=b(i)}}return[M,i,L]}function r(L){var i=L.length;if(L.charAt(--i)==="."){L=L.slice(0,i)}if(L.slice(0,2)==="*."){L=L.slice(1)}return L}function K(L){if(!h(L)){L=L.text||"";var i=n.getElementsByTagName("title");if(i&&p(i[0])){L=i[0].text}}return L}function s(O,S){var U="Piwik_Overlay";var R=n.referrer;
-var i=O;i=i.substring(0,i.length-9);i.substring(i.substring(0,7)==="http://"?7:8,i.length);R.substring(R.substring(0,7)==="http://"?7:8,R.length);if(R.substring(0,i.length)===i){var M=new RegExp("^"+i+"index\\.php\\?module=Overlay&action=startOverlaySession&idsite=([0-9]+)&period=([^&]+)&date=([^&]+)$");var N=R.match(M);if(N){var P=N[1];if(parseInt(P,10)!==S){return false}var Q=N[2];var L=N[3];window.name=U+"###"+Q+"###"+L}}var T=w.name.split("###");return T.length===3&&T[0]===U}function B(M,S){var T=window.name.split("###");var R=M.substring(0,M.length-9);var N=T[1];var i=T[2];var L=false;var O=function(){if(!L){L=true;Piwik_Overlay_Client.initialize(R,S,N,i)}};var Q=document.createElement("script");Q.type="text/javascript";Q.onreadystatechange=function(){if(this.readyState==="loaded"||this.readyState==="complete"){O()}};Q.onload=O;Q.src=R+"plugins/Overlay/client/client.js";var P=document.getElementsByTagName("head")[0];P.appendChild(Q)}function t(af,aE){var O=C(n.domain,w.location.href,q()),aX=r(O[0]),bb=O[1],aK=O[2],aI="GET",N=af||"",a1=aE||"",av,al=n.title,an="7z|aac|ar[cj]|as[fx]|avi|bin|csv|deb|dmg|doc|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|ms[ip]|od[bfgpst]|og[gv]|pdf|phps|png|ppt|qtm?|ra[mr]?|rpm|sea|sit|tar|t?bz2?|tgz|torrent|txt|wav|wm[av]|wpd||xls|xml|z|zip",aG=[aX],R=[],az=[],ae=[],aF=500,S,ag,T,U,ap=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],ak=["pk_kwd","piwik_kwd","utm_term"],a9="_pk_",X,ba,V=false,a4,ar,au,ac=63072000000,ad=1800000,aw=15768000000,aa=n.location.protocol==="https",Q=false,aA={},a5=200,aQ={},a2={},aN=false,aL=false,aJ,aB,Y,ao=I,aM,at;
+var i=O;i=i.substring(0,i.length-9);i.substring(i.substring(0,7)==="http://"?7:8,i.length);R.substring(R.substring(0,7)==="http://"?7:8,R.length);if(R.substring(0,i.length)===i){var M=new RegExp("^"+i+"index\\.php\\?module=Overlay&action=startOverlaySession&idsite=([0-9]+)&period=([^&]+)&date=([^&]+)$");var N=R.match(M);if(N){var P=N[1];if(parseInt(P,10)!==S){return false}var Q=N[2];var L=N[3];window.name=U+"###"+Q+"###"+L}}var T=w.name.split("###");return T.length===3&&T[0]===U}function B(M,S){var T=window.name.split("###");var R=M.substring(0,M.length-9);var N=T[1];var i=T[2];var L=false;var O=function(){if(!L){L=true;Piwik_Overlay_Client.initialize(R,S,N,i)}};var Q=document.createElement("script");Q.type="text/javascript";Q.onreadystatechange=function(){if(this.readyState==="loaded"||this.readyState==="complete"){O()}};Q.onload=O;Q.src=R+"plugins/Overlay/client/client.js?v=1";var P=document.getElementsByTagName("head")[0];P.appendChild(Q)}function t(af,aE){var O=C(n.domain,w.location.href,q()),aX=r(O[0]),bb=O[1],aK=O[2],aI="GET",N=af||"",a1=aE||"",av,al=n.title,an="7z|aac|ar[cj]|as[fx]|avi|bin|csv|deb|dmg|doc|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|ms[ip]|od[bfgpst]|og[gv]|pdf|phps|png|ppt|qtm?|ra[mr]?|rpm|sea|sit|tar|t?bz2?|tgz|torrent|txt|wav|wm[av]|wpd||xls|xml|z|zip",aG=[aX],R=[],az=[],ae=[],aF=500,S,ag,T,U,ap=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],ak=["pk_kwd","piwik_kwd","utm_term"],a9="_pk_",X,ba,V=false,a4,ar,au,ac=63072000000,ad=1800000,aw=15768000000,aa=n.location.protocol==="https",Q=false,aA={},a5=200,aQ={},a2={},aN=false,aL=false,aJ,aB,Y,ao=I,aM,at;
function aS(bk,bh,bg,bj,bf,bi){if(V){return}var be;if(bg){be=new Date();be.setTime(be.getTime()+bg)}n.cookie=bk+"="+g(bh)+(bg?";expires="+be.toGMTString():"")+";path="+(bj||"/")+(bf?";domain="+bf:"")+(bi?";secure":"")}function ab(bg){if(V){return 0}var be=new RegExp("(^|;)[ ]*"+bg+"=([^;]*)"),bf=be.exec(n.cookie);return bf?v(bf[2]):0}function a6(be){var bf;if(T){bf=new RegExp("#.*");return be.replace(bf,"")}return be}function aW(bg,be){var bh=f(be),bf;if(bh){return be}if(be.slice(0,1)==="/"){return f(bg)+"://"+b(bg)+be}bg=a6(bg);if((bf=bg.indexOf("?"))>=0){bg=bg.slice(0,bf)}if((bf=bg.lastIndexOf("/"))!==bg.length-1){bg=bg.slice(0,bf+1)}return bg+be}function aH(bh){var bf,be,bg;for(bf=0;bf<aG.length;bf++){be=r(aG[bf].toLowerCase());if(bh===be){return true}if(be.slice(0,1)==="."){if(bh===be.slice(1)){return true}bg=bh.length-be.length;if((bg>0)&&(bh.slice(bg)===be)){return true}}}return false}function bd(be){var bf=new Image(1,1);bf.onload=function(){};bf.src=N+(N.indexOf("?")<0?"?":"&")+be
}function aT(be){try{var bg=w.XMLHttpRequest?new w.XMLHttpRequest():w.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;bg.open("POST",N,true);bg.onreadystatechange=function(){if(this.readyState===4&&this.status!==200){bd(be)}};bg.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");bg.send(be)}catch(bf){bd(be)}}function aq(bg,bf){var be=new Date();if(!a4){if(aI==="POST"){aT(bg)}else{bd(bg)}e=be.getTime()+bf}}function aR(be){return a9+be+"."+a1+"."+aM}function P(){if(V){return"0"}if(!p(c.cookieEnabled)){var be=aR("testcookie");aS(be,"1");return ab(be)==="1"?"1":"0"}return c.cookieEnabled?"1":"0"}function aC(){aM=ao((X||aX)+(ba||"/")).slice(0,4)}function Z(){var bf=aR("cvar"),be=ab(bf);if(be.length){be=JSON2.parse(be);if(y(be)){return be}}return{}}function M(){if(Q===false){Q=Z()}}function a0(){var be=new Date();aJ=be.getTime()}function W(bi,bf,be,bh,bg,bj){aS(aR("id"),bi+"."+bf+"."+be+"."+bh+"."+bg+"."+bj,ac,ba,X,aa)}function L(){var bf=new Date(),be=Math.round(bf.getTime()/1000),bh=ab(aR("id")),bg;
if(bh){bg=bh.split(".");bg.unshift("0")}else{if(!at){at=ao((c.userAgent||"")+(c.platform||"")+JSON2.stringify(a2)+be).slice(0,16)}bg=["1",at,be,0,be,"",""]}return bg}function i(){var be=ab(aR("ref"));if(be.length){try{be=JSON2.parse(be);if(y(be)){return be}}catch(bf){}}return["","",0,""]}function am(bg,bF,bG,bi){var bD,bf=new Date(),bo=Math.round(bf.getTime()/1000),bI,bE,bk,bw,bA,bn,by,bl,bC,bj=1024,bJ,br,bz=Q,bu=aR("id"),bp=aR("ses"),bq=aR("ref"),bK=aR("cvar"),bx=L(),bt=ab(bp),bB=i(),bH=av||bb,bm,be;if(V){V=false;aS(bu,"",-86400,ba,X);aS(bp,"",-86400,ba,X);aS(bK,"",-86400,ba,X);aS(bq,"",-86400,ba,X);V=true}if(a4){return""}bI=bx[0];bE=bx[1];bw=bx[2];bk=bx[3];bA=bx[4];bn=bx[5];if(!p(bx[6])){bx[6]=""}by=bx[6];if(!p(bi)){bi=""}var bs=document.characterSet||document.charset;if(!bs||bs.toLowerCase()==="utf-8"||bs.toLowerCase()==="iso-8859-1"||bs.toLowerCase()==="iso-8859-15"){bs=null}bm=bB[0];be=bB[1];bl=bB[2];bC=bB[3];if(!bt){bk++;bn=bA;if(!au||!bm.length){for(bD in ap){if(Object.prototype.hasOwnProperty.call(ap,bD)){bm=x(bH,ap[bD]);
@@ -27,4 +27,4 @@ a2[bf]=(bg&&bg.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unkno
if(!p(bg)){bg="visit"}if(bg==="page"||bg===3){be=aA[bf]}else{if(bg==="visit"||bg===2){M();be=Q[bf]}}if(!p(be)||(be&&be[0]==="")){return false}return be},deleteCustomVariable:function(be,bf){if(this.getCustomVariable(be,bf)){this.setCustomVariable(be,"","",bf)}},setLinkTrackingTimer:function(be){aF=be},setDownloadExtensions:function(be){an=be},addDownloadExtensions:function(be){an+="|"+be},setDomains:function(be){aG=h(be)?[be]:be;aG.push(aX)},setIgnoreClasses:function(be){R=h(be)?[be]:be},setRequestMethod:function(be){aI=be||"GET"},setReferrerUrl:function(be){aK=be},setCustomUrl:function(be){av=aW(bb,be)},setDocumentTitle:function(be){al=be},setDownloadClasses:function(be){az=h(be)?[be]:be},setLinkClasses:function(be){ae=h(be)?[be]:be},setCampaignNameKey:function(be){ap=h(be)?[be]:be},setCampaignKeywordKey:function(be){ak=h(be)?[be]:be},discardHashTag:function(be){T=be},setCookieNamePrefix:function(be){a9=be;Q=Z()},setCookieDomain:function(be){X=r(be);aC()},setCookiePath:function(be){ba=be;
aC()},setVisitorCookieTimeout:function(be){ac=be*1000},setSessionCookieTimeout:function(be){ad=be*1000},setReferralCookieTimeout:function(be){aw=be*1000},setConversionAttributionFirstReferrer:function(be){au=be},disableCookies:function(){V=true;a2.cookie="0"},setDoNotTrack:function(bf){var be=c.doNotTrack||c.msDoNotTrack;a4=bf&&(be==="yes"||be==="1");if(a4){this.disableCookies()}},addListener:function(bf,be){aO(bf,be)},enableLinkTracking:function(be){if(k){ax(be)}else{u.push(function(){ax(be)})}},setHeartBeatTimer:function(bg,bf){var be=new Date();S=be.getTime()+bg*1000;ag=bf*1000},killFrame:function(){if(w.location!==w.top.location){w.top.location=w.location}},redirectFile:function(be){if(w.location.protocol==="file:"){w.location=be}},setCountPreRendered:function(be){ar=be},trackGoal:function(be,bg,bf){ai(function(){aD(be,bg,bf)})},trackLink:function(bf,be,bg){ai(function(){aZ(bf,be,bg)})},trackPageView:function(be,bf){if(s(N,a1)){ai(function(){B(N,a1)})}else{ai(function(){ay(be,bf)})}},trackSiteSearch:function(be,bg,bf){ai(function(){aj(be,bg,bf)
})},setEcommerceView:function(bh,be,bg,bf){if(!p(bg)||!bg.length){bg=""}else{if(bg instanceof Array){bg=JSON2.stringify(bg)}}aA[5]=["_pkc",bg];if(p(bf)&&String(bf).length){aA[2]=["_pkp",bf]}if((!p(bh)||!bh.length)&&(!p(be)||!be.length)){return}if(p(bh)&&bh.length){aA[3]=["_pks",bh]}if(!p(be)||!be.length){be=""}aA[4]=["_pkn",be]},addEcommerceItem:function(bi,be,bg,bf,bh){if(bi.length){aQ[bi]=[bi,be,bg,bf,bh]}},trackEcommerceOrder:function(be,bi,bh,bg,bf,bj){aU(be,bi,bh,bg,bf,bj)},trackEcommerceCartUpdate:function(be){a8(be)}}}function o(){return{push:G}}J(w,"beforeunload",H,false);j();Date.prototype.getTimeAlias=Date.prototype.getTime;A=new t();for(D=0;D<_paq.length;D++){G(_paq[D])}_paq=new o();return{addPlugin:function(i,L){a[i]=L},getTracker:function(i,L){return new t(i,L)},getAsyncTracker:function(){return A}}}()),piwik_track,piwik_log=function(b,f,d,g){function a(h){try{return eval("piwik_"+h)}catch(i){}return}var c,e=Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);
-c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}}; \ No newline at end of file
+c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
diff --git a/plugins/CoreHome/templates/broadcast.js b/plugins/CoreHome/templates/broadcast.js
index f3efff7bf1..6e153702e4 100644
--- a/plugins/CoreHome/templates/broadcast.js
+++ b/plugins/CoreHome/templates/broadcast.js
@@ -70,6 +70,8 @@ var broadcast = {
* 1. after calling $.history.init();
* 2. after calling $.history.load(); //look at broadcast.changeParameter();
* 3. after pushing "Go Back" button of a browser
+ *
+ * * Note: the method is manipulated in Overlay/templates/index.js - keep this in mind when making changes.
*
* @param {string} hash to load page with
* @return {void}
diff --git a/plugins/Overlay/Controller.php b/plugins/Overlay/Controller.php
index ecb5192108..5e86073048 100644
--- a/plugins/Overlay/Controller.php
+++ b/plugins/Overlay/Controller.php
@@ -134,6 +134,7 @@ class Piwik_Overlay_Controller extends Piwik_Controller
$urls = $sitesManager->getSiteUrlsFromId($idSite);
echo '
+ <html><head><title></title></head><body>
<script type="text/javascript">
function handleProtocol(url) {
if (' . ($this->usingSsl() ? 'true' : 'false') . ') {
@@ -158,7 +159,15 @@ class Piwik_Overlay_Controller extends Piwik_Controller
var testUrl = removeUrlPrefix(knownUrls[i]);
if (urlToRedirectWithoutPrefix.substr(0, testUrl.length) == testUrl) {
match = true;
- window.location.href = handleProtocol(urlToRedirect);
+ if (navigator.appName == "Microsoft Internet Explorer") {
+ // internet explorer loses the referrer if we use window.location.href=X
+ var referLink = document.createElement("a");
+ referLink.href = handleProtocol(urlToRedirect);
+ document.body.appendChild(referLink);
+ referLink.click();
+ } else {
+ window.location.href = handleProtocol(urlToRedirect);
+ }
break;
}
}
@@ -174,6 +183,7 @@ class Piwik_Overlay_Controller extends Piwik_Controller
window.location.href = handleProtocol("'.$site['main_url'].'");
};
</script>
+ </body></html>
';
}
diff --git a/plugins/Overlay/client/client.css b/plugins/Overlay/client/client.css
index 9484de5458..05e2e87169 100644
--- a/plugins/Overlay/client/client.css
+++ b/plugins/Overlay/client/client.css
@@ -121,16 +121,13 @@
#PIS_StatusBar {
padding: 10px 0;
- position: absolute;
position: fixed;
z-index: 10020;
bottom: 0;
right: 0;
- background: #ccc;
border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
background: #fbfbfb;
-
-webkit-border-top-left-radius: 6px;
-webkit-border-top-right-radius: 0px;
-webkit-border-bottom-right-radius: 0px;
@@ -142,7 +139,7 @@
border-top-left-radius: 6px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
- border-bottom-left-radius: 0px;
+ border-bottom-left-radius: 0px;
}
#PIS_StatusBar .PIS_Item {
diff --git a/plugins/Overlay/client/client.js b/plugins/Overlay/client/client.js
index e4eb418289..64b3aede6b 100644
--- a/plugins/Overlay/client/client.js
+++ b/plugins/Overlay/client/client.js
@@ -82,6 +82,49 @@ var Piwik_Overlay_Client = (function() {
return el;
}
+ /** Special treatment for some internet explorers */
+ var ieStatusBarEventsBound = false;
+ function handleIEStatusBar() {
+ if (navigator.appVersion.indexOf("MSIE 7.") == -1
+ && navigator.appVersion.indexOf("MSIE 8.") == -1) {
+ // this is not IE8 or lower
+ return;
+ }
+
+ // IE7/8 can't handle position:fixed so we need to do it by hand
+ statusBar.css({
+ position: 'absolute',
+ right: 'auto',
+ bottom: 'auto',
+ left: 0,
+ top: 0
+ });
+
+ var position = function() {
+ var scrollY = document.body.scrollTop;
+ var scrollX = document.body.scrollLeft;
+ statusBar.css({
+ top: (scrollY + $(window).height() - statusBar.outerHeight()) + 'px',
+ left: (scrollX + $(window).width() - statusBar.outerWidth()) + 'px'
+ });
+ };
+
+ position();
+
+ statusBar.css({width: 'auto'});
+ if (statusBar.width() < 350) {
+ statusBar.width(350);
+ } else {
+ statusBar.width(statusBar.width());
+ }
+
+ if (!ieStatusBarEventsBound) {
+ ieStatusBarEventsBound = true;
+ $(window).resize(position);
+ $(window).scroll(position);
+ }
+ }
+
return {
/** Initialize in-site analytics */
@@ -142,7 +185,7 @@ var Piwik_Overlay_Client = (function() {
};
script.onload = onLoad;
- script.src = piwikRoot+relativePath;
+ script.src = piwikRoot+relativePath+'?v=1';
head.appendChild(script);
},
@@ -183,13 +226,27 @@ var Piwik_Overlay_Client = (function() {
statusBar.show().append(item);
+ handleIEStatusBar();
+
return function() {
item.remove();
if (statusBar.children().size() == 0) {
statusBar.hide();
+ } else {
+ handleIEStatusBar();
}
};
},
+
+ /** Hide all notifications with a certain class */
+ hideNotifications: function(className) {
+ statusBar.find('.PIS_' + className).remove();
+ if (statusBar.children().size() == 0) {
+ statusBar.hide();
+ } else {
+ handleIEStatusBar();
+ }
+ },
/**
* Initialize a loading notification
diff --git a/plugins/Overlay/client/followingpages.js b/plugins/Overlay/client/followingpages.js
index 093b960f9b..edb9c40e1e 100644
--- a/plugins/Overlay/client/followingpages.js
+++ b/plugins/Overlay/client/followingpages.js
@@ -156,7 +156,7 @@ var Piwik_Overlay_FollowingPages = (function() {
/** Create the link tag element */
function createLinkTag(linkTag, linkUrl, data, body) {
- if (typeof linkTag[0].piwikTagElement != 'undefined') {
+ if (typeof linkTag[0].piwikTagElement != 'undefined' && linkTag[0].piwikTagElement !== null) {
// this link tag already has a tag element. happens in rare cases.
return;
}
@@ -220,7 +220,7 @@ var Piwik_Overlay_FollowingPages = (function() {
inlineChild = linkTag.children().eq(0);
}
- if (linkTag.css('visibility') == 'hidden' || (
+ if (getVisibility(linkTag) == 'hidden' || (
// in case of hasOneChild: jquery always returns linkTag.is(':visible')=false
!linkTag.is(':visible') && !(hasOneChild && inlineChild && inlineChild.is(':visible'))
)) {
@@ -230,7 +230,7 @@ var Piwik_Overlay_FollowingPages = (function() {
}
tagElement.attr('class', 'PIS_LinkTag'); // reset class
- if (tagElement.data('piwik-highlighted')) {
+ if (tagElement[0].piwikHighlighted) {
tagElement.addClass('PIS_Highlighted');
}
@@ -277,11 +277,11 @@ var Piwik_Overlay_FollowingPages = (function() {
// remove the tag element from the dom
if (linkTag && linkTag[0] && linkTag[0].piwikTagElement) {
tagElement = linkTag[0].piwikTagElement;
- if (tagElement.data('piwik-highlighted')) {
+ if (tagElement[0].piwikHighlighted) {
unHighlightLink(linkTag, tagToRemove.index1);
}
tagElement.remove();
- delete linkTag[0].piwikTagElement;
+ linkTag[0].piwikTagElement = null;
}
// remove the link from the index
linksOnPage[tagToRemove.index1].splice(tagToRemove.index2, 1);
@@ -294,6 +294,18 @@ var Piwik_Overlay_FollowingPages = (function() {
callback();
}
}
+
+ /** Get the visibility of an element */
+ function getVisibility(el) {
+ var visibility = el.css('visibility');
+ if (visibility == 'inherit') {
+ el = el.parent();
+ if (el.size() > 0) {
+ return getVisibility(el);
+ }
+ }
+ return visibility;
+ }
/**
* Find out whether a link has only one child. Using .children().size() == 1 doesn't work
@@ -321,7 +333,7 @@ var Piwik_Overlay_FollowingPages = (function() {
/** Check whether new links have been added to the dom */
function findNewLinks() {
var newLinks = $('a').filter(function() {
- return typeof this.piwikDiscovered == 'undefined';
+ return typeof this.piwikDiscovered == 'undefined' || this.piwikDiscovered === null;
});
if (newLinks.size() == 0) {
@@ -395,20 +407,28 @@ var Piwik_Overlay_FollowingPages = (function() {
var padding = '&nbsp;&nbsp;';
highlightElements[3].html(padding + text + padding).css({
- minWidth: (width + 4) + 'px',
+ width: 'auto',
top: offset.top + height,
left: offset.left - 2
}).show();
+ if (highlightElements[3].width() < width + 4) {
+ // we cannot use minWidth because of IE7
+ highlightElements[3].width(width + 4);
+ }
for (var j = 0; j < numLinks; j++) {
var tag = linksOnPage[linkUrl][j][0].piwikTagElement;
tag.addClass('PIS_Highlighted');
- tag.data('piwik-highlighted', true);
+ tag[0].piwikHighlighted = true;
}
+ // Sometimes it fails to remove the notification when the hovered element is removed.
+ // To make sure we don't display more than one location at a time, we hide all before showing the new one.
+ Piwik_Overlay_Client.hideNotifications('LinkLocation');
+
// we don't use .data() because jquery would remove the callback when the link tag is removed
linkTag[0].piwikHideNotification = Piwik_Overlay_Client.notification(
- Piwik_Overlay_Translations.get('link') + ': ' + linkUrl);
+ Piwik_Overlay_Translations.get('link') + ': ' + linkUrl, 'LinkLocation');
}
/** Remove highlight from link */
@@ -422,12 +442,13 @@ var Piwik_Overlay_FollowingPages = (function() {
var tag = linksOnPage[linkUrl][j][0].piwikTagElement;
if (tag) {
tag.removeClass('PIS_Highlighted');
- tag.data('piwik-highlighted', false);
+ tag[0].piwikHighlighted = false;
}
}
- if (typeof linkTag[0].piwikHideNotification == 'function') {
- linkTag[0].piwikHideNotification.apply();
+ if ((typeof linkTag[0].piwikHideNotification) == 'function') {
+ linkTag[0].piwikHideNotification();
+ linkTag[0].piwikHideNotification = null;
}
}
@@ -464,10 +485,11 @@ var Piwik_Overlay_FollowingPages = (function() {
for (var j = 0; j < linksOnPage[url].length; j++) {
var linkTag = linksOnPage[url][j];
var tagElement = linkTag[0].piwikTagElement;
- delete linkTag[0].piwikTagElement;
if (tagElement) {
tagElement.remove();
}
+ linkTag[0].piwikTagElement = null;
+
$(linkTag).unbind('mouseenter').unbind('mouseleave');
}
}
diff --git a/plugins/Overlay/templates/index.css b/plugins/Overlay/templates/index.css
index 42efdcf0dd..154546eeeb 100644
--- a/plugins/Overlay/templates/index.css
+++ b/plugins/Overlay/templates/index.css
@@ -2,6 +2,8 @@
html {
width: 100%;
height: 100%;
+ /** hide scroll bar in ie7 */
+ *overflow: auto;
}
body {
diff --git a/plugins/Overlay/templates/index.js b/plugins/Overlay/templates/index.js
index 807eb6b565..45ec759d42 100644
--- a/plugins/Overlay/templates/index.js
+++ b/plugins/Overlay/templates/index.js
@@ -58,7 +58,7 @@ var Piwik_Overlay = (function() {
});
$sidebar.empty().append($response).show();
-
+
if ($sidebar.find('.Overlay_NoData').size() == 0) {
$rowEvolutionLink.show();
$transitionsLink.show()
@@ -109,7 +109,7 @@ var Piwik_Overlay = (function() {
function hashChangeCallback(urlHash) {
var location = broadcast.getParamValue('l', urlHash);
location = Overlay_Helper.decodeFrameUrl(location);
-
+
if (!updateComesFromInsideFrame) {
var iframeUrl = iframeSrcBase;
if (location) {
@@ -122,12 +122,6 @@ var Piwik_Overlay = (function() {
}
updateComesFromInsideFrame = false;
-
- // handle window resize
- // this needs to be bound here because broadcast unbinds it after every hash change
- $(window).resize(function() {
- adjustDimensions();
- });
}
return {
@@ -160,15 +154,27 @@ var Piwik_Overlay = (function() {
adjustDimensions();
}, 50);
+ // handle window resize
+ // we manipulate broadcast.pageload because it unbinds all resize events on window
+ var originalPageload = broadcast.pageload;
+ broadcast.pageload = function(hash) {
+ originalPageload(hash);
+ $(window).resize(function() {
+ adjustDimensions();
+ });
+ };
+ $(window).resize(function() {
+ adjustDimensions();
+ });
+
// handle hash change
broadcast.loadAjaxContent = hashChangeCallback;
broadcast.init();
-
+
if (window.location.href.split('#').length == 1) {
// if there's no hash, broadcast won't trigger the callback - we have to do it here
hashChangeCallback('');
}
-
// handle date selection
var $select = $('select#Overlay_DateRangeSelect').change(function() {
@@ -224,7 +230,7 @@ var Piwik_Overlay = (function() {
if (locationParts.length > 1) {
currentLocation = broadcast.getParamValue('l', locationParts[1]);
}
-
+
var newLocation = Overlay_Helper.encodeFrameUrl(currentUrl);
if (newLocation != currentLocation) {
diff --git a/plugins/Overlay/templates/index.tpl b/plugins/Overlay/templates/index.tpl
index 2499b1662e..66bddbe1db 100644
--- a/plugins/Overlay/templates/index.tpl
+++ b/plugins/Overlay/templates/index.tpl
@@ -43,7 +43,7 @@
<div id="Overlay_Main">
- <iframe id="Overlay_Iframe" src=""></iframe>
+ <iframe id="Overlay_Iframe" src="" frameborder="0"></iframe>
</div>
diff --git a/plugins/Overlay/templates/index_noframe.tpl b/plugins/Overlay/templates/index_noframe.tpl
index ec2008c5d3..0897f7cd9c 100644
--- a/plugins/Overlay/templates/index_noframe.tpl
+++ b/plugins/Overlay/templates/index_noframe.tpl
@@ -8,9 +8,11 @@
{literal}
- var loactionParts = window.location.href.split('#');
- if (loactionParts.length > 1) {
- newLocation += '#' + loactionParts[1];
+ var locationParts = window.location.href.split('#');
+ if (locationParts.length > 1) {
+ var url = broadcast.getParamValue('l', locationParts[1]);
+ url = Overlay_Helper.decodeFrameUrl(url);
+ newLocation += '#' + url;
}
window.location.href = newLocation;