govuk_publishing_components 29.4.0 → 29.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/magna-charta.js +20 -6
  3. data/app/assets/stylesheets/component_guide/application.scss +1 -1
  4. data/app/assets/stylesheets/govuk_publishing_components/components/_checkboxes.scss +2 -2
  5. data/app/assets/stylesheets/govuk_publishing_components/components/_contextual-sidebar.scss +1 -1
  6. data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +2 -2
  7. data/app/assets/stylesheets/govuk_publishing_components/components/_modal-dialogue.scss +1 -1
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_organisation-logo.scss +2 -2
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_reorderable-list.scss +2 -2
  10. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +2 -2
  11. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +1 -1
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_summary-list.scss +1 -1
  13. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +1 -1
  14. data/app/assets/stylesheets/govuk_publishing_components/govuk_frontend_support.scss +3 -3
  15. data/app/controllers/govuk_publishing_components/audit_controller.rb +1 -4
  16. data/app/models/govuk_publishing_components/audit_components.rb +61 -24
  17. data/app/views/govuk_publishing_components/audit/_applications.html.erb +8 -3
  18. data/app/views/govuk_publishing_components/audit/_component_contents.html.erb +82 -0
  19. data/app/views/govuk_publishing_components/audit/_components.html.erb +2 -47
  20. data/app/views/govuk_publishing_components/components/_attachment.html.erb +1 -1
  21. data/app/views/govuk_publishing_components/components/_attachment_link.html.erb +1 -1
  22. data/config/locales/ar.yml +1 -0
  23. data/config/locales/az.yml +1 -0
  24. data/config/locales/be.yml +1 -0
  25. data/config/locales/bg.yml +1 -0
  26. data/config/locales/bn.yml +1 -0
  27. data/config/locales/cs.yml +1 -0
  28. data/config/locales/cy.yml +1 -0
  29. data/config/locales/da.yml +1 -0
  30. data/config/locales/de.yml +1 -0
  31. data/config/locales/dr.yml +1 -0
  32. data/config/locales/el.yml +1 -0
  33. data/config/locales/en.yml +54 -3
  34. data/config/locales/es-419.yml +1 -0
  35. data/config/locales/es.yml +1 -0
  36. data/config/locales/et.yml +1 -0
  37. data/config/locales/fa.yml +1 -0
  38. data/config/locales/fi.yml +1 -0
  39. data/config/locales/fr.yml +1 -0
  40. data/config/locales/gd.yml +1 -0
  41. data/config/locales/gu.yml +1 -0
  42. data/config/locales/he.yml +1 -0
  43. data/config/locales/hi.yml +1 -0
  44. data/config/locales/hr.yml +1 -0
  45. data/config/locales/hu.yml +1 -0
  46. data/config/locales/hy.yml +1 -0
  47. data/config/locales/id.yml +1 -0
  48. data/config/locales/is.yml +1 -0
  49. data/config/locales/it.yml +1 -0
  50. data/config/locales/ja.yml +1 -0
  51. data/config/locales/ka.yml +1 -0
  52. data/config/locales/kk.yml +1 -0
  53. data/config/locales/ko.yml +1 -0
  54. data/config/locales/lt.yml +1 -0
  55. data/config/locales/lv.yml +1 -0
  56. data/config/locales/ms.yml +1 -0
  57. data/config/locales/mt.yml +1 -0
  58. data/config/locales/nl.yml +1 -0
  59. data/config/locales/no.yml +1 -0
  60. data/config/locales/pa-pk.yml +1 -0
  61. data/config/locales/pa.yml +1 -0
  62. data/config/locales/pl.yml +1 -0
  63. data/config/locales/ps.yml +1 -0
  64. data/config/locales/pt.yml +1 -0
  65. data/config/locales/ro.yml +1 -0
  66. data/config/locales/ru.yml +1 -0
  67. data/config/locales/si.yml +1 -0
  68. data/config/locales/sk.yml +1 -0
  69. data/config/locales/sl.yml +1 -0
  70. data/config/locales/so.yml +1 -0
  71. data/config/locales/sq.yml +1 -0
  72. data/config/locales/sr.yml +1 -0
  73. data/config/locales/sv.yml +1 -0
  74. data/config/locales/sw.yml +1 -0
  75. data/config/locales/ta.yml +1 -0
  76. data/config/locales/th.yml +1 -0
  77. data/config/locales/tk.yml +1 -0
  78. data/config/locales/tr.yml +1 -0
  79. data/config/locales/uk.yml +1 -0
  80. data/config/locales/ur.yml +1 -0
  81. data/config/locales/uz.yml +1 -0
  82. data/config/locales/vi.yml +1 -0
  83. data/config/locales/zh-hk.yml +1 -0
  84. data/config/locales/zh-tw.yml +1 -0
  85. data/config/locales/zh.yml +1 -0
  86. data/lib/govuk_publishing_components/presenters/{attachment.rb → attachment_helper.rb} +6 -3
  87. data/lib/govuk_publishing_components/presenters/public_layout_helper.rb +18 -289
  88. data/lib/govuk_publishing_components/version.rb +1 -1
  89. data/lib/govuk_publishing_components.rb +1 -1
  90. metadata +5 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 831296f6233744d3d669b023b5f8243ee118f51ce7b1ba3b8c5f510346b87b9c
4
- data.tar.gz: 7d01de1a9e86110a92c486394cf5a1ee509ca3421037cac5b6281b5ecb209690
3
+ metadata.gz: b74221682d0047e390f314e968edf8acd3b89efebfe41d833239d9ca44413c86
4
+ data.tar.gz: 1f87c5a4288b2a69da1e32598422162bc5017f2dab4ac577b326b582cbd9e8e9
5
5
  SHA512:
6
- metadata.gz: a0cf8c3cebef33691aab437ff16219573f6d7b0132b266cc28178ae8a06c8e3034ed04275611876cccff7e63418ab38bf7564e17cb1ba98bc2fa877b8743f32c
7
- data.tar.gz: 86bb5adec0ebb031efc467ec4bc566f790a1e466fdd454edf4fdca1e94946db467d660d9413943146a720271f34ef97e35d0fda6801d0de01559b832111b73bb
6
+ metadata.gz: 14d60ae3e9876edbbcac836010f6dbfd1655c3be4798119f79ac064cb70cfef71a612694d7b31ae6475c31f9813ca9d7775fb1ab3b3153707643bd61190e057d
7
+ data.tar.gz: 4e69c991fd6db0d47136d6a7e489fd516e1aa9c62b1422ccf87ed35164e7f6641a60fd64392281f5c99b84c4b9caef8be78bbd73faa922b604d27c227ec7080f
@@ -51,6 +51,16 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
51
51
  // giving the table a class of mc-stacked
52
52
  this.options.stacked = this.$table.classList.contains('mc-stacked')
53
53
 
54
+ // stacked charts require tables to use the th element in the table header
55
+ // if the th element is not included, then the ENABLED flag is set to false
56
+ // this will stop the chart and toggleLink from being rendered
57
+ if (this.options.stacked) {
58
+ var allTheTHsInTableHead = this.$table.querySelectorAll('thead th')
59
+ if (allTheTHsInTableHead.length === 0) {
60
+ this.ENABLED = false
61
+ }
62
+ }
63
+
54
64
  // set the negative option based on
55
65
  // giving the table a class of mc-negative
56
66
  this.options.negative = this.$table.classList.contains('mc-negative')
@@ -106,12 +116,16 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
106
116
 
107
117
  MagnaCharta.prototype.apply = function () {
108
118
  if (this.ENABLED) {
109
- this.constructChart()
110
- this.addClassesToHeader()
111
- this.applyWidths()
112
- this.insert()
113
- this.$table.classList.add('mc-hidden')
114
- this.applyOutdent()
119
+ try {
120
+ this.constructChart()
121
+ this.addClassesToHeader()
122
+ this.applyWidths()
123
+ this.insert()
124
+ this.$table.classList.add('mc-hidden')
125
+ this.applyOutdent()
126
+ } catch (error) {
127
+ console.error('MagnaCharta error:', error)
128
+ }
115
129
  }
116
130
  }
117
131
 
@@ -139,7 +139,7 @@ $gem-guide-border-width: 1px;
139
139
  position: absolute;
140
140
  top: 0;
141
141
  left: 0;
142
- padding: .21053em .78947em;
142
+ padding: .2105em .7894em;
143
143
  background: $govuk-border-colour;
144
144
  color: govuk-colour("black");
145
145
  font-weight: bold;
@@ -1,7 +1,7 @@
1
1
  @import "govuk/components/checkboxes/checkboxes";
2
2
 
3
3
  .govuk-checkboxes--nested {
4
- margin-left: -(govuk-spacing(4) + 2px); //22px
4
+ margin-left: -(govuk-spacing(4) + 2px); // 22px
5
5
  box-sizing: border-box;
6
6
  border-left-style: solid;
7
7
  border-left-width: 4px;
@@ -17,7 +17,7 @@
17
17
 
18
18
  .govuk-checkboxes__conditional {
19
19
  margin-top: govuk-spacing(2);
20
- margin-left: -(govuk-spacing(4) + 2px); //22px
20
+ margin-left: -(govuk-spacing(4) + 2px); // 22px
21
21
  }
22
22
 
23
23
  .gem-c-checkboxes__list {
@@ -19,7 +19,7 @@
19
19
  .gem-c-contextual-sidebar__cta {
20
20
  border-top: 2px solid $govuk-brand-colour;
21
21
  margin-bottom: govuk-spacing(6);
22
- background-color: govuk-colour('light-grey', $legacy: 'grey-4');
22
+ background-color: govuk-colour("light-grey", $legacy: "grey-4");
23
23
  display: block;
24
24
  padding: 0 govuk-spacing(3) govuk-spacing(3);
25
25
  text-decoration: none;
@@ -9,7 +9,7 @@ $pseudo-underline-height: 3px;
9
9
  $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
10
10
 
11
11
  @mixin chevron($colour, $update: false) {
12
- @if ($update == true) {
12
+ @if $update == true {
13
13
  border-bottom-color: $colour;
14
14
  border-right-color: $colour;
15
15
  } @else {
@@ -816,7 +816,7 @@ $button-pipe-colour: darken(govuk-colour("mid-grey"), 20%);
816
816
 
817
817
  .gem-c-layout-super-navigation-header__navigation-second-items--topics {
818
818
  @include govuk-media-query($from: "desktop") {
819
- @include columns($items: 17, $columns: 2, $selector: "li", $flow: column);
819
+ @include columns($items: 16, $columns: 2, $selector: "li", $flow: column);
820
820
  }
821
821
  }
822
822
 
@@ -103,7 +103,7 @@ $govuk-modal-wide-breakpoint: $govuk-page-width + $govuk-modal-margin * 2 + $gov
103
103
  }
104
104
 
105
105
  .gem-c-modal-dialogue__logotype-crown {
106
- fill: currentColor;
106
+ fill: currentcolor;
107
107
  vertical-align: middle;
108
108
  }
109
109
 
@@ -55,13 +55,13 @@
55
55
  .gem-c-organisation-logo__name {
56
56
  position: relative;
57
57
  top: 3px;
58
- font-family: "HelveticaNeue", "Helvetica Neue", "Arial", "Helvetica", sans-serif;
58
+ font-family: HelveticaNeue, "Helvetica Neue", Arial, Helvetica, sans-serif;
59
59
  }
60
60
 
61
61
  .gem-c-organisation-logo__link {
62
62
  @include govuk-link-common;
63
63
  @include govuk-link-style-text;
64
- font-family: "HelveticaNeue", "Helvetica Neue", "Arial", "Helvetica", sans-serif;
64
+ font-family: HelveticaNeue, "Helvetica Neue", Arial, Helvetica, sans-serif;
65
65
 
66
66
  &:hover {
67
67
  color: $govuk-link-hover-colour;
@@ -19,12 +19,12 @@
19
19
  }
20
20
 
21
21
  .gem-c-reorderable-list__item--chosen {
22
- background-color: govuk-colour('light-grey');
22
+ background-color: govuk-colour("light-grey");
23
23
  outline: 2px dotted $govuk-border-colour;
24
24
  }
25
25
 
26
26
  .gem-c-reorderable-list__item--drag {
27
- background-color: govuk-colour('white');
27
+ background-color: govuk-colour("white");
28
28
  list-style-type: none;
29
29
 
30
30
  .gem-c-reorderable-list__actions {
@@ -76,7 +76,7 @@ $large-input-size: 50px;
76
76
  padding: govuk-em(6, 16);
77
77
  border: $govuk-border-width-form-element solid $govuk-input-border-colour;
78
78
  background: govuk-colour("white");
79
- border-radius: 0; //otherwise iphones apply an automatic border radius
79
+ border-radius: 0; // otherwise iphones apply an automatic border radius
80
80
  box-sizing: border-box;
81
81
  -webkit-appearance: none;
82
82
  -moz-appearance: none;
@@ -160,7 +160,7 @@ $large-input-size: 50px;
160
160
  background: govuk-colour("white");
161
161
  }
162
162
 
163
- //general class applied to search input and button wrapper
163
+ // general class applied to search input and button wrapper
164
164
  .gem-c-search__item {
165
165
  position: relative;
166
166
  display: table-cell;
@@ -3,7 +3,7 @@ $number-circle-size: 30px;
3
3
  $number-circle-size-large: 35px;
4
4
  $top-border: solid 1px govuk-colour("mid-grey", $legacy: "grey-3");
5
5
 
6
- @mixin step-nav-vertical-line ($line-style: solid) {
6
+ @mixin step-nav-vertical-line($line-style: solid) {
7
7
  content: "";
8
8
  position: absolute;
9
9
  z-index: 2;
@@ -40,7 +40,7 @@
40
40
  }
41
41
 
42
42
  .gem-c-summary-list--wide-title {
43
- @include govuk-media-query($from: 'tablet') {
43
+ @include govuk-media-query($from: "tablet") {
44
44
  .govuk-summary-list__key {
45
45
  width: 60%;
46
46
  }
@@ -101,7 +101,7 @@
101
101
  }
102
102
 
103
103
  .gem-c-govspeak--inverse {
104
- color: govuk-colour('white');
104
+ color: govuk-colour("white");
105
105
 
106
106
  a {
107
107
  @include govuk-link-common;
@@ -3,10 +3,10 @@
3
3
  @import "components/helpers/govuk-frontend-settings";
4
4
  @import "govuk/base";
5
5
 
6
- @import 'components/mixins/margins';
6
+ @import "components/mixins/margins";
7
7
  // TODO: remove this focus override when govuk_template is no longer used
8
- @import 'components/mixins/govuk-template-link-focus-override';
9
- @import 'components/mixins/css3';
8
+ @import "components/mixins/govuk-template-link-focus-override";
9
+ @import "components/mixins/css3";
10
10
 
11
11
  $gem-secondary-button-colour: #00823b;
12
12
  $gem-secondary-button-hover-colour: darken($gem-secondary-button-colour, 5%);
@@ -13,8 +13,6 @@ module GovukPublishingComponents
13
13
  frontend
14
14
  government-frontend
15
15
  govspeak-preview
16
- govuk-account-manager-prototype
17
- govuk-coronavirus-vulnerable-people-form
18
16
  info-frontend
19
17
  licence-finder
20
18
  manuals-frontend
@@ -32,10 +30,9 @@ module GovukPublishingComponents
32
30
  gem_path = Gem.loaded_specs["govuk_publishing_components"].full_gem_path
33
31
  gem_path = Dir.pwd if ENV["MAIN_COMPONENT_GUIDE"]
34
32
  host_dir = File.expand_path("..")
35
- path = File.expand_path("..", gem_path)
36
33
 
37
34
  @in_application = false
38
- @in_application = true unless path.to_s == host_dir.to_s
35
+ @in_application = true unless ENV["MAIN_COMPONENT_GUIDE"]
39
36
 
40
37
  components = AuditComponents.new(gem_path, false)
41
38
  applications = analyse_applications(host_dir, application_dirs)
@@ -12,29 +12,40 @@ module GovukPublishingComponents
12
12
  private
13
13
 
14
14
  def compile_data(path, simple)
15
+ # simple is used to reduce effort (and therefore page load time) required
16
+ # when loading auditing summary on the main component guide page
15
17
  @simple = simple
16
- templates_path = "app/views/govuk_publishing_components/components"
17
- stylesheets_path = "app/assets/stylesheets/govuk_publishing_components/components"
18
- print_stylesheets_path = "app/assets/stylesheets/govuk_publishing_components/components/print"
19
- javascripts_path = "app/assets/javascripts/govuk_publishing_components/components"
20
- tests_path = "spec/components"
21
- js_tests_path = "spec/javascripts/components"
22
-
23
- templates = Dir["#{path}/#{templates_path}/*.erb"]
24
- stylesheets = Dir["#{path}/#{stylesheets_path}/*.scss"]
25
- print_stylesheets = Dir["#{path}/#{print_stylesheets_path}/*.scss"]
26
- javascripts = Dir["#{path}/#{javascripts_path}/*.js"]
27
- tests = Dir["#{path}/#{tests_path}/*.rb"]
28
- js_tests = Dir["#{path}/#{js_tests_path}/*.js"]
29
-
30
- @templates_full_path = "#{path}/#{templates_path}/"
31
-
32
- @components = find_files(templates, [path, templates_path].join("/"))
33
- @component_stylesheets = find_files(stylesheets, [path, stylesheets_path].join("/"))
34
- @component_print_stylesheets = find_files(print_stylesheets, [path, print_stylesheets_path].join("/"))
35
- @component_javascripts = find_files(javascripts, [path, javascripts_path].join("/"))
36
- @component_tests = find_files(tests, [path, tests_path].join("/"))
37
- @component_js_tests = find_files(js_tests, [path, js_tests_path].join("/"))
18
+
19
+ # paths to key file locations
20
+ @templates_path = "app/views/govuk_publishing_components/components"
21
+ @stylesheets_path = "app/assets/stylesheets/govuk_publishing_components/components"
22
+ @print_stylesheets_path = "app/assets/stylesheets/govuk_publishing_components/components/print"
23
+ @javascripts_path = "app/assets/javascripts/govuk_publishing_components/components"
24
+ @tests_path = "spec/components"
25
+ @js_tests_path = "spec/javascripts/components"
26
+ @helpers_path = "lib/govuk_publishing_components/presenters"
27
+
28
+ # get all files in key file locations
29
+ templates = Dir["#{path}/#{@templates_path}/*.erb"]
30
+ stylesheets = Dir["#{path}/#{@stylesheets_path}/*.scss"]
31
+ print_stylesheets = Dir["#{path}/#{@print_stylesheets_path}/*.scss"]
32
+ javascripts = Dir["#{path}/#{@javascripts_path}/*.js"]
33
+ tests = Dir["#{path}/#{@tests_path}/*.rb"]
34
+ js_tests = Dir["#{path}/#{@js_tests_path}/*.js"]
35
+ helpers = Dir["#{path}/#{@helpers_path}/*_helper.rb"]
36
+
37
+ @templates_full_path = "#{path}/#{@templates_path}/"
38
+
39
+ # find the cleaned names of components in key file locations
40
+ # i.e. will show that 'component name' has a stylesheet
41
+ # standardised like this to be used later for easier comparison
42
+ @components = clean_files(templates, [path, @templates_path].join("/"))
43
+ @component_stylesheets = clean_files(stylesheets, [path, @stylesheets_path].join("/"))
44
+ @component_print_stylesheets = clean_files(print_stylesheets, [path, @print_stylesheets_path].join("/"))
45
+ @component_javascripts = clean_files(javascripts, [path, @javascripts_path].join("/"))
46
+ @component_tests = clean_files(tests, [path, @tests_path].join("/"))
47
+ @component_js_tests = clean_files(js_tests, [path, @js_tests_path].join("/"))
48
+ @component_helpers = clean_files(helpers, [path, @helpers_path].join("/"))
38
49
 
39
50
  {
40
51
  gem_found: true,
@@ -44,12 +55,13 @@ module GovukPublishingComponents
44
55
  component_javascripts: @component_javascripts,
45
56
  component_tests: @component_tests,
46
57
  component_js_tests: @component_js_tests,
58
+ component_helpers: @component_helpers,
47
59
  components_containing_components: find_all_partials_in(templates),
48
60
  component_listing: list_all_component_details,
49
61
  }
50
62
  end
51
63
 
52
- def find_files(files, replace)
64
+ def clean_files(files, replace)
53
65
  files.map { |file| clean_file_name(file.gsub(replace, "")) }.sort
54
66
  end
55
67
 
@@ -61,6 +73,7 @@ module GovukPublishingComponents
61
73
  .gsub(".js", "")
62
74
  .gsub("spec", "")
63
75
  .gsub(".rb", "")
76
+ .gsub("helper", "")
64
77
  .strip
65
78
  end
66
79
 
@@ -72,11 +85,14 @@ module GovukPublishingComponents
72
85
  .tr('\"\'', "")
73
86
  end
74
87
 
88
+ # create link to component guide page for a given component e.g. 'component name'
75
89
  def get_component_link(component)
76
90
  "/component-guide/#{component.gsub(' ', '_')}"
77
91
  end
78
92
 
79
93
  def find_all_partials_in(templates)
94
+ return [] if @simple
95
+
80
96
  components = []
81
97
 
82
98
  templates.each do |template|
@@ -142,6 +158,7 @@ module GovukPublishingComponents
142
158
  javascript: check_component_has("javascript", component),
143
159
  tests: check_component_has("test", component),
144
160
  js_tests: check_component_has("js_test", component),
161
+ helper: check_component_has("helper", component),
145
162
  }
146
163
  end
147
164
 
@@ -154,8 +171,28 @@ module GovukPublishingComponents
154
171
  look_in = @component_javascripts if a_thing == "javascript"
155
172
  look_in = @component_tests if a_thing == "test"
156
173
  look_in = @component_js_tests if a_thing == "js_test"
174
+ look_in = @component_helpers if a_thing == "helper"
175
+
176
+ if look_in.include?(component)
177
+ return get_asset_link(a_thing, component)
178
+ end
179
+
180
+ false
181
+ end
157
182
 
158
- true if look_in.include?(component)
183
+ def get_asset_link(a_thing, component)
184
+ url = "https://github.com/alphagov"
185
+ repo = "govuk_publishing_components"
186
+ blob = "blob/main"
187
+ link = nil
188
+ link = "#{url}/#{repo}/#{blob}/#{@stylesheets_path}/_#{component.gsub(' ', '-')}.scss" if a_thing == "stylesheet"
189
+ link = "#{url}/#{repo}/#{blob}/#{@print_stylesheets_path}/_#{component.gsub(' ', '-')}.scss" if a_thing == "print_stylesheet"
190
+ link = "#{url}/#{repo}/#{blob}/#{@javascripts_path}/#{component.gsub(' ', '-')}.js" if a_thing == "javascript"
191
+ link = "#{url}/#{repo}/#{blob}/#{@tests_path}/#{component.gsub(' ', '_')}_spec.rb" if a_thing == "test"
192
+ link = "#{url}/#{repo}/#{blob}/#{@js_tests_path}/#{component.gsub(' ', '-')}-spec.js" if a_thing == "js_test"
193
+ link = "#{url}/#{repo}/#{blob}/#{@helpers_path}/#{component.gsub(' ', '_')}_helper.rb" if a_thing == "helper"
194
+
195
+ link
159
196
  end
160
197
  end
161
198
  end
@@ -32,6 +32,7 @@
32
32
 
33
33
  <% accordion_content = capture do %>
34
34
  <% if application[:application_found] %>
35
+ <% github_link = 'https://github.com/alphagov/' + application[:name] + '/blob/main/' %>
35
36
  <% application[:warnings].each do |warning| %>
36
37
  <p class="govuk-body">
37
38
  <strong class="govuk-tag">Warn</strong>
@@ -74,7 +75,9 @@
74
75
  <p class="govuk-body">This shows instances of `gem-c-` classes found in the application. If a reference is found in a stylesheet or in code a warning is created, as this could be a style override or hard coded component markup.</p>
75
76
  <ul class="govuk-list govuk-list--bullet">
76
77
  <% application[:gem_style_references].each do |ref| %>
77
- <li><%= ref %></li>
78
+ <li>
79
+ <%= link_to ref, github_link + ref, class: 'govuk-link' %>
80
+ </li>
78
81
  <% end %>
79
82
  </ul>
80
83
  <% end %>
@@ -86,10 +89,12 @@
86
89
  margin_bottom: 4,
87
90
  heading_level: 3,
88
91
  } %>
89
- <p class="govuk-body">This shows JavaScript files that might contain jQuery, which we are trying to remove our dependency on.</p>
92
+ <p class="govuk-body">This shows JavaScript files that might contain jQuery, which we are trying to remove.</p>
90
93
  <ul class="govuk-list govuk-list--bullet">
91
94
  <% application[:jquery_references].each do |ref| %>
92
- <li><%= ref %></li>
95
+ <li>
96
+ <%= link_to ref, github_link + ref, class: 'govuk-link' %>
97
+ </li>
93
98
  <% end %>
94
99
  </ul>
95
100
  <% end %>
@@ -0,0 +1,82 @@
1
+ <%
2
+ total_components = components.length
3
+ components_with_stylesheet = 0
4
+ components_with_print_stylesheet = 0
5
+ components_with_javascript = 0
6
+ components_with_test = 0
7
+ components_with_javascript_test = 0
8
+ components_with_helper = 0
9
+
10
+ components.each do |component|
11
+ components_with_stylesheet += 1 if component[:stylesheet]
12
+ components_with_print_stylesheet += 1 if component[:print_stylesheet]
13
+ components_with_javascript += 1 if component[:javascript]
14
+ components_with_test += 1 if component[:tests]
15
+ components_with_javascript_test += 1 if component[:js_tests]
16
+ components_with_helper += 1 if component[:helper]
17
+ end
18
+ %>
19
+ <table class="govuk-table">
20
+ <thead class="govuk-table__head">
21
+ <tr class="govuk-table__row">
22
+ <th scope="col" class="govuk-table__header sticky-table-header">Component (<%= total_components %>)</th>
23
+ <th scope="col" class="govuk-table__header sticky-table-header">CSS (<%= components_with_stylesheet %>)</th>
24
+ <th scope="col" class="govuk-table__header sticky-table-header">Print CSS (<%= components_with_print_stylesheet %>)</th>
25
+ <th scope="col" class="govuk-table__header sticky-table-header">JS (<%= components_with_javascript %>)</th>
26
+ <th scope="col" class="govuk-table__header sticky-table-header">Test (<%= components_with_test %>)</th>
27
+ <th scope="col" class="govuk-table__header sticky-table-header">JS test (<%= components_with_javascript_test %>)</th>
28
+ <th scope="col" class="govuk-table__header sticky-table-header">Helper (<%= components_with_helper %>)</th>
29
+ </tr>
30
+ </thead>
31
+ <tbody class="govuk-table__body">
32
+ <% components.each do |component| %>
33
+ <tr class="govuk-table__row">
34
+ <th scope="row" class="govuk-table__header">
35
+ <a href="<%= component[:link] %>" class="govuk-link"><%= component[:name] %></a>
36
+ </th>
37
+ <td class="govuk-table__cell">
38
+ <% if component[:stylesheet] %>
39
+ <strong class="govuk-tag govuk-tag--green">
40
+ <a href="<%= component[:stylesheet] %>" class="govuk-link">Yes</a>
41
+ </strong>
42
+ <% end %>
43
+ </td>
44
+ <td class="govuk-table__cell">
45
+ <% if component[:print_stylesheet] %>
46
+ <strong class="govuk-tag govuk-tag--green">
47
+ <a href="<%= component[:print_stylesheet] %>" class="govuk-link">Yes</a>
48
+ </strong>
49
+ <% end %>
50
+ </td>
51
+ <td class="govuk-table__cell">
52
+ <% if component[:javascript] %>
53
+ <strong class="govuk-tag govuk-tag--green">
54
+ <a href="<%= component[:javascript] %>" class="govuk-link">Yes</a>
55
+ </strong>
56
+ <% end %>
57
+ </td>
58
+ <td class="govuk-table__cell">
59
+ <% if component[:tests] %>
60
+ <strong class="govuk-tag govuk-tag--green">
61
+ <a href="<%= component[:tests] %>" class="govuk-link">Yes</a>
62
+ </strong>
63
+ <% end %>
64
+ </td>
65
+ <td class="govuk-table__cell">
66
+ <% if component[:js_tests] %>
67
+ <strong class="govuk-tag govuk-tag--green">
68
+ <a href="<%= component[:js_tests] %>" class="govuk-link">Yes</a>
69
+ </strong>
70
+ <% end %>
71
+ </td>
72
+ <td class="govuk-table__cell">
73
+ <% if component[:helper] %>
74
+ <strong class="govuk-tag govuk-tag--green">
75
+ <a href="<%= component[:helper] %>" class="govuk-link">Yes</a>
76
+ </strong>
77
+ <% end %>
78
+ </td>
79
+ </tr>
80
+ <% end %>
81
+ </tbody>
82
+ </table>
@@ -1,6 +1,6 @@
1
1
  <% if @other_applications %>
2
2
  <%= render "govuk_publishing_components/components/heading", {
3
- text: "Components",
3
+ text: "Components in the gem",
4
4
  font_size: "l",
5
5
  margin_bottom: 6,
6
6
  } %>
@@ -10,52 +10,7 @@
10
10
  <% component_items = [] %>
11
11
 
12
12
  <% component_files = capture do %>
13
- <table class="govuk-table">
14
- <thead class="govuk-table__head">
15
- <tr class="govuk-table__row">
16
- <th scope="col" class="govuk-table__header sticky-table-header">Component</th>
17
- <th scope="col" class="govuk-table__header sticky-table-header">Stylesheet</th>
18
- <th scope="col" class="govuk-table__header sticky-table-header">Print stylesheet</th>
19
- <th scope="col" class="govuk-table__header sticky-table-header">JS</th>
20
- <th scope="col" class="govuk-table__header sticky-table-header">Test</th>
21
- <th scope="col" class="govuk-table__header sticky-table-header">JS test</th>
22
- </tr>
23
- </thead>
24
- <tbody class="govuk-table__body">
25
- <% @components[:component_listing].each do |component| %>
26
- <tr class="govuk-table__row">
27
- <th scope="row" class="govuk-table__header">
28
- <a href="<%= component[:link] %>" class="govuk-link"><%= component[:name] %></a>
29
- </th>
30
- <td class="govuk-table__cell">
31
- <% if component[:stylesheet] %>
32
- <strong class="govuk-tag govuk-tag--green">Yes</strong>
33
- <% end %>
34
- </td>
35
- <td class="govuk-table__cell">
36
- <% if component[:print_stylesheet] %>
37
- <strong class="govuk-tag govuk-tag--green">Yes</strong>
38
- <% end %>
39
- </td>
40
- <td class="govuk-table__cell">
41
- <% if component[:javascript] %>
42
- <strong class="govuk-tag govuk-tag--green">Yes</strong>
43
- <% end %>
44
- </td>
45
- <td class="govuk-table__cell">
46
- <% if component[:tests] %>
47
- <strong class="govuk-tag govuk-tag--green">Yes</strong>
48
- <% end %>
49
- </td>
50
- <td class="govuk-table__cell">
51
- <% if component[:js_tests] %>
52
- <strong class="govuk-tag govuk-tag--green">Yes</strong>
53
- <% end %>
54
- </td>
55
- </tr>
56
- <% end %>
57
- </tbody>
58
- </table>
13
+ <%= render partial: "component_contents", locals: { components: @components[:component_listing] } %>
59
14
  <% end %>
60
15
 
61
16
  <%
@@ -1,5 +1,5 @@
1
1
  <%
2
- attachment = GovukPublishingComponents::Presenters::Attachment.new(attachment)
2
+ attachment = GovukPublishingComponents::Presenters::AttachmentHelper.new(attachment)
3
3
  target ||= "_self"
4
4
  hide_opendocument_metadata ||= false
5
5
  hide_order_copy_link ||= false
@@ -1,5 +1,5 @@
1
1
  <%
2
- attachment = GovukPublishingComponents::Presenters::Attachment.new(attachment)
2
+ attachment = GovukPublishingComponents::Presenters::AttachmentHelper.new(attachment)
3
3
  target ||= nil
4
4
  data_attributes ||= {}
5
5
  attributes = []
@@ -87,6 +87,7 @@ ar:
87
87
  layout_footer:
88
88
  copyright_html: <a class="govuk-footer__link govuk-footer__copyright-logo" href="http://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/">© حقوق نشر التاج الملكي</a>
89
89
  licence_html: كل المحتوى متاح بموجب <a class="govuk-footer__link" href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" rel="license">الترخيص الحكومي المفتوح (الإصدار v3.0)</a>، ما لم ينص على خلاف ذلك
90
+ navigation_links:
90
91
  support_links: روابط الدعم
91
92
  layout_for_public:
92
93
  account_layout:
@@ -83,6 +83,7 @@ az:
83
83
  layout_footer:
84
84
  copyright_html: <a class="govuk-footer__link govuk-footer__copyright-logo" href="http://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/">© Crown copyright</a>
85
85
  licence_html: Bütün məzmunlar <a class="govuk-footer__link" href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" rel="license">v3.0 Açıq dövlət lisenziyasına əsasən mövcuddur</a>(başqa cür nəzərdə tutulmuş hallar istisna olmaqla)
86
+ navigation_links:
86
87
  support_links: Dəstək keçidləri
87
88
  layout_for_public:
88
89
  account_layout:
@@ -90,6 +90,7 @@ be:
90
90
  layout_footer:
91
91
  copyright_html: <a class="govuk-footer__link govuk-footer__copyright-logo" href="http://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/">© Crown copyright</a>
92
92
  licence_html: Увесь змест даступны <a class="govuk-footer__link" href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" rel="license">Open Government Licence v3.0</a>, калі не паказана іншае
93
+ navigation_links:
93
94
  support_links: Дапаможныя спасылкі
94
95
  layout_for_public:
95
96
  account_layout:
@@ -88,6 +88,7 @@ bg:
88
88
  layout_footer:
89
89
  copyright_html: <a class="govuk-footer__link govuk-footer__copyright-logo" href="http://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/">© Crown copyright</a>
90
90
  licence_html: Цялото съдържание е налично на <a class="govuk-footer__link" href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" rel="license">Open Government Licence v3.0</a>, освен ако не е посочено друго
91
+ navigation_links:
91
92
  support_links: Помощни линкове
92
93
  layout_for_public:
93
94
  account_layout:
@@ -85,6 +85,7 @@ bn:
85
85
  layout_footer:
86
86
  copyright_html: <a class="govuk-footer__link govuk-footer__copyright-logo" href="http://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/">© ক্রাউন কপিরাইট</a>
87
87
  licence_html: শুধুমাত্র অন্যভাবে বর্ণিত থাকা ছাড়া, সকল তথ্য <a class="govuk-footer__link" href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" rel="license">ওপেন গভর্নমেন্ট লাইসেন্স v3.0</a>-এর অধীনে উপলভ্য
88
+ navigation_links:
88
89
  support_links: সহায়তার লিংক
89
90
  layout_for_public:
90
91
  account_layout:
@@ -89,6 +89,7 @@ cs:
89
89
  layout_footer:
90
90
  copyright_html: <a class="govuk-footer__link govuk-footer__copyright-logo" href="http://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/">© Crown copyright</a>
91
91
  licence_html: Veškerý obsah je k dispozici pod <a class="govuk-footer__link" href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" rel="license">Open Government Licence v3.0</a>, pokud není uvedeno jinak
92
+ navigation_links:
92
93
  support_links: Odkazy na podporu
93
94
  layout_for_public:
94
95
  account_layout: