Sha256: f9520253a5236ccc9e3501a4ab69d2b6428ee73b03d3270e6b3858ef5bfa7aba

Contents?: true

Size: 1.79 KB

Versions: 28

Compression:

Stored size: 1.79 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) {
    global._gaq.push(['_trackEvent', category, event, label, undefined, true])
  }

  global.GOVUK = GOVUK
})(window)

Version data entries

28 entries across 28 versions & 2 rubygems

Version Path
govuk_frontend_toolkit-7.6.0 app/assets/javascripts/stageprompt.js
idsk_frontend_toolkit-8.4.4 app/assets/javascripts/stageprompt.js
idsk_frontend_toolkit-7.4.3 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-7.5.0 app/assets/javascripts/stageprompt.js
idsk_frontend_toolkit-7.4.2 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-7.4.2 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-7.4.1 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-7.4.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-7.3.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-7.2.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-7.1.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-7.0.1 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-7.0.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-6.0.4 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-6.0.3 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-6.0.2 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-6.0.1 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-6.0.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-5.2.0 app/assets/javascripts/stageprompt.js
govuk_frontend_toolkit-5.1.3 app/assets/javascripts/stageprompt.js