Sha256: 6922d44aacf190f2d86e3748a621d5ad70fdf84662675796a99ca41f7a4e62fb

Contents?: true

Size: 1.8 KB

Versions: 26

Compression:

Stored size: 1.8 KB

Contents

# Alchemy Tinymce wrapper
#
$.extend Alchemy.Tinymce,

  # Returns default config for a tinymce editor.
  #
  getDefaultConfig: (id) ->
    config = @defaults
    config.language = Alchemy.locale
    config.selector = "textarea#tinymce_#{id}"
    config.init_instance_callback = @initInstanceCallback
    return config

  # Returns configuration for given custom tinymce editor selector.
  #
  # It uses the +.getDefaultConfig+ and merges the custom parts.
  #
  getCustomConfig: (id, selector) ->
    editor_config = @customConfigs[selector]
    if editor_config
      $.extend({}, @getDefaultConfig(id), editor_config)

  # Initializes all TinyMCE editors with given ids
  #
  # @param ids [Array]
  #   - Editor ids that should be initialized.
  #
  init: (ids) ->
    for id in ids
      @initEditor(id)

  # Initializes one specific TinyMCE editor
  #
  # @param id [Number]
  #   - Editor id that should be initialized.
  #
  initEditor: (id) ->
    textarea = $("textarea#tinymce_#{id}")
    return if textarea.length == 0
    if selector = textarea[0].classList[1]
      config = @getCustomConfig(id, selector)
    else
      config = @getDefaultConfig(id)
    if config
      spinner = Alchemy.Spinner.small()
      textarea.parents('.tinymce_container').prepend spinner.spin().el
      tinymce.init(config)
    else
      Alchemy.debug('No tinymce configuration found for', id)

  # Gets called after an editor instance gets intialized
  #
  initInstanceCallback: (inst) ->
    $this = $("##{inst.id}")
    parent = $this.parents('.element_editor')
    parent.find('.spinner').remove()
    inst.on 'change', (e) ->
      Alchemy.setElementDirty(parent)

  # Removes the TinyMCE editor from given dom ids.
  #
  remove: (ids) ->
    for id in ids
      editor = tinymce.get("tinymce_#{id}")
      if editor
        editor.remove()

Version data entries

26 entries across 26 versions & 2 rubygems

Version Path
alchemy_cms-3.2.1 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.3 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
lc_alchemy_cms-3.2.1 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
lc_alchemy_cms-3.2.0 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.2.0 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.2.0.rc1 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.2.0.beta app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.1 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.0.4 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0.rc3 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0.rc2 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0.rc1 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0.beta6 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0.beta5 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0.beta4 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.0.3 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0.beta3 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0.beta2 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee
alchemy_cms-3.1.0.beta1 app/assets/javascripts/alchemy/alchemy.tinymce.js.coffee