Sha256: 5f32455c26d96029f9fe3769e373a79c8bb0807fe6f36f43aecdc1ff58f4192b

Contents?: true

Size: 1.76 KB

Versions: 44

Compression:

Stored size: 1.76 KB

Contents

(function ($) {
  function trackLinkClick (action, $element) {
    var linkText = $.trim($element.text())
    var linkURL = $element.attr('href')
    var label = linkText + '|' + linkURL

    ga(
      'send',
      'event',
      'SM Technical Documentation', // Event Category
      action, // Event Action
      label // Event Label
    )
  }

  function linkTrackingEventHandler (action) {
    return function () {
      trackLinkClick(action, $(this))
    }
  }

  function catchBrokenFragmentLinks () {
    var fragment = window.location.hash
    var $target = $(fragment)
    if (!$target.get(0)) {
      ga(
        'send',
        'event',
        'Broken fragment ID', // Event Category
        'pageview', // Event Action
        window.location.pathname + fragment // Event Label
      )
    }
  }

  $(document).on('ready', function () {
    if (typeof ga === 'undefined') {
      return
    }

    $('.technical-documentation a').on('click', linkTrackingEventHandler('inTextClick'))
    $('.header a').on('click', linkTrackingEventHandler('topNavigationClick'))
    $('.toc a').on('click', linkTrackingEventHandler('tableOfContentsNavigationClick'))
    catchBrokenFragmentLinks()

    // Borrowed from:
    // https://github.com/alphagov/govuk_frontend_toolkit/blob/master/javascripts/govuk/analytics/analytics.js
    window.stripPIIFromString = function (string) {
      var EMAIL_PATTERN = /[^\s=/?&]+(?:@|%40)[^\s=/?&]+/g
      var POSTCODE_PATTERN = /[A-PR-UWYZ][A-HJ-Z]?[0-9][0-9A-HJKMNPR-Y]?(?:[\s+]|%20)*[0-9][ABD-HJLNPQ-Z]{2}/gi
      var DATE_PATTERN = /\d{4}(-?)\d{2}(-?)\d{2}/g
      var stripped = string.replace(EMAIL_PATTERN, '[email]')
        .replace(DATE_PATTERN, '[date]')
        .replace(POSTCODE_PATTERN, '[postcode]')
      return stripped
    }
  })
})(jQuery)

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
govuk_tech_docs-4.2.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-4.1.2 lib/assets/javascripts/_analytics.js
govuk_tech_docs-4.1.1 lib/assets/javascripts/_analytics.js
govuk_tech_docs-4.1.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-4.0.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.5.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.4.5 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.4.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.3.1 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.3.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.2.1 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.2.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.1.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.0.1 lib/assets/javascripts/_analytics.js
govuk_tech_docs-3.0.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-2.4.3 lib/assets/javascripts/_analytics.js
govuk_tech_docs-2.4.2 lib/assets/javascripts/_analytics.js
govuk_tech_docs-2.4.1 lib/assets/javascripts/_analytics.js
govuk_tech_docs-2.4.0 lib/assets/javascripts/_analytics.js
govuk_tech_docs-2.3.0 lib/assets/javascripts/_analytics.js