Files
codeocean/app/helpers/pagedown_form_builder.rb
2021-05-14 22:03:06 +02:00

42 lines
979 B
Ruby

# frozen_string_literal: true
class PagedownFormBuilder < ActionView::Helpers::FormBuilder
def pagedown(method, args)
# Adopt simple form builder to work with form_for
@attribute_name = method
@input_html_options = args[:input_html]
@template.capture do
@template.concat wmd_button_bar
@template.concat wmd_textarea
@template.concat wmd_preview if show_wmd_preview?
end
end
private
def wmd_button_bar
@template.tag.div(nil, id: "wmd-button-bar-#{base_id}")
end
def wmd_textarea
@template.text_area @object_name, @attribute_name,
**@input_html_options,
class: 'form-control wmd-input',
id: "wmd-input-#{base_id}"
end
def wmd_preview
@template.tag.div(nil, class: 'wmd-preview',
id: "wmd-preview-#{base_id}")
end
def show_wmd_preview?
@input_html_options[:preview].present?
end
def base_id
options[:pagedown_id_suffix] || @attribute_name
end
end