diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index feb2a7677..7e2e2d535 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -83,4 +83,9 @@ module ApplicationHelper version.object_changes.to_h.slice(*attrs).any? && css_class end end + + def legal_document_types + types = LegalDocument::TYPES.dup + ".#{types.join(',.')}" + end end diff --git a/app/helpers/default_form_builder.rb b/app/helpers/default_form_builder.rb new file mode 100644 index 000000000..735317198 --- /dev/null +++ b/app/helpers/default_form_builder.rb @@ -0,0 +1,6 @@ +class DefaultFormBuilder < ActionView::Helpers::FormBuilder + def legal_document_field(method, options = {}) + self.multipart = true + @template.legal_document_field(@object_name, method, objectify_options(options)) + end +end diff --git a/app/helpers/form_helper.rb b/app/helpers/form_helper.rb new file mode 100644 index 000000000..a3a139e09 --- /dev/null +++ b/app/helpers/form_helper.rb @@ -0,0 +1,8 @@ +module FormHelper + def legal_document_field(object_name, method, options = {}) + options[:data] = { legal_document: true } + options[:accept] = legal_document_types unless options[:accept] + + file_field(object_name, method, options) + end +end diff --git a/app/helpers/form_tag_helper.rb b/app/helpers/form_tag_helper.rb new file mode 100644 index 000000000..d19a59db5 --- /dev/null +++ b/app/helpers/form_tag_helper.rb @@ -0,0 +1,8 @@ +module FormTagHelper + def legal_document_field_tag(name, options = {}) + options[:data] = { legal_document: true } + options[:accept] = legal_document_types unless options[:accept] + + file_field_tag(name, options) + end +end diff --git a/config/application.rb b/config/application.rb index 109fa4d1b..e946f5d11 100644 --- a/config/application.rb +++ b/config/application.rb @@ -78,6 +78,8 @@ module Registry domain: ENV['smtp_domain'], openssl_verify_mode: ENV['smtp_openssl_verify_mode'] } + + config.action_view.default_form_builder = 'DefaultFormBuilder' end end