mod/tinymce_editor/assets/script/tinymce_config.js.coffee
$(document).ready ->
# make tinymce work in modals
document.addEventListener 'focusin', (e) ->
if e.target.closest('.tox-tinymce-aux, .moxman-window, .tam-assetmanager-root') != null
e.stopImmediatePropagation()
decko.editors.add ".tinymce-textarea",
-> decko.initTinyMCE @[0].id,
->
ed = tinyMCE.get(@[0].id)
ed && ed.getContent()
decko.slot.destroy (slot) ->
slot.find("textarea.tinymce-textarea").each ->
ed = tinyMCE.get($(this)[0].id)
ed && ed.remove()
$.extend decko,
setTinyMCEConfig: (string) ->
setter = ->
try
$.parseJSON string
catch
{}
decko.tinyMCEConfig = setter()
initTinyMCE: (el_id) ->
# verify_html: false -- note: this option needed for empty
# paragraphs to add space.
conf = {
theme: "silver"
plugins: 'autoresize'
autoresize_max_height: 500
mobile: { theme: 'mobile' }
contextmenu: "deckolink nest"
}
user_conf = if decko.tinyMCEConfig? then decko.tinyMCEConfig else {}
hard_conf = {
selector: "##{el_id}"
branding: false
extended_valid_elements: "card-nest[id]"
# CSS could be made optional, but it may involve migrating old legacy
# *tinyMCE settings to get rid of stale stuff.
content_css: decko.cssPath
entity_encoding: 'raw'
}
$.extend conf, user_conf, hard_conf
decko.addNestPlugin(conf)
tinyMCE.baseURL = decko.path('mod/tinymce_editor')
tinyMCE.suffix = '.min'
# "##{el_id}"
# tinyMCE.get(el_id).remove() if $("##{el_id}")[0]? and tinyMCE.get(el_id)?
tinyMCE.init conf
addNestPlugin: (conf) ->
if conf.plugins? then conf.plugins += " nest" else conf.plugins = "nest"
# if conf.toolbar1? then conf.toolbar1 += " | nest" else conf.toolbar1 = "nest"
conf.menu = { insert: { title: "Insert", items: "deckolink nest image | hr"}}