Module: ActionMosaico::TagHelper

Defined in:
app/helpers/action_mosaico/tag_helper.rb

Instance Method Summary collapse

Instance Method Details

#rich_text_mosaico_tag(name, value = nil, options = {}) ⇒ Object

Returns a mosaico-editor tag that instantiates the mosaico JavaScript editor as well as a hidden field that mosaico will write to on changes, so the content will be sent on form submissions.

Options

  • :class - Defaults to “mosaico-content” so that default styles will be applied. Setting this to a different value will prevent default styles from being applied.

  • [:data][:direct_upload_url] - Defaults to rails_direct_uploads_url.

  • [:data][:blob_url_template] - Defaults to rails_service_blob_url(":signed_id", ":filename").

Example

rich_text_mosaico_tag "content", message.content
# <input type="hidden" name="content" id="mosaico_input_post_1">
# <mosaico-editor id="content" input="mosaico_input_post_1" class="mosaico-content" ...></mosaico-editor>


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/helpers/action_mosaico/tag_helper.rb', line 24

def rich_text_mosaico_tag(name, value = nil, options = {})
  options = options.symbolize_keys
  form = options.delete(:form)

  options[:input] ||= "mosaico_input_#{ActionMosaico::TagHelper.id += 1}"
  options[:class] ||= 'mosaico-content'

  options[:data] ||= {}
  options[:data][:direct_upload_url] ||= main_app.rails_direct_uploads_url
  options[:data][:blob_url_template] ||= main_app.rails_service_blob_url(':signed_id', ':filename')

  editor_tag = ('mosaico-editor', '', options)
  input_tag = hidden_field_tag(name, value.try(:to_mosaico_html) || value, id: options[:input], form: form)

  input_tag + editor_tag
end