Sha256: 21b1c3daeccb50d86c18a5097cd5bb15f486d698d2f854cca502f08fa71ae423

Contents?: true

Size: 1.96 KB

Versions: 5

Compression:

Stored size: 1.96 KB

Contents

// Stageprompt 2.0.1
//
// See: https://github.com/alphagov/stageprompt
//
// Stageprompt allows user journeys to be described and instrumented
// using data attributes.
//
// Setup (run this on document ready):
//
//   GOVUK.performance.stageprompt.setupForGoogleAnalytics();
//
// Usage:
//
//   Sending events on page load:
//
//     <div id="wrapper" class="service" data-journey="pay-register-birth-abroad:start">
//         [...]
//     </div>
//
//   Sending events on click:
//
//     <a class="help-button" href="#" data-journey-click="stage:help:info">See more info...</a>

;(function (global) {
  'use strict'

  var $ = global.jQuery
  var GOVUK = global.GOVUK || {}

  GOVUK.performance = GOVUK.performance || {}

  GOVUK.performance.stageprompt = (function () {
    var setup, setupForGoogleAnalytics, splitAction

    splitAction = function (action) {
      var parts = action.split(':')
      if (parts.length <= 3) return parts
      return [parts.shift(), parts.shift(), parts.join(':')]
    }

    setup = function (analyticsCallback) {
      var journeyStage = $('[data-journey]').attr('data-journey')
      var journeyHelpers = $('[data-journey-click]')

      if (journeyStage) {
        analyticsCallback.apply(null, splitAction(journeyStage))
      }

      journeyHelpers.on('click', function (event) {
        analyticsCallback.apply(null, splitAction($(this).data('journey-click')))
      })
    }

    setupForGoogleAnalytics = function () {
      setup(GOVUK.performance.sendGoogleAnalyticsEvent)
    }

    return {
      setup: setup,
      setupForGoogleAnalytics: setupForGoogleAnalytics
    }
  }())

  GOVUK.performance.sendGoogleAnalyticsEvent = function (category, event, label) {
    if (global.ga && typeof global.ga === 'function') {
      global.ga('send', 'event', category, event, label, {
        nonInteraction: true
      })
    } else {
      global._gaq.push(['_trackEvent', category, event, label, undefined, true])
    }
  }

  global.GOVUK = GOVUK
})(window)

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
govuk_frontend_toolkit-9.0.1 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-9.0.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-8.2.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-8.1.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-8.0.0 app/assets/javascripts/stageprompt.js