Sha256: b51d0e0c3c625ae54bb45c65d1f673144cfbe28cb9b9f6907c2489bd2e4c268c

Contents?: true

Size: 1.76 KB

Versions: 4

Compression:

Stored size: 1.76 KB

Contents

# https://quilljs.com/docs/download/
# https://github.com/quilljs/quill
(this.EffectiveBootstrap || {}).effective_editor = ($element, options) ->
  editor = '#' + $element.attr('id') + '_editor'

  content_mode = options['content_mode']
  delete options['content_mode']

  quill = new Quill($element.siblings(editor).get(0), options)
  content = $element.val() || ''

  if content.length > 0
    if content.startsWith('{')
      quill.setContents(JSON.parse(content))
    else if content_mode == 'code'
      quill.setText(content)
    else if content.startsWith('<')
      quill.pasteHTML(content)
    else
      quill.setText(content)

  if content_mode == 'code'
    quill.formatText(0, quill.getLength(), 'code-block', true)
    quill.on 'text-change', -> $element.val(quill.getText())
  else if content_mode == 'html'
    quill.on 'text-change', ->
      html = $(editor).children('.ql-editor').html()
      html = '' if html == '<p><br></p>' || html == '<p></p>'
      $element.val(html)
  else
    quill.on 'text-change', -> $element.val(JSON.stringify(quill.getContents()))

  $element.on 'quill:focus', (event) -> quill.focus()

# This is the read only region. Always delta.
(this.EffectiveBootstrap || {}).effective_editor_tag = ($element, options) ->
  quill = new Quill('#' + $element.attr('id'), options)

  content = ($element.attr('data-content') || '')
  content_mode = $element.data('input-js-options')['content_mode']

  if content.length > 0
    if content.startsWith('{')
      quill.setContents(JSON.parse(content))
    else if content_mode == 'code'
      quill.setText(content)
    else if content.startsWith('<')
      quill.pasteHTML(content)
    else
      quill.setText(content)

  if content_mode == 'code'
    quill.formatText(0, quill.getLength(), 'code-block', true)

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
effective_bootstrap-0.3.0 app/assets/javascripts/effective_editor/initialize.js.coffee
effective_bootstrap-0.2.4 app/assets/javascripts/effective_editor/initialize.js.coffee
effective_bootstrap-0.2.3 app/assets/javascripts/effective_editor/initialize.js.coffee
effective_bootstrap-0.2.2 app/assets/javascripts/effective_editor/initialize.js.coffee