58bdb6ef0be1f4f9f45157aa3b2c544ca1a92e57 max Tue Jul 6 05:33:19 2021 -0700 adding button click tracking to hgTracks, refs #27283 diff --git src/hg/lib/googleAnalytics.c src/hg/lib/googleAnalytics.c index 2033b17..35aa3c7 100644 --- src/hg/lib/googleAnalytics.c +++ src/hg/lib/googleAnalytics.c @@ -10,30 +10,31 @@ void googleAnalytics() /* check for analytics configuration item and output google hooks if OK */ { static boolean done = FALSE; if (done) return; done = TRUE; /* do not repeat this by mistake */ char *analyticsKey = cfgOption("analyticsKey"); // link tracking broke in Firefox once. In case this ever happens again, we can // now switch off outlink tracking quickly boolean trackClicks = cfgOptionBooleanDefault("analytics.trackClicks", TRUE); +boolean trackButtons = cfgOptionBooleanDefault("analytics.trackButtons", TRUE); /* if config is missing or empty, nothing happens here */ if (isEmpty(analyticsKey)) return; /* updated to Universal Analytics code 2014-06-19 */ // replace analytics.js below with analytics_debug.js to activate ga debugging // It will log all events and all data that is sent to the javascript console, very handy jsInlineF( " (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n" " (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n" " m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n" " })(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n" " ga('create', '%s', 'auto');\n" @@ -84,18 +85,22 @@ " $(document).ready(function() {\n" " if (!window.ga || ga.loaded)\n" // When using an Adblocker, the ga object does not exist " return;\n" " var anchors = document.getElementsByTagName('a');\n" " for (var i = 0; i < anchors.length; i++) { \n" " var a = anchors[i];\n" " var isExternal = (a.target.toLowerCase()==='_blank');\n" " if (a.attributes.href && a.attributes.href.value!=='#' && isExternal)\n" // do not run on javascript links " a.onclick = onExtAnchorClick;" // addEventHandler would not work here, the default click stops propagation. " };\n" " // on hgTracks: send an event with the current db, so we can report popularity of assemblies to NIH\n" " if (typeof hgTracks !== 'undefined')\n" " gaTrackDb(getDb());\n" " });" ); + if (trackButtons) + jsInlineF( + " $(document).ready(function() {\n" + " gaTrackButtons();\n" // see utils.js + " });"); } - }