mod/tinymce_editor/assets/script/image_editor.js.coffee
decko.slot.ready (slot) ->
sdata = slot.data("slot")
if sdata? && sdata["show"]? && sdata["show"].includes "preview_redirect"
tabPanel = slot.closest(".tab-panel")
tabPanel.find(".tab-li-preview a").tab("show")
nest.updateImagePreview(slot)
if slot.hasClass("modal_nest_image-view")
imageSelect = slot.find('._image-card-select')
if imageSelect.length > 0
decko.imageComplete.init imageSelect
nest.updateImageName(slot.find(".new_image-view .new_fields-view .submit-button"))
$(document).ready ->
$('body').on 'select2:select', '._image-name', () ->
nest.updateImagePreview(this)
$('body').on 'select2:select', '._image-view-select', () ->
nest.updateImagePreview(this)
$('body').on 'select2:select', '._image-size-select', () ->
nest.updateImagePreview(this)
$('body').on 'click', ".new_image-view .new_fields-view .submit-button", ->
nest.updateImageName($(this))
decko.imageComplete =
init: (el) ->
decko.select2Autocomplete.init el, @_options(el),
data: (params) ->
term: params.term
view: "image_complete"
_options: (el) ->
dropdownParent: el.parent()
window.nest ||= {}
$.extend nest,
updateImageName: (container) ->
name = container.slot().data("cardName");
nameSelect = container.closest(".tab-content").find("._image-name")
option = new Option(name, name, true, true);
nameSelect.append(option)
nameSelect.val(name)
nameSelect.trigger('change')
updateImagePreview: (el) ->
tabs = $(el).closest(".tab-content")
name = tabs.find("._image-name").val();
view = tabs.find("._image-view-select").val();
size = tabs.find("._image-size-select").val();
syntaxPreview = tabs.closest("._nest-editor").find("._nest-preview")
syntaxPreview.val("{{ #{name} | view: #{view}; size: #{size} }}")
slot = tabs.find(".tab-pane-preview > .card-slot");
path = "#{name}?view=#{view}&size=#{size}"
$(slot).slotReload path