Skip to content
Commit 52274032 authored by Jesse Glick's avatar Jesse Glick
Browse files

addLoadEvent failed to pass on the Event object.

Does not matter for any handlers used in Jenkins, but can break third-party frameworks.
In particular mixpanel-2.1.min.js seems to detect when this mistake is made and somehow disables some Jenkins handlers,
causing e.g. “LOADING” to stay on job config pages and breaking behavior.js (but only on Firefox).

Using addEventListener/attachEvent where available also works, but this fix is a bit simpler and more general.
https://gist.github.com/1930440 would also work but again seems like overkill here.

To reproduce:
diff --git a/core/src/main/resources/lib/layout/layout.jelly b/core/src/main/resources/lib/layout/layout.jelly
index 1fb3fec..c1337c4 100644
--- a/core/src/main/resources/lib/layout/layout.jelly
+++ b/core/src/main/resources/lib/layout/layout.jelly
@@ -88,6 +88,19 @@ ${h.initPageVariables(context)}
 <x:doctype name="html" />
 <html>
   <head>
+<script type="text/javascript"><![CDATA[
+(function(c,a){window.mixpanel=a;var b,d,h,e;b=c.createElement("script");
+    b.type="text/javascript";b.async=!0;b.src=("https:"===c.location.protocol?"https:":"http:")+
+    '//cdn.mxpnl.com/libs/mixpanel-2.1.min.js';d=c.getElementsByTagName("script")[0];
+    d.parentNode.insertBefore(b,d);a._i=[];a.init=function(b,c,f){function d(a,b){
+    var c=b.split(".");2==c.length&&(a=a[c[0]],b=c[1]);a[b]=function(){a.push([b].concat(
+    Array.prototype.slice.call(arguments,0)))}}var g=a;"undefined"!==typeof f?g=a[f]=[]:
+    f="mixpanel";g.people=g.people||[];h=['disable','track','track_pageview','track_links',
+    'track_forms','register','register_once','unregister','identify','name_tag',
+    'set_config','people.identify','people.set','people.increment'];for(e=0;e<h.length;e++)d(g,h[e]);
+    a._i.push([b,c,f])};a.__SV=1.1;})(document,window.mixpanel||[]);
+    mixpanel.init("…something valid here…");
+]]></script>
     ${h.checkPermission(it,permission)}

     <title>${h.appendIfNotNull(title, ' [Jenkins]', 'Jenkins')}</title>
parent 97b0ebab
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment