govuk_frontend_toolkit 4.6.1 → 4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|