govuk_publishing_components 5.5.6 → 5.6.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/javascripts/govuk_publishing_components/all_components.js +1 -0
- data/app/assets/javascripts/govuk_publishing_components/application.js +0 -1
- data/app/assets/javascripts/govuk_publishing_components/components/feedback.js +7 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_document-list.scss +2 -10
- data/app/views/govuk_publishing_components/components/_contextual_breadcrumbs.html.erb +20 -0
- data/app/views/govuk_publishing_components/components/_contextual_sidebar.html.erb +19 -0
- data/app/views/govuk_publishing_components/components/docs/contextual_breadcrumbs.yml +25 -0
- data/app/views/govuk_publishing_components/components/docs/contextual_sidebar.yml +27 -0
- data/lib/govuk_publishing_components.rb +2 -0
- data/lib/govuk_publishing_components/presenters/contextual_navigation.rb +60 -0
- data/lib/govuk_publishing_components/presenters/navigation_type.rb +33 -0
- data/lib/govuk_publishing_components/presenters/related_navigation_helper.rb +2 -2
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a741268b6b87bdca3271b0988eef9a43ec7e9b01ad03b59a0bdcdc1611c72278
|
4
|
+
data.tar.gz: e5bd85deb2d496c428100b9e3711a78982e42b39d7aff181b5802e6b1e2a4cf7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17e7019b89f86cec1c4e3a80f89495e34ba94ae01350308d23f4795138d673f69112edc8b65668b2337696dcdf62d4cdf2499d0a1b95bc5e315e32a3c0c76812
|
7
|
+
data.tar.gz: cc2f4a5a5124f7e8ba80db9b995f0c14c673b3fcdb5222c08565087ccfafc5a23ed2a15203b5abf5d3cab97e28cd449c799475a1cfb56d2310db545fe0ccb367
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require_tree ./components
|
@@ -19,11 +19,13 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
19
19
|
this.$somethingIsWrongButton = $element.find('.js-something-is-wrong');
|
20
20
|
this.$promptQuestions = $element.find('.js-prompt-questions');
|
21
21
|
this.$promptSuccessMessage = $element.find('.js-prompt-success');
|
22
|
+
this.$somethingIsWrongForm = $element.find('#something-is-wrong');
|
22
23
|
|
23
24
|
var that = this;
|
24
25
|
var jshiddenClass = 'js-hidden';
|
25
26
|
|
26
27
|
setInitialAriaAttributes();
|
28
|
+
setHiddenValues();
|
27
29
|
|
28
30
|
this.$toggleForms.on('click', function(e) {
|
29
31
|
e.preventDefault();
|
@@ -83,6 +85,11 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
83
85
|
that.$somethingIsWrongButton.attr('aria-expanded', false);
|
84
86
|
}
|
85
87
|
|
88
|
+
function setHiddenValues () {
|
89
|
+
that.$somethingIsWrongForm.append('<input type="hidden" name="javascript_enabled" value="true"/>');
|
90
|
+
that.$somethingIsWrongForm.append($('<input type="hidden" name="referrer">').val(document.referrer || "unknown"));
|
91
|
+
}
|
92
|
+
|
86
93
|
function updateAriaAttributes (linkClicked) {
|
87
94
|
linkClicked.attr('aria-expanded', true);
|
88
95
|
$('#' + linkClicked.attr('aria-controls')).attr('aria-hidden', false);
|
@@ -22,18 +22,10 @@
|
|
22
22
|
}
|
23
23
|
|
24
24
|
.gem-c-document-list--bottom-margin {
|
25
|
-
margin-bottom: $gutter-
|
26
|
-
|
27
|
-
@include media(tablet) {
|
28
|
-
margin-bottom: $gutter * 1.5;
|
29
|
-
}
|
25
|
+
margin-bottom: $gutter-two-thirds;
|
30
26
|
}
|
31
27
|
|
32
28
|
.gem-c-document-list--top-margin {
|
33
|
-
margin-top: $gutter-
|
34
|
-
|
35
|
-
@include media(tablet) {
|
36
|
-
margin-top: $gutter * 1.5;
|
37
|
-
}
|
29
|
+
margin-top: $gutter-two-thirds;
|
38
30
|
}
|
39
31
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<% navigation = GovukPublishingComponents::Presenters::ContextualNavigation.new(content_item, request.path) %>
|
2
|
+
|
3
|
+
<% if navigation.step_nav_helper.show_header? %>
|
4
|
+
<!-- Rendering step by step nav -->
|
5
|
+
<%= render 'govuk_publishing_components/components/step_by_step_nav_header', navigation.step_nav_helper.header %>
|
6
|
+
<% else %>
|
7
|
+
<% if navigation.should_present_taxonomy_navigation? %>
|
8
|
+
<!-- Rendering taxonomy breadcrumbs -->
|
9
|
+
<% if navigation.taxon_breadcrumbs.any? %>
|
10
|
+
<%= render 'govuk_component/breadcrumbs',
|
11
|
+
breadcrumbs: navigation.taxon_breadcrumbs[:breadcrumbs],
|
12
|
+
collapse_on_mobile: true %>
|
13
|
+
<% end %>
|
14
|
+
<% else %>
|
15
|
+
<!-- Rendering normal breadcrumbs -->
|
16
|
+
<% if navigation.breadcrumbs.any? %>
|
17
|
+
<%= render 'govuk_component/breadcrumbs', breadcrumbs: navigation.breadcrumbs %>
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
20
|
+
<% end %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% navigation = GovukPublishingComponents::Presenters::ContextualNavigation.new(content_item, request.path) %>
|
2
|
+
|
3
|
+
<% if navigation.step_nav_helper.show_related_links? %>
|
4
|
+
<!-- rendering step by step related items -->
|
5
|
+
<%= render 'govuk_publishing_components/components/step_by_step_nav_related', links: navigation.step_nav_helper.related_links %>
|
6
|
+
|
7
|
+
<% if navigation.step_nav_helper.show_sidebar? %>
|
8
|
+
<!-- rendering step by step sidebar -->
|
9
|
+
<%= render 'govuk_publishing_components/components/step_by_step_nav', navigation.step_nav_helper.sidebar %>
|
10
|
+
<% end %>
|
11
|
+
<% else %>
|
12
|
+
<% if navigation.should_present_taxonomy_navigation? %>
|
13
|
+
<!-- rendering taxonomy sidebar -->
|
14
|
+
<%= render partial: 'govuk_component/taxonomy_sidebar', locals: navigation.taxonomy_sidebar %>
|
15
|
+
<% else %>
|
16
|
+
<!-- rendering related navigation sidebar -->
|
17
|
+
<%= render 'govuk_publishing_components/components/related_navigation', content_item %>
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
name: Contextual breadcrumbs
|
2
|
+
description: Breadcrumbs that shows different things depending on the page
|
3
|
+
body: |
|
4
|
+
This is a complex component that calls other components. For more accurate
|
5
|
+
preview with real data, see the [contextual navigation preview][preview].
|
6
|
+
|
7
|
+
There are 3 main variants of the component:
|
8
|
+
|
9
|
+
- Step by step, which uses the [step by step header][header]
|
10
|
+
- Parent breadcrumb, which uses the `parent` link of the page with the [breadcrumbs component][breadcrumbs]
|
11
|
+
- Taxon breadcrumb, which uses the `taxons` link of the page with the [breadcrumbs component][breadcrumbs]
|
12
|
+
|
13
|
+
It must always used [together with the contextual sidebar][sidebar].
|
14
|
+
|
15
|
+
[preview]: https://govuk-publishing-components.herokuapp.com/contextual-navigation
|
16
|
+
[header]: /component-guide/step_by_step_nav_header
|
17
|
+
[sidebar]: /component-guide/contextual_sidebar
|
18
|
+
[breadcrumbs]: https://govuk-static.herokuapp.com/component-guide/breadcrumbs
|
19
|
+
accessibility_criteria: |
|
20
|
+
Components called by this component must be accessible
|
21
|
+
examples:
|
22
|
+
default:
|
23
|
+
data:
|
24
|
+
content_item:
|
25
|
+
title: "A content item"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
name: Contextual sidebar
|
2
|
+
description: Sidebar that shows different things depending on the page
|
3
|
+
body: |
|
4
|
+
This is a complex component that calls other components. For more accurate
|
5
|
+
preview with real data, see the [contextual navigation preview][preview].
|
6
|
+
|
7
|
+
There are 4 main variants of the component:
|
8
|
+
|
9
|
+
- Step by step, which uses the [step by step nav][step-by-step]
|
10
|
+
- Taxonomy, which uses the new taxonomy in the [taxonomy-sidebar component][taxonomy-sidebar]
|
11
|
+
- Mainstream, which uses related links in the [related navigation component][related_navigation]
|
12
|
+
- Related navigation, which uses legacy taxonomies in the [related navigation component][related_navigation]
|
13
|
+
|
14
|
+
It must always used [together with the contextual breadcrumbs][contextual_breadcrumbs].
|
15
|
+
|
16
|
+
[preview]: https://govuk-publishing-components.herokuapp.com/contextual-navigation
|
17
|
+
[step-by-step]: /component-guide/step_by_step_nav
|
18
|
+
[related_navigation]: /component-guide/related_navigation
|
19
|
+
[taxonomy-sidebar]: https://govuk-static.herokuapp.com/component-guide/taxonomy_sidebar
|
20
|
+
[contextual_breadcrumbs]: /component-guide/contextual_breadcrumbs
|
21
|
+
accessibility_criteria: |
|
22
|
+
Components called by this component must be accessible
|
23
|
+
examples:
|
24
|
+
default:
|
25
|
+
data:
|
26
|
+
content_item:
|
27
|
+
title: "A content item"
|
@@ -2,6 +2,8 @@ require "govuk_publishing_components/config"
|
|
2
2
|
require "govuk_publishing_components/engine"
|
3
3
|
require "govuk_publishing_components/presenters/step_by_step_nav_helper"
|
4
4
|
require "govuk_publishing_components/presenters/related_navigation_helper"
|
5
|
+
require "govuk_publishing_components/presenters/contextual_navigation"
|
6
|
+
require "govuk_publishing_components/presenters/navigation_type"
|
5
7
|
|
6
8
|
require "govuk_publishing_components/app_helpers/step_nav"
|
7
9
|
require "govuk_publishing_components/app_helpers/step_nav_helper"
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'govuk_navigation_helpers'
|
2
|
+
|
3
|
+
module GovukPublishingComponents
|
4
|
+
module Presenters
|
5
|
+
# @private
|
6
|
+
class ContextualNavigation
|
7
|
+
attr_reader :content_item, :request_path
|
8
|
+
|
9
|
+
# @param content_item A content item hash with strings as keys
|
10
|
+
# @param request_path `request.path`
|
11
|
+
def initialize(content_item, request_path)
|
12
|
+
@content_item = content_item
|
13
|
+
@request_path = request_path
|
14
|
+
end
|
15
|
+
|
16
|
+
def taxonomy_sidebar
|
17
|
+
nav_helper.taxonomy_sidebar
|
18
|
+
end
|
19
|
+
|
20
|
+
def taxon_breadcrumbs
|
21
|
+
nav_helper.taxon_breadcrumbs
|
22
|
+
end
|
23
|
+
|
24
|
+
def breadcrumbs
|
25
|
+
if content_item["schema_name"] == "specialist_document"
|
26
|
+
parent_finder = content_item.dig("links", "finder", 0)
|
27
|
+
return [] unless parent_finder
|
28
|
+
|
29
|
+
[
|
30
|
+
{
|
31
|
+
title: "Home",
|
32
|
+
url: "/",
|
33
|
+
},
|
34
|
+
{
|
35
|
+
title: parent_finder['title'],
|
36
|
+
url: parent_finder['base_path'],
|
37
|
+
}
|
38
|
+
]
|
39
|
+
else
|
40
|
+
nav_helper.breadcrumbs[:breadcrumbs]
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def should_present_taxonomy_navigation?
|
45
|
+
navigation = GovukPublishingComponents::Presenters::NavigationType.new(content_item)
|
46
|
+
navigation.should_present_taxonomy_navigation?
|
47
|
+
end
|
48
|
+
|
49
|
+
def step_nav_helper
|
50
|
+
@step_nav_helper ||= GovukPublishingComponents::AppHelpers::StepNavHelper.new(content_item, request_path)
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def nav_helper
|
56
|
+
@nav_helper ||= GovukNavigationHelpers::NavigationHelper.new(content_item)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module GovukPublishingComponents
|
2
|
+
module Presenters
|
3
|
+
# @private
|
4
|
+
class NavigationType
|
5
|
+
GUIDANCE_SCHEMAS =
|
6
|
+
%w{answer contact guide detailed_guide document_collection publication}.freeze
|
7
|
+
|
8
|
+
def initialize(content_item)
|
9
|
+
@content_item = content_item
|
10
|
+
end
|
11
|
+
|
12
|
+
def should_present_taxonomy_navigation?
|
13
|
+
!content_is_tagged_to_browse_pages? &&
|
14
|
+
content_is_tagged_to_a_live_taxon? &&
|
15
|
+
content_schema_is_guidance?
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def content_is_tagged_to_a_live_taxon?
|
21
|
+
@content_item.dig("links", "taxons").to_a.any? { |taxon| taxon["phase"] == "live" }
|
22
|
+
end
|
23
|
+
|
24
|
+
def content_is_tagged_to_browse_pages?
|
25
|
+
@content_item.dig("links", "mainstream_browse_pages").present?
|
26
|
+
end
|
27
|
+
|
28
|
+
def content_schema_is_guidance?
|
29
|
+
GUIDANCE_SCHEMAS.include? @content_item["schema_name"]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -141,8 +141,8 @@ module GovukPublishingComponents
|
|
141
141
|
contacts = filter_link_type("related", "contact")
|
142
142
|
return [] unless contacts.any?
|
143
143
|
[
|
144
|
-
title
|
145
|
-
links
|
144
|
+
"title" => "Other contacts",
|
145
|
+
"links" => build_links_for_sidebar(contacts)
|
146
146
|
]
|
147
147
|
end
|
148
148
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_publishing_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: govuk_navigation_helpers
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 9.2.1
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 9.2.1
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: govuk-lint
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -289,6 +303,7 @@ files:
|
|
289
303
|
- app/assets/config/govuk_publishing_components_manifest.js
|
290
304
|
- app/assets/javascripts/current-location.js
|
291
305
|
- app/assets/javascripts/govuk_publishing_components/accessibility-test.js
|
306
|
+
- app/assets/javascripts/govuk_publishing_components/all_components.js
|
292
307
|
- app/assets/javascripts/govuk_publishing_components/application.js
|
293
308
|
- app/assets/javascripts/govuk_publishing_components/components/error-summary.js
|
294
309
|
- app/assets/javascripts/govuk_publishing_components/components/feedback.js
|
@@ -334,6 +349,8 @@ files:
|
|
334
349
|
- app/views/govuk_publishing_components/component_guide/preview.html.erb
|
335
350
|
- app/views/govuk_publishing_components/component_guide/show.html.erb
|
336
351
|
- app/views/govuk_publishing_components/components/_back_link.html.erb
|
352
|
+
- app/views/govuk_publishing_components/components/_contextual_breadcrumbs.html.erb
|
353
|
+
- app/views/govuk_publishing_components/components/_contextual_sidebar.html.erb
|
337
354
|
- app/views/govuk_publishing_components/components/_document_list.html.erb
|
338
355
|
- app/views/govuk_publishing_components/components/_error_summary.html.erb
|
339
356
|
- app/views/govuk_publishing_components/components/_feedback.html.erb
|
@@ -347,6 +364,8 @@ files:
|
|
347
364
|
- app/views/govuk_publishing_components/components/_step_by_step_nav_header.html.erb
|
348
365
|
- app/views/govuk_publishing_components/components/_step_by_step_nav_related.html.erb
|
349
366
|
- app/views/govuk_publishing_components/components/docs/back_link.yml
|
367
|
+
- app/views/govuk_publishing_components/components/docs/contextual_breadcrumbs.yml
|
368
|
+
- app/views/govuk_publishing_components/components/docs/contextual_sidebar.yml
|
350
369
|
- app/views/govuk_publishing_components/components/docs/document_list.yml
|
351
370
|
- app/views/govuk_publishing_components/components/docs/error_summary.yml
|
352
371
|
- app/views/govuk_publishing_components/components/docs/feedback.yml
|
@@ -375,6 +394,8 @@ files:
|
|
375
394
|
- lib/govuk_publishing_components/config.rb
|
376
395
|
- lib/govuk_publishing_components/engine.rb
|
377
396
|
- lib/govuk_publishing_components/minitest/component_guide_test.rb
|
397
|
+
- lib/govuk_publishing_components/presenters/contextual_navigation.rb
|
398
|
+
- lib/govuk_publishing_components/presenters/navigation_type.rb
|
378
399
|
- lib/govuk_publishing_components/presenters/related_navigation_helper.rb
|
379
400
|
- lib/govuk_publishing_components/presenters/step_by_step_nav_helper.rb
|
380
401
|
- lib/govuk_publishing_components/version.rb
|