metadata_presenter 3.3.22 → 3.3.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 04f348f4f53e3272bc416e845f9970aa6851ac22b7d069fbd52f9309f63e820c
4
- data.tar.gz: a20ab803b0750532425e02d698adaf87c4b89f96aae65542777b46c3d240bb9e
3
+ metadata.gz: c820cccd9aed599a87d7f383a7464504fb73470e11ea2aa47c107d8660474833
4
+ data.tar.gz: d73786672c233b5ca1371c65d24844eae9c9f63cbe7e144ed59d3dad71575a48
5
5
  SHA512:
6
- metadata.gz: 802a3624e3953dc7bd7d2596fcc7d462e3e9ee950186e58b90c1d408fcc3a9ca308ba42b5bdded8172d4895462a67ceb0b83a674b85b5115a1316a98bd8c2a8c
7
- data.tar.gz: 07b914afe2a8a241add444452f19e5dec3bc46da8792c1d38f840d5e7084d1a8230d2c823066677f0608b44ffbe4610efd67e9548a20a9f93913b56cce946997
6
+ metadata.gz: 60cd34263a60622ede633dad425c2049b6df5d2dd1163674cc22eb82a68e6eaf07664bb435b93cb31af2c48aacfc3023a387fee84b170ca9b7d3a57d8bbee270
7
+ data.tar.gz: 4dd4eef3fe6c479c1e962bc41ca4f7db41a1e8959a19e9974319d30afa801b7e0e1352248d7184e131b44c4858cdd30a18cc02e443e0397345b14bb0c9296988
@@ -146,7 +146,7 @@ module MetadataPresenter
146
146
  end
147
147
 
148
148
  def sanitize_filename(answer)
149
- sanitize(filename(update_filename(answer)))
149
+ sanitize(filename(normalise_file_extension(answer)))
150
150
  end
151
151
 
152
152
  def filename(path)
@@ -165,15 +165,17 @@ module MetadataPresenter
165
165
  filename
166
166
  end
167
167
 
168
- def update_filename(answer)
169
- jfif_or_jpg_extension?(answer) ? "#{File.basename(answer, '.*')}.jpeg" : answer
170
- end
171
-
172
- def jfif_or_jpg_extension?(answer)
173
- return false if answer.nil?
168
+ def normalise_file_extension(answer)
169
+ return if answer.nil?
174
170
 
175
171
  file_extension = File.extname(answer)
176
- %w[.jfif .jpg].include?(file_extension)
172
+ file_basename = answer.delete_suffix(file_extension)
173
+
174
+ # Handle less common `image/jpeg` MIME type extensions
175
+ file_extension.downcase!
176
+ file_extension = '.jpeg' if %w[.jpg .jpe .jif .jfif].include?(file_extension)
177
+
178
+ [file_basename, file_extension].join
177
179
  end
178
180
 
179
181
  # NOTE: Address component is different to other components in the sense it can
@@ -1,54 +1,56 @@
1
- <% components.each_with_index do |component, index| %>
2
- <% if component.type == 'content' %>
3
- <% next unless (editable? || @page.show_conditional_component?(component.uuid) || single_page_preview?) %>
4
- <editable-content id="<%= component.id %>"
5
- class="fb-editable govuk-!-margin-top-8"
6
- type="<%= component.type %>"
7
- default-content="<%= default_text('content') %>"
8
- content="<%= component.content %>"
9
- data-fb-content-id="<%= "page[#{component.collection}[#{index}]]" %>"
10
- data-config="<%= component.to_json %>"
11
- data-conditional-api-path="<%= editable? ? URI.decode_www_form_component(api_service_edit_conditional_content_path(service.service_id, component.uuid)) : '' %>"
12
- data-controller="orderable-item component"
13
- data-orderable-item-order-value="<%= component.order || index %>"
14
- data-orderable-items-target="orderableItem"
15
- data-action="orderable-item:move->orderable-items#reorder
16
- orderable-item:move->component#focus
17
- orderable-item:orderUpdated->component#update
18
- questionRemove->component#destroy"
19
- data-orderable-item-moving-class="moving">
20
- <div class="html">
21
- <%= to_html(component.content) %>
22
- </div>
23
- </editable-content>
24
- <% else %>
25
- <div class="fb-editable govuk-!-margin-top-8"
26
- id="<%= component.id %>"
27
- data-fb-content-type="<%= component.type %>"
28
- data-fb-content-id="<%= "page[#{component.collection}[#{index}]]" %>"
29
- data-fb-content-data="<%= component.to_json %>"
30
- data-fb-default-value="<%= default_title(component.type) %>"
31
- data-fb-default-item-value="<%= default_item_title(component.type) %>"
32
- data-controller="orderable-item component"
33
- data-orderable-item-order-value="<%= component.order || index %>"
34
- data-orderable-items-target="orderableItem"
35
- data-action="orderable-item:move->orderable-items#reorder
36
- orderable-item:move->component#focus
37
- orderable-item:orderUpdated->component#update
38
- questionRemove->component#destroy"
39
- data-orderable-item-moving-class="moving">
1
+ <div class="components" data-controller="orderable-items">
2
+ <% components.each_with_index do |component, index| %>
3
+ <% if component.type == 'content' %>
4
+ <% next unless (editable? || @page.show_conditional_component?(component.uuid) || single_page_preview?) %>
5
+ <editable-content id="<%= component.id %>"
6
+ class="fb-editable govuk-!-margin-top-8"
7
+ type="<%= component.type %>"
8
+ default-content="<%= default_text('content') %>"
9
+ content="<%= component.content %>"
10
+ data-fb-content-id="<%= "page[#{component.collection}[#{index}]]" %>"
11
+ data-config="<%= component.to_json %>"
12
+ data-conditional-api-path="<%= editable? ? URI.decode_www_form_component(api_service_edit_conditional_content_path(service.service_id, component.uuid)) : '' %>"
13
+ data-controller="orderable-item component"
14
+ data-orderable-item-order-value="<%= component.order || index %>"
15
+ data-orderable-items-target="orderableItem"
16
+ data-action="orderable-item:move->orderable-items#reorder
17
+ orderable-item:move->component#focus
18
+ orderable-item:orderUpdated->component#update
19
+ questionRemove->component#destroy"
20
+ data-orderable-item-moving-class="moving">
21
+ <div class="html">
22
+ <%= to_html(component.content) %>
23
+ </div>
24
+ </editable-content>
25
+ <% else %>
26
+ <div class="fb-editable govuk-!-margin-top-8"
27
+ id="<%= component.id %>"
28
+ data-fb-content-type="<%= component.type %>"
29
+ data-fb-content-id="<%= "page[#{component.collection}[#{index}]]" %>"
30
+ data-fb-content-data="<%= component.to_json %>"
31
+ data-fb-default-value="<%= default_title(component.type) %>"
32
+ data-fb-default-item-value="<%= default_item_title(component.type) %>"
33
+ data-controller="orderable-item component"
34
+ data-orderable-item-order-value="<%= component.order || index %>"
35
+ data-orderable-items-target="orderableItem"
36
+ data-action="orderable-item:move->orderable-items#reorder
37
+ orderable-item:move->component#focus
38
+ orderable-item:orderUpdated->component#update
39
+ questionRemove->component#destroy"
40
+ data-orderable-item-moving-class="moving">
40
41
 
41
- <%= render partial: component, locals: {
42
- f: f,
43
- component: component,
44
- component_id: "page[#{component.collection}[#{index}]]",
45
- input_title: main_title(
42
+ <%= render partial: component, locals: {
43
+ f: f,
46
44
  component: component,
47
- tag: :h2,
48
- classes: classes
49
- )
50
- }
51
- %>
52
- </div>
45
+ component_id: "page[#{component.collection}[#{index}]]",
46
+ input_title: main_title(
47
+ component: component,
48
+ tag: :h2,
49
+ classes: classes
50
+ )
51
+ }
52
+ %>
53
+ </div>
54
+ <% end %>
53
55
  <% end %>
54
- <% end %>
56
+ </div>
@@ -8,13 +8,12 @@
8
8
  <%= render partial:'metadata_presenter/component/conditional_component_banner'%>
9
9
 
10
10
  <%= render 'metadata_presenter/attribute/section_heading' %>
11
- <%= render 'metadata_presenter/attribute/heading' %>
12
11
 
13
12
  <%= form_for @page_answers, as: :answers, url: @page.url, method: :post, authenticity_token: false do |f| %>
14
13
  <%= hidden_field_tag :authenticity_token, form_authenticity_token -%>
15
14
  <%= f.govuk_error_summary(t('presenter.errors.summary_heading')) %>
15
+ <%= render 'metadata_presenter/attribute/heading' %>
16
16
 
17
- <div class="components" data-controller="orderable-items">
18
17
  <%= render partial: 'metadata_presenter/component/components', locals: {
19
18
  f: f,
20
19
  components: @page.components,
@@ -24,7 +23,7 @@
24
23
  content_components: @page.supported_content_components
25
24
  }
26
25
  %>
27
- </div>
26
+
28
27
  <div class="govuk-button-group">
29
28
  <%= f.govuk_submit(t('presenter.actions.continue'), disabled: editable?) %>
30
29
 
@@ -7,7 +7,7 @@
7
7
  <div class="govuk-form-group">
8
8
  <%=
9
9
  f.govuk_email_field :email_confirmation,
10
- label: { size: 'l', text: t('presenter.save_and_return.confirm_email.heading') },
10
+ label: { tag: 'h1', size: 'l', text: t('presenter.save_and_return.confirm_email.heading') },
11
11
  name: "email_confirmation",
12
12
  spellcheck: "false",
13
13
  autocomplete: "email"
@@ -1,11 +1,12 @@
1
1
  <div class="fb-main-grid-wrapper">
2
2
  <div class="govuk-grid-row">
3
3
  <div class="govuk-grid-column-two-thirds">
4
- <h1 id="page-heading" class="govuk-heading-xl"><%= t('presenter.save_and_return.show.heading') %></h1>
5
- <p class="mojf-settings-screen__description"><%= t('presenter.save_and_return.show.description') %></p>
6
-
7
4
  <%= form_for @saved_form do |f| %>
8
5
  <%= f.govuk_error_summary(t('presenter.errors.summary_heading')) %>
6
+
7
+ <h1 id="page-heading" class="govuk-heading-xl"><%= t('presenter.save_and_return.show.heading') %></h1>
8
+ <p class="mojf-settings-screen__description"><%= t('presenter.save_and_return.show.description') %></p>
9
+
9
10
  <div class="govuk-form-group">
10
11
  <%= f.hidden_field(:page_slug, value: page_slug) %>
11
12
  <%=
@@ -1,3 +1,3 @@
1
1
  module MetadataPresenter
2
- VERSION = '3.3.22'.freeze
2
+ VERSION = '3.3.24'.freeze
3
3
  end
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: 3.3.22
4
+ version: 3.3.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - MoJ Forms
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-06 00:00:00.000000000 Z
11
+ date: 2024-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_design_system_formbuilder