govuk_frontend_toolkit 4.6.1 → 4.7.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 +4 -4
- data/app/assets/CHANGELOG.md +4 -0
- data/app/assets/README.md +1 -0
- data/app/assets/VERSION.txt +1 -1
- data/app/assets/docs/analytics.md +9 -0
- data/app/assets/javascripts/govuk/analytics/mailto-link-tracker.js +33 -0
- data/app/assets/spec/manifest.js +4 -2
- data/app/assets/spec/unit/analytics/mailto-link-tracker.spec.js +54 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eaa5f7117e30f5312a36798eb20156bfe780d2a9
|
4
|
+
data.tar.gz: 1325ad166e0234a847bde510e26f8f0eb69fc774
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d46e13e3da38fe2c8a70d0ff7bf14a0c3e8b8933a8652a1165a0deb0b3fe8d20a0279f8f93afc31d6beec86e0fc06a998aff298d8109e52b0e96f2cb2c3e95cd
|
7
|
+
data.tar.gz: 1aaa3cd5fafc3450c5ac8f6425822e8faf7798168458fb0b6019ea0f034841afe9309f023ac02671ec89de7a06342509add753ec36110587d62ac237b93d0bad
|
data/app/assets/CHANGELOG.md
CHANGED
data/app/assets/README.md
CHANGED
@@ -144,6 +144,7 @@ In production:
|
|
144
144
|
* [Error tracking](/docs/analytics.md#error-tracking-error-trackingjs)
|
145
145
|
* [External link tracking](/docs/analytics.md#external-link-tracking-external-link-trackerjs)
|
146
146
|
* [Download link tracking](/docs/analytics.md#download-link-tracking-download-link-trackerjs)
|
147
|
+
* [Mailto link tracking](/docs/analytics.md#mailto-link-tracking-mailto-link-trackerjs)
|
147
148
|
|
148
149
|
## Licence
|
149
150
|
|
data/app/assets/VERSION.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.
|
1
|
+
4.7.0
|
@@ -202,3 +202,12 @@ GOVUK.analyticsPlugins.downloadTracker({selector: 'a[rel="download"]'});
|
|
202
202
|
Category | Action | Label
|
203
203
|
---------|--------|-------
|
204
204
|
Download Link Clicked | `/some/upload/attachment/file.pdf` | Link text
|
205
|
+
|
206
|
+
### Mailto link tracking (`mailto-link-tracker.js`)
|
207
|
+
|
208
|
+
The tracker will send events for clicks on links beginning with `mailto`. By default the
|
209
|
+
plugin uses Google Analytics’ `transport: beacon` method so that events are tracked even if the page unloads.
|
210
|
+
|
211
|
+
Category | Action | Label
|
212
|
+
---------|--------|-------
|
213
|
+
Mailto Link Clicked | mailto:name@email.com | Link text
|
@@ -0,0 +1,33 @@
|
|
1
|
+
(function() {
|
2
|
+
"use strict";
|
3
|
+
GOVUK.analyticsPlugins = GOVUK.analyticsPlugins || {};
|
4
|
+
GOVUK.analyticsPlugins.mailtoLinkTracker = function () {
|
5
|
+
|
6
|
+
var mailtoLinkSelector = 'a[href^="mailto:"]';
|
7
|
+
|
8
|
+
$('body').on('click', mailtoLinkSelector, trackClickEvent);
|
9
|
+
|
10
|
+
function trackClickEvent(evt) {
|
11
|
+
var $link = getLinkFromEvent(evt),
|
12
|
+
options = {transport: 'beacon'},
|
13
|
+
href = $link.attr('href'),
|
14
|
+
linkText = $.trim($link.text());
|
15
|
+
|
16
|
+
if (linkText) {
|
17
|
+
options.label = linkText;
|
18
|
+
}
|
19
|
+
|
20
|
+
GOVUK.analytics.trackEvent('Mailto Link Clicked', href, options);
|
21
|
+
}
|
22
|
+
|
23
|
+
function getLinkFromEvent(evt) {
|
24
|
+
var $target = $(evt.target);
|
25
|
+
|
26
|
+
if (!$target.is('a')) {
|
27
|
+
$target = $target.parents('a');
|
28
|
+
}
|
29
|
+
|
30
|
+
return $target;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}());
|
data/app/assets/spec/manifest.js
CHANGED
@@ -13,7 +13,8 @@ var manifest = {
|
|
13
13
|
'../../javascripts/govuk/analytics/analytics.js',
|
14
14
|
'../../javascripts/govuk/analytics/error-tracking.js',
|
15
15
|
'../../javascripts/govuk/analytics/external-link-tracker.js',
|
16
|
-
'../../javascripts/govuk/analytics/download-link-tracker.js'
|
16
|
+
'../../javascripts/govuk/analytics/download-link-tracker.js',
|
17
|
+
'../../javascripts/govuk/analytics/mailto-link-tracker.js'
|
17
18
|
],
|
18
19
|
test : [
|
19
20
|
'../unit/modules.spec.js',
|
@@ -26,6 +27,7 @@ var manifest = {
|
|
26
27
|
'../unit/analytics/analytics.spec.js',
|
27
28
|
'../unit/analytics/error-tracking.spec.js',
|
28
29
|
'../unit/analytics/external-link-tracker.spec.js',
|
29
|
-
'../unit/analytics/download-link-tracker.spec.js'
|
30
|
+
'../unit/analytics/download-link-tracker.spec.js',
|
31
|
+
'../unit/analytics/mailto-link-tracker.spec.js'
|
30
32
|
]
|
31
33
|
};
|
@@ -0,0 +1,54 @@
|
|
1
|
+
describe("GOVUK.analyticsPlugins.mailtoLinkTracker", function() {
|
2
|
+
var $links;
|
3
|
+
|
4
|
+
beforeEach(function() {
|
5
|
+
$links = $('\
|
6
|
+
<div class="mailto-links">\
|
7
|
+
<a href="mailto:name1@email.com"></a>\
|
8
|
+
<a href="mailto:name2@email.com">The link for a mailto</a>\
|
9
|
+
<a href="mailto:name3@email.com"><img src="/img" /></a>\
|
10
|
+
</div>');
|
11
|
+
|
12
|
+
$('html').on('click', function(evt) { evt.preventDefault(); });
|
13
|
+
$('body').append($links);
|
14
|
+
GOVUK.analytics = {trackEvent:function(){}};
|
15
|
+
|
16
|
+
GOVUK.analyticsPlugins.mailtoLinkTracker();
|
17
|
+
});
|
18
|
+
|
19
|
+
afterEach(function() {
|
20
|
+
$('html').off();
|
21
|
+
$('body').off();
|
22
|
+
$links.remove();
|
23
|
+
delete GOVUK.analytics;
|
24
|
+
});
|
25
|
+
|
26
|
+
it('listens to click events on mailto links', function() {
|
27
|
+
spyOn(GOVUK.analytics, 'trackEvent');
|
28
|
+
|
29
|
+
$('.mailto-links a').each(function() {
|
30
|
+
$(this).trigger('click');
|
31
|
+
expect(GOVUK.analytics.trackEvent).toHaveBeenCalled();
|
32
|
+
GOVUK.analytics.trackEvent.calls.reset();
|
33
|
+
});
|
34
|
+
});
|
35
|
+
|
36
|
+
it('tracks mailto addresses and link text', function() {
|
37
|
+
spyOn(GOVUK.analytics, 'trackEvent');
|
38
|
+
$('.mailto-links a').trigger('click');
|
39
|
+
|
40
|
+
expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
|
41
|
+
'Mailto Link Clicked', 'mailto:name1@email.com', {transport: 'beacon'});
|
42
|
+
|
43
|
+
expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
|
44
|
+
'Mailto Link Clicked', 'mailto:name2@email.com', {transport: 'beacon', label: 'The link for a mailto'});
|
45
|
+
});
|
46
|
+
|
47
|
+
it('listens to click events on elements within mailto links', function() {
|
48
|
+
spyOn(GOVUK.analytics, 'trackEvent');
|
49
|
+
|
50
|
+
$('.mailto-links a img').trigger('click');
|
51
|
+
expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
|
52
|
+
'Mailto Link Clicked', 'mailto:name3@email.com', {transport: 'beacon'});
|
53
|
+
});
|
54
|
+
});
|
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: 4.
|
4
|
+
version: 4.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bradley Wright
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -227,6 +227,7 @@ files:
|
|
227
227
|
- app/assets/javascripts/govuk/analytics/error-tracking.js
|
228
228
|
- app/assets/javascripts/govuk/analytics/external-link-tracker.js
|
229
229
|
- app/assets/javascripts/govuk/analytics/google-analytics-universal-tracker.js
|
230
|
+
- app/assets/javascripts/govuk/analytics/mailto-link-tracker.js
|
230
231
|
- app/assets/javascripts/govuk/analytics/print-intent.js
|
231
232
|
- app/assets/javascripts/govuk/modules.js
|
232
233
|
- app/assets/javascripts/govuk/modules/auto-track-event.js
|
@@ -251,6 +252,7 @@ files:
|
|
251
252
|
- app/assets/spec/unit/analytics/error-tracking.spec.js
|
252
253
|
- app/assets/spec/unit/analytics/external-link-tracker.spec.js
|
253
254
|
- app/assets/spec/unit/analytics/google-analytics-universal-tracker.spec.js
|
255
|
+
- app/assets/spec/unit/analytics/mailto-link-tracker.spec.js
|
254
256
|
- app/assets/spec/unit/modules.spec.js
|
255
257
|
- app/assets/spec/unit/modules/auto-track-event.spec.js
|
256
258
|
- app/assets/spec/unit/multivariate-test.spec.js
|