56 lines
1.3 KiB
Ruby
56 lines
1.3 KiB
Ruby
![]() |
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab
|
||
|
module FormBuilders
|
||
|
class GitlabUiFormBuilder < ActionView::Helpers::FormBuilder
|
||
|
def gitlab_ui_checkbox_component(
|
||
|
method,
|
||
|
label,
|
||
|
help_text: nil,
|
||
|
checkbox_options: {},
|
||
|
checked_value: '1',
|
||
|
unchecked_value: '0',
|
||
|
label_options: {}
|
||
|
)
|
||
|
@template.content_tag(
|
||
|
:div,
|
||
|
class: 'gl-form-checkbox custom-control custom-checkbox'
|
||
|
) do
|
||
|
@template.check_box(
|
||
|
@object_name,
|
||
|
method,
|
||
|
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
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def format_options(options, classes)
|
||
|
classes << options[:class]
|
||
|
|
||
|
objectify_options(options.merge({ class: classes.flatten.compact }))
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|