summaryrefslogtreecommitdiff
path: root/lib/gitlab/form_builders/gitlab_ui_form_builder.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/form_builders/gitlab_ui_form_builder.rb')
-rw-r--r--lib/gitlab/form_builders/gitlab_ui_form_builder.rb80
1 files changed, 27 insertions, 53 deletions
diff --git a/lib/gitlab/form_builders/gitlab_ui_form_builder.rb b/lib/gitlab/form_builders/gitlab_ui_form_builder.rb
index e8e87a864cc..9174ca165cd 100644
--- a/lib/gitlab/form_builders/gitlab_ui_form_builder.rb
+++ b/lib/gitlab/form_builders/gitlab_ui_form_builder.rb
@@ -5,76 +5,50 @@ module Gitlab
class GitlabUiFormBuilder < ActionView::Helpers::FormBuilder
def gitlab_ui_checkbox_component(
method,
- label,
+ label = nil,
help_text: nil,
checkbox_options: {},
checked_value: '1',
unchecked_value: '0',
- label_options: {}
+ label_options: {},
+ &block
)
- @template.content_tag(
- :div,
- class: 'gl-form-checkbox custom-control custom-checkbox'
- ) do
- value = checkbox_options[:multiple] ? checked_value : nil
-
- @template.check_box(
- @object_name,
- method,
- format_options(checkbox_options, ['custom-control-input']),
- checked_value,
- unchecked_value
- ) + generic_label(method, label, label_options, help_text: help_text, value: value)
- end
+ Pajamas::CheckboxComponent.new(
+ form: self,
+ method: method,
+ label: label,
+ help_text: help_text,
+ checkbox_options: format_options(checkbox_options),
+ checked_value: checked_value,
+ unchecked_value: unchecked_value,
+ label_options: format_options(label_options)
+ ).render_in(@template, &block)
end
def gitlab_ui_radio_component(
method,
value,
- label,
+ label = nil,
help_text: nil,
radio_options: {},
- label_options: {}
+ label_options: {},
+ &block
)
- @template.content_tag(
- :div,
- class: 'gl-form-radio custom-control custom-radio'
- ) do
- @template.radio_button(
- @object_name,
- method,
- value,
- format_options(radio_options, ['custom-control-input'])
- ) + generic_label(method, label, label_options, help_text: help_text, value: value)
- end
+ Pajamas::RadioComponent.new(
+ form: self,
+ method: method,
+ value: value,
+ label: label,
+ help_text: help_text,
+ radio_options: format_options(radio_options),
+ label_options: format_options(label_options)
+ ).render_in(@template, &block)
end
private
- def generic_label(method, label, label_options, help_text: nil, value: nil)
- @template.label(
- @object_name, method, format_options(label_options.merge({ value: value }), ['custom-control-label'])
- ) do
- if help_text
- @template.content_tag(
- :span,
- label
- ) +
- @template.content_tag(
- :p,
- help_text,
- class: 'help-text'
- )
- else
- label
- end
- end
- end
-
- def format_options(options, classes)
- classes << options[:class]
-
- objectify_options(options.merge({ class: classes.flatten.compact }))
+ def format_options(options)
+ objectify_options(options)
end
end
end