govuk_frontend_toolkit 7.1.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: a06217abb14b1587a98e4ad17c9e10f07c426ce1
4
- data.tar.gz: 32af41483145c3e4206b919f2b51013ea1bbbe31
2
+ SHA256:
3
+ metadata.gz: 538b9de6aaf9bd4fa8ec41041f55e19fc38bc25716f2684efde95b3eb5a0e3b9
4
+ data.tar.gz: 48c37a0f38db00cef1d3472610d5890bc0f7c70938d8b84f9adb01e6ee633ee0
5
5
  SHA512:
6
- metadata.gz: 81823c3100252f3e39a31438f012def0602ae917b11e330978210b5ea433378b72c363d76c080bf54f99ca6a0ce6790ae83c01a11c38ad0588b333fea8abc5d0
7
- data.tar.gz: cc75f42603dcf4d59320f5e5de93c80ed9db62b304a725f9d7c82fecd03c2c8c172b59f73d4f84b90911c7732edb7d5dc49af7526f9b292ba3fee88643b4833b
6
+ metadata.gz: a4219bbd88e18c1bd0815f4bb89c38e01723ca3887c6ea1016673f69c3eded8818254053992659f0a0d5ad86825aedbeee190acb901c2a487b5cf9a78608a99a
7
+ data.tar.gz: 0d6bbce22e7e53064c9d01762f725958827bd68a2fec32c223aefb3d80d32c0fe596b4991e658be4f1861cb1a60e6351dedae60d3b075456719a5de622545d6e
@@ -6,8 +6,8 @@ branches:
6
6
  before_install:
7
7
  - openssl aes-256-cbc -K $encrypted_839034082a06_key -iv $encrypted_839034082a06_iv -in .travis/govuk_frontend_toolkit_gem_push.enc -out ~/.ssh/id_rsa -d
8
8
  - chmod 600 ~/.ssh/id_rsa
9
- - git config --global user.name "GOV.UK Patterns & Tools CI User"
10
- - git config --global user.email "patterns-and-tools-github-user@digital.cabinet-office.gov.uk"
9
+ - git config --global user.name "GOV.UK Design System CI"
10
+ - git config --global user.email "design-system-pipeline@digital.cabinet-office.gov.uk"
11
11
  - git remote add origin_ssh git@github.com:alphagov/govuk_frontend_toolkit_gem.git
12
12
  install:
13
13
  - echo "No dependencies to install"
@@ -20,4 +20,4 @@ and RubyGems.
20
20
 
21
21
  The [Travis settings](https://travis-ci.org/alphagov/govuk_frontend_toolkit/settings)
22
22
  contains a Travis token that belongs to
23
- [@govuk-patterns-and-tools-ci](https://github.com/govuk-patterns-and-tools-ci).
23
+ [@govuk-design-system-ci](https://github.com/govuk-design-system-ci).
@@ -1,3 +1,7 @@
1
+ # 7.2.0
2
+
3
+ - Add custom dimension on TrackEvent to duplicate the url information that we normally send on a the `event action`. This will be used to join up with a scheduled custom upload called "External Link Status". We can only join uploads on custom dimensions, not on `event actions`, where we normally add the url info. ([PR #436](alphagov/govuk_frontend_toolkit#436) and [PR #439](alphagov/govuk_frontend_toolkit#439))
4
+
1
5
  # 7.1.0
2
6
 
3
7
  - Promote the details polyfill to Frontend Toolkit from GOV.UK Elements ([PR #426](https://github.com/alphagov/govuk_frontend_toolkit/pull/426)).
@@ -1 +1 @@
1
- 7.1.0
1
+ 7.2.0
@@ -5,8 +5,8 @@ REPO_PATH="alphagov/govuk_frontend_toolkit"
5
5
 
6
6
  echo "Add config for alphagov/$REPO_PATH"
7
7
 
8
- git config --global user.name "GOV.UK Patterns & Tools CI User"
9
- git config --global user.email "patterns-and-tools-github-user@digital.cabinet-office.gov.uk"
8
+ git config --global user.name "GOV.UK Design System CI"
9
+ git config --global user.email "design-system-pipeline@digital.cabinet-office.gov.uk"
10
10
  git remote add origin_ssh git@github.com:$REPO_PATH.git
11
11
 
12
12
  # This openssl command was generated automatically by `travis encrypt-file`, see `.travis/README.md` for more details
@@ -5,7 +5,9 @@
5
5
  var GOVUK = global.GOVUK || {}
6
6
 
7
7
  GOVUK.analyticsPlugins = GOVUK.analyticsPlugins || {}
8
- GOVUK.analyticsPlugins.externalLinkTracker = function () {
8
+ GOVUK.analyticsPlugins.externalLinkTracker = function (options) {
9
+ options = options || {}
10
+ var externalLinkUploadCustomDimension = options.externalLinkUploadCustomDimension
9
11
  var currentHost = GOVUK.analyticsPlugins.externalLinkTracker.getHostname()
10
12
  var externalLinkSelector = 'a[href^="http"]:not(a[href*="' + currentHost + '"])'
11
13
 
@@ -21,6 +23,17 @@
21
23
  options.label = linkText
22
24
  }
23
25
 
26
+ if (externalLinkUploadCustomDimension !== undefined) {
27
+ // This custom dimension will be used to duplicate the url information
28
+ // that we normally send in an "event action". This will be used to join
29
+ // up with a scheduled custom upload called "External Link Status".
30
+ // We can only join uploads on custom dimensions, not on `event actions`
31
+ // where we normally add the url info.
32
+ var externalLinkToJoinUploadOn = href
33
+
34
+ GOVUK.analytics.setDimension(externalLinkUploadCustomDimension, externalLinkToJoinUploadOn)
35
+ }
36
+
24
37
  GOVUK.analytics.trackEvent('External Link Clicked', href, options)
25
38
  }
26
39
 
@@ -24,10 +24,12 @@ describe('GOVUK.analyticsPlugins.externalLinkTracker', function () {
24
24
 
25
25
  $('html').on('click', function (evt) { evt.preventDefault() })
26
26
  $('body').append($links)
27
- GOVUK.analytics = {trackEvent: function () {}}
27
+ GOVUK.analytics = {
28
+ trackEvent: function () {},
29
+ setDimension: function () {}
30
+ }
28
31
 
29
32
  spyOn(GOVUK.analyticsPlugins.externalLinkTracker, 'getHostname').and.returnValue('fake-hostname.com')
30
- GOVUK.analyticsPlugins.externalLinkTracker()
31
33
  })
32
34
 
33
35
  afterEach(function () {
@@ -38,6 +40,8 @@ describe('GOVUK.analyticsPlugins.externalLinkTracker', function () {
38
40
  })
39
41
 
40
42
  it('listens to click events on only external links', function () {
43
+ GOVUK.analyticsPlugins.externalLinkTracker({externalLinkUploadCustomDimension: 36})
44
+
41
45
  spyOn(GOVUK.analytics, 'trackEvent')
42
46
 
43
47
  $('.external-links a').each(function () {
@@ -54,6 +58,8 @@ describe('GOVUK.analyticsPlugins.externalLinkTracker', function () {
54
58
  })
55
59
 
56
60
  it('listens to click events on elements within external links', function () {
61
+ GOVUK.analyticsPlugins.externalLinkTracker({externalLinkUploadCustomDimension: 36})
62
+
57
63
  spyOn(GOVUK.analytics, 'trackEvent')
58
64
 
59
65
  $('.external-links a img').trigger('click')
@@ -62,6 +68,8 @@ describe('GOVUK.analyticsPlugins.externalLinkTracker', function () {
62
68
  })
63
69
 
64
70
  it('tracks an external link\'s href and link text', function () {
71
+ GOVUK.analyticsPlugins.externalLinkTracker({externalLinkUploadCustomDimension: 36})
72
+
65
73
  spyOn(GOVUK.analytics, 'trackEvent')
66
74
  $('.external-links a').trigger('click')
67
75
 
@@ -74,4 +82,28 @@ describe('GOVUK.analyticsPlugins.externalLinkTracker', function () {
74
82
  expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
75
83
  'External Link Clicked', 'https://www.nationalarchives.gov.uk/one.pdf', {transport: 'beacon', label: 'National Archives PDF'})
76
84
  })
85
+
86
+ it('duplicates the url info in a custom dimension to be used to join with a Google Analytics upload', function () {
87
+ GOVUK.analyticsPlugins.externalLinkTracker({externalLinkUploadCustomDimension: 36})
88
+
89
+ spyOn(GOVUK.analytics, 'setDimension')
90
+ spyOn(GOVUK.analytics, 'trackEvent')
91
+ $('.external-links a').trigger('click')
92
+
93
+ expect(GOVUK.analytics.setDimension).toHaveBeenCalledWith(36, 'http://www.nationalarchives.gov.uk')
94
+ expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
95
+ 'External Link Clicked', 'http://www.nationalarchives.gov.uk', {transport: 'beacon', label: 'National Archives'})
96
+ })
97
+
98
+ it('does not duplicate the url info if a custom dimension is not provided', function () {
99
+ GOVUK.analyticsPlugins.externalLinkTracker()
100
+
101
+ spyOn(GOVUK.analytics, 'setDimension')
102
+ spyOn(GOVUK.analytics, 'trackEvent')
103
+ $('.external-links a').trigger('click')
104
+
105
+ expect(GOVUK.analytics.setDimension).not.toHaveBeenCalled()
106
+ expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
107
+ 'External Link Clicked', 'http://www.nationalarchives.gov.uk', {transport: 'beacon', label: 'National Archives'})
108
+ })
77
109
  })
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_frontend_toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.0
4
+ version: 7.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Government Digital Service
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-03 00:00:00.000000000 Z
11
+ date: 2017-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -305,7 +305,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
305
305
  version: '0'
306
306
  requirements: []
307
307
  rubyforge_project:
308
- rubygems_version: 2.6.13
308
+ rubygems_version: 2.7.2
309
309
  signing_key:
310
310
  specification_version: 4
311
311
  summary: Tools for building frontend applications