Class: Katalyst::GOVUK::FormBuilder::Elements::Attachment

Inherits:
GOVUKDesignSystemFormBuilder::Elements::File
  • Object
show all
Includes:
Traits::Attachment
Defined in:
app/helpers/katalyst/govuk/form_builder/elements/attachment.rb

Constant Summary

Constants included from Traits::Attachment

Traits::Attachment::BUNDLED_DEFAULTS, Traits::Attachment::I18N_SCOPE

Instance Method Summary collapse

Methods included from Traits::Attachment

#attachment, #attachment?, #attachment_actions_for, #attachment_caption_for, #attachment_for, #attachment_id_for, #attachment_input_for, #attachment_preview_for, #attachment_remove_for, #attachment_translation, #many?, #one?, #remove_button_content, #remove_button_label, #value

Constructor Details

#initialize(builder, object_name, attribute_name, direct_upload_url:, upload_succeeded_text: nil, upload_failed_text: nil, retry_button_text: nil, file_removed_text: nil, remove_button_text: nil, remove_button_content_text: nil) ⇒ Attachment

Returns a new instance of Attachment.

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/helpers/katalyst/govuk/form_builder/elements/attachment.rb', line 10

def initialize(builder, object_name, attribute_name, direct_upload_url:,
               upload_succeeded_text: nil, upload_failed_text: nil,
               retry_button_text: nil, file_removed_text: nil,
               remove_button_text: nil, remove_button_content_text: nil, **, &)
  super(builder, object_name, attribute_name, javascript: true, **, &)

  @direct_upload_url          = direct_upload_url
  @upload_succeeded_text      = upload_succeeded_text
  @upload_failed_text         = upload_failed_text
  @retry_button_text          = retry_button_text
  @file_removed_text          = file_removed_text
  @remove_button_text         = remove_button_text
  @remove_button_content_text = remove_button_content_text

  raise ArgumentError, "Unsupported attribute type #{value.class} for #{attribute_name}" unless attachment?
end

Instance Method Details

#optionsObject



27
28
29
30
31
32
33
# File 'app/helpers/katalyst/govuk/form_builder/elements/attachment.rb', line 27

def options
  super.merge(
    "data-direct-upload-url" => @direct_upload_url,
    include_hidden: false, # we always render remove_field
    multiple: many?,
  )
end