diff options
Diffstat (limited to 'lib/gitlab/form_builders/gitlab_ui_form_builder.rb')
-rw-r--r-- | lib/gitlab/form_builders/gitlab_ui_form_builder.rb | 60 |
1 files changed, 42 insertions, 18 deletions
diff --git a/lib/gitlab/form_builders/gitlab_ui_form_builder.rb b/lib/gitlab/form_builders/gitlab_ui_form_builder.rb index a5290508e42..3f9053d4e0c 100644 --- a/lib/gitlab/form_builders/gitlab_ui_form_builder.rb +++ b/lib/gitlab/form_builders/gitlab_ui_form_builder.rb @@ -22,29 +22,53 @@ module Gitlab format_options(checkbox_options, ['custom-control-input']), checked_value, unchecked_value - ) + - @template.label( - @object_name, method, format_options(label_options, ['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 + ) + generic_label(method, label, label_options, help_text: help_text) + end + end + + def gitlab_ui_radio_component( + method, + value, + label, + help_text: nil, + radio_options: {}, + label_options: {} + ) + @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 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] |