govuk_frontend_toolkit 3.2.0 → 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ # 3.2.1
2
+
3
+ - Fix: Analytics - don't run error and print plugins on load
4
+
1
5
  # 3.2.0
2
6
 
3
7
  - Add: Analytics API https://github.com/alphagov/govuk_frontend_toolkit/pull/162 https://github.com/alphagov/govuk_frontend_toolkit/blob/master/docs/analytics.md
@@ -1 +1 @@
1
- 3.2.0
1
+ 3.2.1
@@ -45,6 +45,10 @@ The minimum you need to use the analytics function is:
45
45
  // Set custom dimensions before tracking pageviews
46
46
  // GOVUK.analytics.setDimension(…)
47
47
 
48
+ // Activate any event plugins eg. print intent, error tracking
49
+ // GOVUK.analyticsPlugins.error();
50
+ // GOVUK.analyticsPlugins.printIntent();
51
+
48
52
  // Track initial pageview
49
53
  GOVUK.analytics.trackPageview();
50
54
  })();
@@ -151,8 +155,8 @@ function setPixelDensityDimension(pixelDensity) {
151
155
 
152
156
  ## Print tracking
153
157
 
154
- Pull `print-intent.js` into your project, after analytics has been initialised, to track when users are attempting to print content.
158
+ Pull `print-intent.js` into your project, and initialise it after analytics (see [Create an analytics tracker, above](#create-an-analytics-tracker)), to track when users are attempting to print content.
155
159
 
156
160
  ## Error tracking
157
161
 
158
- Pull `error-tracking.js` into your project, after analytics has been initialised, to track JavaScript errors.
162
+ Pull `error-tracking.js` into your project, and initialise it after analytics (see [Create an analytics tracker, above](#create-an-analytics-tracker)), to track JavaScript errors.
@@ -2,21 +2,26 @@
2
2
  (function() {
3
3
 
4
4
  "use strict";
5
- var trackJavaScriptError = function (e) {
6
- var errorSource = e.filename + ': ' + e.lineno;
7
- GOVUK.analytics.trackEvent('JavaScript Error', e.message, {
8
- label: errorSource,
9
- value: 1,
10
- nonInteraction: true
11
- });
12
- };
13
5
 
14
- if (window.addEventListener) {
15
- window.addEventListener('error', trackJavaScriptError, false);
16
- } else if (window.attachEvent) {
17
- window.attachEvent('onerror', trackJavaScriptError);
18
- } else {
19
- window.onerror = trackJavaScriptError;
6
+ GOVUK.analyticsPlugins = GOVUK.analyticsPlugins || {};
7
+
8
+ GOVUK.analyticsPlugins.error = function () {
9
+ var trackJavaScriptError = function (e) {
10
+ var errorSource = e.filename + ': ' + e.lineno;
11
+ GOVUK.analytics.trackEvent('JavaScript Error', e.message, {
12
+ label: errorSource,
13
+ value: 1,
14
+ nonInteraction: true
15
+ });
16
+ };
17
+
18
+ if (window.addEventListener) {
19
+ window.addEventListener('error', trackJavaScriptError, false);
20
+ } else if (window.attachEvent) {
21
+ window.attachEvent('onerror', trackJavaScriptError);
22
+ } else {
23
+ window.onerror = trackJavaScriptError;
24
+ }
20
25
  }
21
26
 
22
27
  }());
@@ -1,31 +1,36 @@
1
1
  // Extension to monitor attempts to print pages.
2
2
  (function () {
3
-
4
3
  "use strict";
5
- var printAttempt = (function () {
6
- GOVUK.analytics.trackEvent('Print Intent', document.location.pathname);
7
- });
8
4
 
9
- // Most browsers
10
- if (window.matchMedia) {
11
- var mediaQueryList = window.matchMedia('print'),
12
- mqlListenerCount = 0;
13
- mediaQueryList.addListener(function (mql) {
14
- if (!mql.matches && mqlListenerCount === 0) {
15
- printAttempt();
16
- mqlListenerCount++;
17
- // If we try and print again in 3 seconds, don't log it
18
- window.setTimeout(function () {
19
- mqlListenerCount = 0;
20
- // printing will be tracked again now
21
- }, 1e3);
22
- }
5
+ GOVUK.analyticsPlugins = GOVUK.analyticsPlugins || {};
6
+
7
+ GOVUK.analyticsPlugins.printIntent = function () {
8
+ var printAttempt = (function () {
9
+ GOVUK.analytics.trackEvent('Print Intent', document.location.pathname);
23
10
  });
24
- }
25
11
 
26
- // IE < 10
27
- if (window.onafterprint) {
28
- window.onafterprint = printAttempt;
29
- }
12
+ // Most browsers
13
+ if (window.matchMedia) {
14
+ var mediaQueryList = window.matchMedia('print'),
15
+ mqlListenerCount = 0;
16
+ mediaQueryList.addListener(function (mql) {
17
+ if (!mql.matches && mqlListenerCount === 0) {
18
+ printAttempt();
19
+ mqlListenerCount++;
20
+ // If we try and print again in 3 seconds, don't log it
21
+ window.setTimeout(function () {
22
+ mqlListenerCount = 0;
23
+ // printing will be tracked again now
24
+ }, 1e3);
25
+ }
26
+ });
27
+ }
28
+
29
+ // IE < 10
30
+ if (window.onafterprint) {
31
+ window.onafterprint = printAttempt;
32
+ }
33
+
34
+ };
30
35
 
31
36
  }());
@@ -20,13 +20,17 @@
20
20
  box-shadow: $shadow;
21
21
  }
22
22
 
23
- @mixin scale($x, $y) {
23
+ @mixin scale($x, $y, $transform-origin: 50% 50% 0) {
24
24
  // $x and $y should be numeric values without units
25
25
  -webkit-transform: scale($x, $y); // Still in use now, started at: Chrome 4.0, Safari 3.1, Mobile Safari 3.2, Android 2.1
26
26
  -moz-transform: scale($x, $y); // Firefox 3.5 to 15.0
27
27
  -ms-transform: scale($x, $y); // IE9 only
28
- -o-transform: scale($x, $y); // Opera 10.5 to 12.0
29
28
  transform: scale($x, $y);
29
+
30
+ -webkit-transform-origin: $transform-origin; // Chrome, Safari 3.1
31
+ -moz-transform-origin: $transform-origin; // Firefox 10 to 15.0
32
+ -ms-transform-origin: $transform-origin; // IE9
33
+ transform-origin: $transform-origin;
30
34
  }
31
35
 
32
36
  @mixin translate($x, $y) {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_frontend_toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -288,7 +288,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
288
288
  version: '0'
289
289
  segments:
290
290
  - 0
291
- hash: -1949845834061421958
291
+ hash: 3608935864278764479
292
292
  required_rubygems_version: !ruby/object:Gem::Requirement
293
293
  none: false
294
294
  requirements:
@@ -297,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
297
297
  version: '0'
298
298
  segments:
299
299
  - 0
300
- hash: -1949845834061421958
300
+ hash: 3608935864278764479
301
301
  requirements: []
302
302
  rubyforge_project:
303
303
  rubygems_version: 1.8.23