metadata_presenter 2.16.12 → 2.16.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/metadata_presenter/engine_controller.rb +25 -0
- data/app/views/layouts/metadata_presenter/application.html.erb +9 -1
- data/app/views/metadata_presenter/analytics/_cookie_banner.html.erb +63 -0
- data/app/views/metadata_presenter/analytics/_ga4.html.erb +10 -0
- data/app/views/metadata_presenter/analytics/_google.html.erb +5 -0
- data/app/views/metadata_presenter/analytics/_gtm.html.erb +7 -0
- data/app/views/metadata_presenter/analytics/_ua.html.erb +11 -0
- data/app/views/metadata_presenter/analytics/analytics.html.erb +3 -0
- data/config/initializers/supported_analytics.rb +1 -0
- data/config/locales/en.yml +12 -0
- data/lib/metadata_presenter/version.rb +1 -1
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f654eb8910e6b544c20c7b4966c923dfaa60fe94bf2afb0602ba6522b22c897b
|
4
|
+
data.tar.gz: fdaf6374f850ecd62c1b41fb2c985d98e5fd422943012e437344086a7fd9ad07
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd349181c6279c3f338b6004a8730d4b6f9f5624be90d99712875e16c799827936837c66b24d99738440588b26ee8ab67213bf18cabfb35e788da8e7734f49d7
|
7
|
+
data.tar.gz: ae76a89d85d486dfea4f4154e5bfd3da23455501eec8ac6c9b8ec28a015fa87253e5d093afcdec60e9e0928cdeff4b43072376f8f2c3ba0d1bb572168d7ef223
|
@@ -35,6 +35,21 @@ module MetadataPresenter
|
|
35
35
|
end
|
36
36
|
helper_method :answered?
|
37
37
|
|
38
|
+
def analytics_cookie_name
|
39
|
+
@analytics_cookie_name ||= "analytics-#{service.service_name.parameterize}"
|
40
|
+
end
|
41
|
+
helper_method :analytics_cookie_name
|
42
|
+
|
43
|
+
def allow_analytics?
|
44
|
+
no_analytics_cookie? || cookies[analytics_cookie_name] == 'accepted'
|
45
|
+
end
|
46
|
+
helper_method :allow_analytics?
|
47
|
+
|
48
|
+
def show_cookie_banner?
|
49
|
+
no_analytics_cookie? && analytics_tags_present?
|
50
|
+
end
|
51
|
+
helper_method :show_cookie_banner?
|
52
|
+
|
38
53
|
private
|
39
54
|
|
40
55
|
def not_found
|
@@ -44,5 +59,15 @@ module MetadataPresenter
|
|
44
59
|
def redirect_to_page(url)
|
45
60
|
redirect_to File.join(request.script_name, url)
|
46
61
|
end
|
62
|
+
|
63
|
+
def analytics_tags_present?
|
64
|
+
Rails.application.config.supported_analytics.values.flatten.any? do |analytic|
|
65
|
+
ENV[analytic].present?
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def no_analytics_cookie?
|
70
|
+
cookies[analytics_cookie_name].blank?
|
71
|
+
end
|
47
72
|
end
|
48
73
|
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<title><%= service.service_name %></title>
|
5
5
|
<%= csrf_meta_tags %>
|
6
6
|
<%= csp_meta_tag %>
|
7
|
-
|
7
|
+
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
9
9
|
<link rel="shortcut icon" sizes="16x16 32x32 48x48" href="<%= asset_pack_url('media/images/favicon.ico') %>" type="image/x-icon" />
|
10
10
|
<link rel="mask-icon" href="<%= asset_pack_url('media/images/govuk-mask-icon.svg') %>" color="blue">
|
@@ -15,9 +15,17 @@
|
|
15
15
|
|
16
16
|
<%= stylesheet_pack_tag 'govuk' %>
|
17
17
|
<%= stylesheet_link_tag 'application', media: 'all' %>
|
18
|
+
|
19
|
+
<% if allow_analytics? %>
|
20
|
+
<%= render template: 'metadata_presenter/analytics/analytics' %>
|
21
|
+
<% end %>
|
18
22
|
</head>
|
19
23
|
|
20
24
|
<body class="govuk-template__body">
|
25
|
+
<% if show_cookie_banner? %>
|
26
|
+
<%= render partial: 'metadata_presenter/analytics/cookie_banner' %>
|
27
|
+
<% end %>
|
28
|
+
|
21
29
|
<%= render template: 'metadata_presenter/header/show' %>
|
22
30
|
<div class="govuk-width-container govuk-body-m">
|
23
31
|
<main class="govuk-main-wrapper govuk-main-wrapper--auto-spacing" id="main-content" role="main">
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<div class="govuk-cookie-banner" id="govuk-cookie-banner" data-nosnippet role="region" aria-label="<%= t('analytics.heading', service_name: service.service_name) %>">
|
2
|
+
<div class="govuk-cookie-banner__message govuk-width-container" id="govuk-cookie-banner-message">
|
3
|
+
|
4
|
+
<div class="govuk-grid-row">
|
5
|
+
<div class="govuk-grid-column-two-thirds">
|
6
|
+
<h2 class="govuk-cookie-banner__heading govuk-heading-m">
|
7
|
+
<%= t('analytics.heading', service_name: service.service_name) %>
|
8
|
+
</h2>
|
9
|
+
|
10
|
+
<div class="govuk-cookie-banner__content">
|
11
|
+
<p class="govuk-body"><%= t('analytics.body_1') %></p>
|
12
|
+
<p class="govuk-body"><%= t('analytics.body_2') %></p>
|
13
|
+
</div>
|
14
|
+
</div>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="govuk-button-group">
|
18
|
+
<button type="button" class="govuk-button" data-module="govuk-button" onclick='analytics.accept("<%= analytics_cookie_name %>")'>
|
19
|
+
<%= t('analytics.accept') %>
|
20
|
+
</button>
|
21
|
+
<button type="button" class="govuk-button" data-module="govuk-button" onclick='analytics.reject("<%= analytics_cookie_name %>")'>
|
22
|
+
<%= t('analytics.reject') %>
|
23
|
+
</button>
|
24
|
+
<a class="govuk-link" href="/cookies"><%= t('analytics.view_cookies') %></a>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="govuk-cookie-banner__message govuk-width-container" id="govuk-cookie-banner-message-accepted" role="alert" style="display: none;">
|
29
|
+
<div class="govuk-grid-row">
|
30
|
+
<div class="govuk-grid-column-two-thirds">
|
31
|
+
<div class="govuk-cookie-banner__content">
|
32
|
+
<p class="govuk-body">
|
33
|
+
<%= t('analytics.confirmation', action: t('analytics.accepted')) %>
|
34
|
+
</p>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<div class="govuk-button-group">
|
40
|
+
<button class="govuk-button" data-module="govuk-button" onclick="analytics.hideCookieBanner()">
|
41
|
+
<%= t('analytics.hide') %>
|
42
|
+
</button>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div class="govuk-cookie-banner__message govuk-width-container" id="govuk-cookie-banner-message-rejected" role="alert" style="display: none;">
|
47
|
+
<div class="govuk-grid-row">
|
48
|
+
<div class="govuk-grid-column-two-thirds">
|
49
|
+
<div class="govuk-cookie-banner__content">
|
50
|
+
<p class="govuk-body">
|
51
|
+
<%= t('analytics.confirmation', action: t('analytics.rejected')) %>
|
52
|
+
</p>
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
<div class="govuk-button-group">
|
58
|
+
<button class="govuk-button" data-module="govuk-button" onclick="analytics.hideCookieBanner()">
|
59
|
+
<%= t('analytics.hide') %>
|
60
|
+
</button>
|
61
|
+
</div>
|
62
|
+
</div>
|
63
|
+
</div>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<!-- Global site tag (gtag.js) - Google Analytics -->
|
2
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id=<%= analytic_tag %>"></script>
|
3
|
+
<script>
|
4
|
+
window.dataLayer = window.dataLayer || [];
|
5
|
+
function gtag(){dataLayer.push(arguments);}
|
6
|
+
gtag('js', new Date());
|
7
|
+
|
8
|
+
gtag('config', <%= analytic_tag %>);
|
9
|
+
</script>
|
10
|
+
<!-- End Global site tag (gtag.js) - Google Analytics -->
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<!-- Google Tag Manager -->
|
2
|
+
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
3
|
+
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
4
|
+
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
5
|
+
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
6
|
+
})(window,document,'script','dataLayer',<%= analytic_tag %>);</script>
|
7
|
+
<!-- End Google Tag Manager -->
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<!-- Google Universal Analytics -->
|
2
|
+
<script>
|
3
|
+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
4
|
+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
5
|
+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
6
|
+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
7
|
+
|
8
|
+
ga('create', <%= analytic_tag %>, 'auto');
|
9
|
+
ga('send', 'pageview');
|
10
|
+
</script>
|
11
|
+
<!-- End Google Universal Analytics -->
|
@@ -0,0 +1 @@
|
|
1
|
+
Rails.application.config.supported_analytics = { google: %w[UA GTM GA4] }
|
@@ -0,0 +1,12 @@
|
|
1
|
+
en:
|
2
|
+
analytics:
|
3
|
+
heading: Cookies on %{service_name}
|
4
|
+
body_1: We use some essential cookies to make this service work.
|
5
|
+
body_2: We'd also like to use analytics cookies so we can understand how you use the service and make improvements.
|
6
|
+
accept: Accept analytics cookies
|
7
|
+
reject: Reject analytics cookies
|
8
|
+
view_cookies: View cookies
|
9
|
+
accepted: accepted
|
10
|
+
rejected: rejected
|
11
|
+
confirmation: You've %{action} analytics cookies.
|
12
|
+
hide: Hide this message
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metadata_presenter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.16.
|
4
|
+
version: 2.16.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MoJ Forms
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: govuk_design_system_formbuilder
|
@@ -333,6 +333,12 @@ files:
|
|
333
333
|
- app/validators/metadata_presenter/word_count.rb
|
334
334
|
- app/views/errors/404.html
|
335
335
|
- app/views/layouts/metadata_presenter/application.html.erb
|
336
|
+
- app/views/metadata_presenter/analytics/_cookie_banner.html.erb
|
337
|
+
- app/views/metadata_presenter/analytics/_ga4.html.erb
|
338
|
+
- app/views/metadata_presenter/analytics/_google.html.erb
|
339
|
+
- app/views/metadata_presenter/analytics/_gtm.html.erb
|
340
|
+
- app/views/metadata_presenter/analytics/_ua.html.erb
|
341
|
+
- app/views/metadata_presenter/analytics/analytics.html.erb
|
336
342
|
- app/views/metadata_presenter/attribute/_body.html.erb
|
337
343
|
- app/views/metadata_presenter/attribute/_heading.html.erb
|
338
344
|
- app/views/metadata_presenter/attribute/_lede.html.erb
|
@@ -363,7 +369,9 @@ files:
|
|
363
369
|
- config/initializers/default_text.rb
|
364
370
|
- config/initializers/inflections.rb
|
365
371
|
- config/initializers/schemas.rb
|
372
|
+
- config/initializers/supported_analytics.rb
|
366
373
|
- config/initializers/supported_components.rb
|
374
|
+
- config/locales/en.yml
|
367
375
|
- config/routes.rb
|
368
376
|
- default_metadata/component/autocomplete.json
|
369
377
|
- default_metadata/component/checkboxes.json
|