Module: GOVUKDesignSystemFormBuilder

Includes:
ActiveSupport::Configurable
Defined in:
lib/govuk_design_system_formbuilder.rb,
lib/govuk_design_system_formbuilder/base.rb,
lib/govuk_design_system_formbuilder/proxy.rb,
lib/govuk_design_system_formbuilder/builder.rb,
lib/govuk_design_system_formbuilder/version.rb,
lib/govuk_design_system_formbuilder/traits/hint.rb,
lib/govuk_design_system_formbuilder/traits/error.rb,
lib/govuk_design_system_formbuilder/traits/input.rb,
lib/govuk_design_system_formbuilder/traits/label.rb,
lib/govuk_design_system_formbuilder/elements/date.rb,
lib/govuk_design_system_formbuilder/elements/file.rb,
lib/govuk_design_system_formbuilder/elements/hint.rb,
lib/govuk_design_system_formbuilder/elements/null.rb,
lib/govuk_design_system_formbuilder/traits/select.rb,
lib/govuk_design_system_formbuilder/builder_helper.rb,
lib/govuk_design_system_formbuilder/elements/label.rb,
lib/govuk_design_system_formbuilder/traits/caption.rb,
lib/govuk_design_system_formbuilder/elements/legend.rb,
lib/govuk_design_system_formbuilder/elements/select.rb,
lib/govuk_design_system_formbuilder/elements/submit.rb,
lib/govuk_design_system_formbuilder/elements/caption.rb,
lib/govuk_design_system_formbuilder/containers/radios.rb,
lib/govuk_design_system_formbuilder/elements/password.rb,
lib/govuk_design_system_formbuilder/elements/text_area.rb,
lib/govuk_design_system_formbuilder/containers/fieldset.rb,
lib/govuk_design_system_formbuilder/elements/inputs/url.rb,
lib/govuk_design_system_formbuilder/traits/html_classes.rb,
lib/govuk_design_system_formbuilder/traits/localisation.rb,
lib/govuk_design_system_formbuilder/traits/supplemental.rb,
lib/govuk_design_system_formbuilder/elements/inputs/text.rb,
lib/govuk_design_system_formbuilder/traits/fieldset_item.rb,
lib/govuk_design_system_formbuilder/containers/form_group.rb,
lib/govuk_design_system_formbuilder/elements/inputs/email.rb,
lib/govuk_design_system_formbuilder/elements/inputs/phone.rb,
lib/govuk_design_system_formbuilder/containers/check_boxes.rb,
lib/govuk_design_system_formbuilder/elements/error_message.rb,
lib/govuk_design_system_formbuilder/elements/error_summary.rb,
lib/govuk_design_system_formbuilder/elements/inputs/number.rb,
lib/govuk_design_system_formbuilder/traits/collection_item.rb,
lib/govuk_design_system_formbuilder/traits/html_attributes.rb,
lib/govuk_design_system_formbuilder/containers/button_group.rb,
lib/govuk_design_system_formbuilder/containers/supplemental.rb,
lib/govuk_design_system_formbuilder/elements/check_boxes/label.rb,
lib/govuk_design_system_formbuilder/elements/collection_select.rb,
lib/govuk_design_system_formbuilder/elements/radios/collection.rb,
lib/govuk_design_system_formbuilder/refinements/prefixable_array.rb,
lib/govuk_design_system_formbuilder/containers/check_boxes_fieldset.rb,
lib/govuk_design_system_formbuilder/elements/check_boxes/collection.rb,
lib/govuk_design_system_formbuilder/containers/radio_buttons_fieldset.rb,
lib/govuk_design_system_formbuilder/elements/radios/fieldset_radio_button.rb,
lib/govuk_design_system_formbuilder/elements/check_boxes/fieldset_check_box.rb,
lib/govuk_design_system_formbuilder/elements/radios/collection_radio_button.rb,
lib/govuk_design_system_formbuilder/elements/check_boxes/collection_check_box.rb

Defined Under Namespace

Modules: Builder, BuilderHelper, Containers, Elements, PrefixableArray, Traits Classes: Base, FormBuilder, FormBuilderProxy, Proxy

Defaults collapse

DEFAULTS =

Default form builder configuration

  • :brand sets the value used to prefix all classes, used to allow the builder to be branded for alternative (similar) design systems.

  • :default_caption_size controls the default size of caption text. Can be either xl, l or m.

  • :default_legend_size controls the default size of legend text. Can be either xl, l, m or s.

  • :default_legend_tag controls the default tag that legends are wrapped in. Defaults to nil.

  • :default_submit_button_text sets the value assigned to govuk_submit, defaults to ‘Continue’.

  • :default_date_segments allows the date segments used by Rails’ multiparameter attributes to be configured. This is useful if you want to override the standard behaviour where Rails tries to cast the values into a Date. Defaults to { day: ‘3i’, month: ‘2i’, year: ‘1i’ }

  • :default_radio_divider_text sets the text automatically added to the radio button divider, defaults to ‘or’

  • :default_check_box_divider_text sets the text automatically added to the checkbox divider, defaults to ‘or’

  • :default_collection_check_boxes_include_hidden controls whether or not a hidden field is added when rendering a collection of check boxes

  • :default_collection_radio_buttons_include_hidden controls whether or not a hidden field is added when rendering a collection of radio buttons

  • :default_collection_radio_buttons_auto_bold_labels will automatically make labels on #govuk_collection_radio_buttons bold when a :hint_method is present. The default can be overridden using the bold_labels: argument. The default value is ‘true’.

  • :default_error_summary_title sets the text used in error summary blocks. As per the GOV.UK Design System spec, it defaults to ‘There is a problem’.

  • :default_error_summary_presenter the class that’s instantiated when rendering an error summary and formats the messages for each attribute

  • :default_error_summary_error_order_method is the method that the library will check for on the bound object to see whether or not to try ordering the error messages

  • :default_error_summary_turbo_prefix is used to disable turbo/turbolinks from handling clicks on links in the error summary. When it’s a string (eg, turbo), that will result in links with the attribute ‘data-turbo=false’. When nil, no data attribute will be added. Defaults to turbo since Rails 7, change to ‘turbolinks’ for Rails 6.1

  • :localisation_schema_fallback sets the prefix elements for the array used to build the localisation string. The final two elements are always are the object name and attribute name. The special value __context__, is used as a placeholder for the context (label, fieldset or hint).

  • :localisation_schema_legend, :localisation_schema_hint and :localisation_schema_label each override the schema root for their particular context, allowing them to be independently customised.

  • :enable_logger controls whether or not the library will emit log messages via Rails.logger.warn, defaults to true

  • :trust_error_messages call html_safe on error messages before they’re rendered. This allows formatting markup to be used to change the display of the error message. Defaults to false

  • :enable_nested_localisation scan the object name before building the localisation schema path to see if it’s nested or not. The old behaviour can be restored by setting this option to false. Defaults to true

{
  brand: 'govuk',

  default_legend_size: 'm',
  default_legend_tag: nil,
  default_caption_size: 'm',
  default_submit_button_text: 'Continue',
  default_date_segments: { day: '3i', month: '2i', year: '1i' },
  default_radio_divider_text: 'or',
  default_check_box_divider_text: 'or',
  default_error_summary_title: 'There is a problem',
  default_error_summary_presenter: Presenters::ErrorSummaryPresenter,
  default_error_summary_error_order_method: nil,
  default_error_summary_turbo_prefix: 'turbo',
  default_collection_check_boxes_include_hidden: true,
  default_collection_radio_buttons_include_hidden: true,
  default_collection_radio_buttons_auto_bold_labels: true,
  default_submit_validate: false,
  default_show_password_text: "Show",
  default_hide_password_text: "Hide",
  default_show_password_aria_label_text: "Show password",
  default_hide_password_aria_label_text: "Hide password",
  default_password_shown_announcement_text: "Your password is visible",
  default_password_hidden_announcement_text: "Your password is hidden",
  localisation_schema_fallback: %i(helpers __context__),
  localisation_schema_label: nil,
  localisation_schema_hint: nil,
  localisation_schema_legend: nil,
  localisation_schema_caption: nil,

  enable_logger: true,
  trust_error_messages: false,

  # temporarily allow the new nested localisation functionality to be
  # disabled
  enable_nested_localisation: true,
}.freeze

Constant Summary collapse

VERSION =
'5.4.1'.freeze

Defaults collapse

Class Method Details

.configure {|config| ... } ⇒ Object

Configure the form builder in the usual manner. All of the keys in DEFAULTS can be configured as per the example below

Examples:

GOVUKDesignSystemFormBuilder.configure do |conf|
  conf.default_legend_size = 'xl'
  conf.default_error_summary_title = 'OMG'
end

Yields:

  • (config)


139
140
141
# File 'lib/govuk_design_system_formbuilder.rb', line 139

def configure
  yield(config)
end

.reset!Object

Note:

This method is only really intended for use to clean up during testing

Resets each of the configurable values to its default



147
148
149
150
151
# File 'lib/govuk_design_system_formbuilder.rb', line 147

def reset!
  configure do |c|
    DEFAULTS.each { |k, v| c.send("#{k}=", v) }
  end
end