Method: Symphonia::ApplicationHelper#ckeditor_for

Defined in:
app/helpers/symphonia/application_helper.rb

#ckeditor_for(field_id, options = {}) ⇒ Object



216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# File 'app/helpers/symphonia/application_helper.rb', line 216

def ckeditor_for(field_id, options = {})
  return '' unless !!defined?(Ckeditor)

  inline = options.delete(:inline)
  opts = options.inject({}) do |mem, var|
    key = var[0].to_s.camelcase(:lower)
    key[0].downcase!
    mem[key] = var[1]

    mem
  end
  opts['toolbar'] ||= 'Basic'
  # opts['customConfig'] ||= 'Basic'
  js = if inline
         "CKEDITOR.inline('#{field_id}', {toolbar: 'Basic'});"
       else
         "
    var ta_editor = CKEDITOR.instances['#{field_id}'];
    if (ta_editor) {CKEDITOR.remove(ta_editor);}
    CKEDITOR.replace('#{field_id}', #{opts.to_json.html_safe});
  "
       end
  javascript_tag("$(document).ready(function() {#{js.html_safe}})".html_safe)
end