UNPKG

automizy-email-editor

Version:

Design mobile friendly HTML emails in your application.

555 lines (536 loc) 33.6 kB
define([ "js/functions/core/ready" ], function () { $AEE.ready(function(){ $AEE.settings.systemFieldStart = '[{'; $AEE.settings.systemFieldEnd = '}]'; $AEE.settings.customFieldStart = '{{'; $AEE.settings.customFieldEnd = '}}'; $AEE.settings.fontFamilies = [ ['Arial, Helvetica, sans-serif', 'Arial'], ['Arial Black, Gadget, sans-serif', 'Arial Black'], ['Comic Sans MS, cursive, sans-serif', 'Comic Sans MS'], ['Courier New, Courier, monospace', 'Courier New'], ['Georgia, serif', 'Georgia'], ['Impact, Charcoal, sans-serif', 'Impact'], ['Lucida Console, Monaco, monospace', 'Lucida Console'], ['Lucida Sans Unicode, Lucida Grande, sans-serif', 'Lucida Sans Unicode'], ['Palatino Linotype, Book Antiqua, Palatino, serif', 'Palatino Linotype'], ['Tahoma, Geneva, sans-serif', 'Tahoma'], ['Times New Roman, Times, serif', 'Times New Roman'], ['Trebuchet MS, Helvetica, sans-serif', 'Trebuchet MS'], ['Verdana, Geneva, sans-serif', 'Verdana'] ]; $AEE.settings.niceScroll = { autohidemode: false, cursorcolor: "rgba(0, 0, 0, 0.2)", cursorborder: "none", cursorwidth: "9px" }; $AEE.settings.imgResizable = { ghost: false, aspectRatio: true, start: function (event, ui) { $(this).find("img").css({ opacity: 0.3 }); var $content = ui.element.closest(".aee-block-content-cell"); var maxImgWidth = $content.width(); $(this).resizable("option", "maxWidth", maxImgWidth) }, stop: function (event, ui) { var $content = ui.element.closest(".aee-block-content-cell"); $AEE.setImageSize($content); }, create:function(event, ui){ var $content = $(this).closest(".aee-block-content-cell"); setTimeout(function(){ $AEE.setImageSize($content); }, 10); } }; $AEE.settings.imgGalleryResizable = { ghost: false, aspectRatio: true, start: function (event, ui) { $(this).find("img").css({ opacity: 0.3 }); var $content = ui.element.closest(".aee-block-content-cell"); var maxImgWidth = $content.width(); $(this).resizable("option", "maxWidth", maxImgWidth) }, stop: function (event, ui) { $(this).find("img").css({ opacity: 1 }); } }; tinyMCE.baseURL = $AEE.baseDir() + '/vendor/tinymce';// trailing slash important $AEE.settings.tinymceBlock = { oninit: function (editor) { editor.focus(); }, inline: true, theme: "modern", width: "100%", forced_root_block : "", height: "400px", /*schema: "html5",*/ convert_fonts_to_spans: false, valid_elements: "" + "a[accesskey|charset|class|coords|dir<ltr?rtl|href|hreflang|id|lang|name|rel|rev|shape<circle?default?poly?rect|style|tabindex|title|target|type]," + "abbr[class|dir<ltr?rtl|id|lang|style|title]," + "acronym[class|dir<ltr?rtl|id|id|lang|style|title]," + "address[class|align|dir<ltr?rtl|id|lang|style|title]," + "applet[align<bottom?left?middle?right?top|alt|archive|class|code|codebase|height|hspace|id|name|object|style|title|vspace|width]," + "area[accesskey|alt|class|coords|dir<ltr?rtl|href|id|lang|nohref<nohref|shape<circle?default?poly?rect|style|tabindex|title|target]," + "b/strong[class|dir<ltr?rtl|id|lang|style|title]," + "base[href|target]," + "basefont[color|face|id|size]," + "bdo[class|dir<ltr?rtl|id|lang|style|title]," + "big[class|dir<ltr?rtl|id|lang|style|title]," + "blockquote[cite|class|dir<ltr?rtl|id|lang|style|title]," + "body[alink|background|bgcolor|class|dir<ltr?rtl|id|lang|link|style|title|text|vlink]," + "br[class|clear<all?left?none?right|id|style|title]," + "button[accesskey|class|dir<ltr?rtl|disabled<disabled|id|lang|name|style|tabindex|title|type|value]," + "caption[align<bottom?left?right?top|class|dir<ltr?rtl|id|lang|style|title]," + "center[class|dir<ltr?rtl|id|lang|style|title]," + "cite[class|dir<ltr?rtl|id|lang|style|title]," + "code[class|dir<ltr?rtl|id|lang|style|title]," + "col[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id|lang|span|style|title|valign<baseline?bottom?middle?top|width]," + "colgroup[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id|lang|span|style|title|valign<baseline?bottom?middle?top|width]," + "dd[class|dir<ltr?rtl|id|lang|style|title]," + "del[cite|class|datetime|dir<ltr?rtl|id|lang|style|title]," + "dfn[class|dir<ltr?rtl|id|lang|style|title]," + "dir[class|compact<compact|dir<ltr?rtl|id|lang|style|title]," + "div[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "dl[class|compact<compact|dir<ltr?rtl|id|lang|style|title]," + "dt[class|dir<ltr?rtl|id|lang|style|title]," //+ "em/i[class|dir<ltr?rtl|id|lang|style|title]," + "fieldset[class|dir<ltr?rtl|id|lang|style|title]," + "font[class|color|dir<ltr?rtl|face|id|lang|size|style|title]," + "form[accept|accept-charset|action|class|dir<ltr?rtl|enctype|id|lang|method<get?post|name|style|title|target]," + "frame[class|frameborder|id|longdesc|marginheight|marginwidth|name|noresize<noresize|scrolling<auto?no?yes|src|style|title]," //+ "frameset[class|cols|id|onload|onunload|rows|style|title]," + "h1[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h2[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h3[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h4[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h5[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h6[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "head[dir<ltr?rtl|lang|profile]," + "hr[align<center?left?right|class|dir<ltr?rtl|id|lang|noshade<noshade|size|style|title|width]," + "html[dir<ltr?rtl|lang|version]," + "i/em[class|dir<ltr?rtl|id|lang|style|title]," //+ "iframe[align<bottom?left?middle?right?top|class|frameborder|height|id|longdesc|marginheight|marginwidth|name|scrolling<auto?no?yes|src|style|title|width]," + "img[align<bottom?left?middle?right?top|alt|border|class|dir<ltr?rtl|height|hspace|id|ismap<ismap|lang|longdesc|name|src|style|title|usemap|vspace|width]," + "input[accept|accesskey|align<bottom?left?middle?right?top|alt|checked<checked|class|dir<ltr?rtl|disabled<disabled|id|ismap<ismap|lang|maxlength|name|readonly<readonly|size|src|style|tabindex|title|type<button?checkbox?file?hidden?image?password?radio?reset?submit?text|usemap|value]," + "ins[cite|class|datetime|dir<ltr?rtl|id|lang|style|title]," + "isindex[class|dir<ltr?rtl|id|lang|prompt|style|title]," + "kbd[class|dir<ltr?rtl|id|lang|style|title]," + "label[accesskey|class|dir<ltr?rtl|for|id|lang|style|title]," + "legend[align<bottom?left?right?top|accesskey|class|dir<ltr?rtl|id|lang|style|title]," + "li[class|dir<ltr?rtl|id|lang|style|title|type|value]," + "link[charset|class|dir<ltr?rtl|href|hreflang|id|lang|media|rel|rev|style|title|target|type]," + "map[class|dir<ltr?rtl|id|lang|name|style|title]," + "menu[class|compact<compact|dir<ltr?rtl|id|lang|style|title]," + "meta[content|dir<ltr?rtl|http-equiv|lang|name|scheme]," + "noframes[class|dir<ltr?rtl|id|lang|style|title]," + "noscript[class|dir<ltr?rtl|id|lang|style|title]," + "object[align<bottom?left?middle?right?top|archive|border|class|classid|codebase|codetype|data|declare|dir<ltr?rtl|height|hspace|id|lang|name|standby|style|tabindex|title|type|usemap|vspace|width]," + "ol[class|compact<compact|dir<ltr?rtl|id|lang|start|style|title|type]," + "optgroup[class|dir<ltr?rtl|disabled<disabled|id|label|lang|style|title]," + "option[class|dir<ltr?rtl|disabled<disabled|id|label|lang|selected<selected|style|title|value]," + "p[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "param[id|name|type|value|valuetype<DATA?OBJECT?REF]," + "pre/listing/plaintext/xmp[align|class|dir<ltr?rtl|id|lang|style|title|width]," + "q[cite|class|dir<ltr?rtl|id|lang|style|title]," + "s[class|dir<ltr?rtl|id|lang|onclick|style|title]," + "samp[class|dir<ltr?rtl|id|lang|onclick|style|title]," //+ "script[charset|defer|language|src|type]," + "select[class|dir<ltr?rtl|disabled<disabled|id|lang|multiple<multiple|name|size|style|tabindex|title]," + "small[class|dir<ltr?rtl|id|lang|style|title]," + "span[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "strike[class|class|dir<ltr?rtl|id|lang|style|title]," //+ "strong/b[class|dir<ltr?rtl|id|lang|style|title]," + "style[dir<ltr?rtl|lang|media|title|type]," + "sub[class|dir<ltr?rtl|id|lang|style|title]," + "sup[class|dir<ltr?rtl|id|lang|style|title]," + "table[align<center?left?right|bgcolor|border|cellpadding|cellspacing|class|dir<ltr?rtl|frame|height|id|lang|rules|style|summary|title|width]," + "tbody[align<center?char?justify?left?right|char|class|charoff|dir<ltr?rtl|id|lang|style|title|valign<baseline?bottom?middle?top]," + "td[abbr|align<center?char?justify?left?right|axis|background|bgcolor|char|charoff|class|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|rowspan|scope<col?colgroup?row?rowgroup|style|title|valign<baseline?bottom?middle?top|width]," + "textarea[accesskey|class|cols|dir<ltr?rtl|disabled<disabled|id|lang|name|readonly<readonly|rows|style|tabindex|title]," + "tfoot[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id|lang|style|title|valign<baseline?bottom?middle?top]," + "th[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|rowspan|scope<col?colgroup?row?rowgroup|style|title|valign<baseline?bottom?middle?top|width]," + "thead[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id|lang|style|title|valign<baseline?bottom?middle?top]," + "title[dir<ltr?rtl|lang]," + "tr[abbr|align<center?char?justify?left?right|bgcolor|char|charoff|class|rowspan|dir<ltr?rtl|id|lang|style|title|valign<baseline?bottom?middle?top]," + "tt[class|dir<ltr?rtl|id|lang|style|title]," + "u[class|dir<ltr?rtl|id|lang|style|title]," + "ul[class|compact<compact|dir<ltr?rtl|id|lang|style|title|type]," + "var[class|dir<ltr?rtl|id|lang|style|title]", valid_children: "+body[title|meta],+a[div|span|table|tr|td|th|ul|li|ol|br|a|h1|h2|h3|h4|h5|h6|h7|b|u|i|sup|sub|strong|small]", //skin_url: 'css/tinymce/custom', menubar: false, formats: { bold : {inline : 'b'}, italic : {inline : 'i'}, underline : {inline : 'u'} }, fontsize_formats: "6pt 8pt 10pt 11pt 12pt 13pt 14pt 16pt 18pt 20pt 24pt 28pt 34pt 36pt", plugins: "colorpicker textcolor table link code contextmenu", tools: "inserttable", theme_advanced_text_colors : "FF00FF,FFFF00,00FF00,FF0000,0000FF,000000", link_list: [ { title: $A.translate('Email address'), value: 'mailto:' + $AEE.settings.systemFieldStart + 'emailaddress' + $AEE.settings.systemFieldEnd }, { title: $A.translate('Web version'), value: $AEE.settings.systemFieldStart + 'webversion' + $AEE.settings.systemFieldEnd }, { title: $A.translate('Unsubscribe link'), value: $AEE.settings.systemFieldStart + 'unsubscribelink' + $AEE.settings.systemFieldEnd } ], toolbar: [ "styleselect | undo redo | alignleft aligncenter alignright alignjustify | image | link | customfields systemfields", "bold italic underline | fontselect fontsizeselect | forecolor backcolor | table | code" ], contextmenu: "link inserttable | cell row column deletetable", setup: function (editor) { var hasNodeClass = function(target, className){ return new RegExp('(\\s|^)' + className + '(\\s|$)').test(target.className); }; var getColor = function(e){ var color = '#000000'; for(var i = 0; i < e.parents.length; i++){ if(e.parents[i].style !== 'undefined' && typeof e.parents[i].style.color === 'string' && e.parents[i].style.color.length > 0){ color = e.parents[i].style.color; break; } } return color; }; editor.addButton('jqueryTextColorpicker', { text: 'Text color', icon: 'forecolor', onclick: function() { var color = getColor(editor.selection.getNode()); editor.formatter.apply('jqueryTextColor', {value : 'red'}); } }); editor.addButton('customfields', { type: 'menubutton', text: $A.translate('Custom fields'), icon: false, menu: [ { text: $A.translate('User defined'), menu: $AEE.getTinyMceUserDefinedMenu(editor) }, { text: $A.translate('Built-in'), menu: $AEE.getTinyMceBuiltInMenu(editor) } ] }); editor.on('BeforeSetContent', function(e) { /*fix: link underline*/ if(e.content.substring(0, 3) === '<a '){ if(e.content.indexOf('data-mce-href') < 0){ e.content = $(e.content).attr('style', 'text-decoration:none').wrapInner('<u></u>')[0].outerHTML; } } console.log('BeforeSetContent event', e); }); editor.on('NodeChange', function(e) { console.log('NodeChange event', e); console.log($AEE.rgbStyleToHex(getColor(e))); }); /* editor.on('AddUndo', function(e) { console.log('AddUndo event', e); }); editor.on('BeforeAddUndo', function(e) { console.log('BeforeAddUndo event', e); }); editor.on('BeforeRenderUI', function(e) { console.log('BeforeRenderUI event', e); }); editor.on('GetContent', function(e) { console.log('GetContent event', e); }); editor.on('LoadContent', function(e) { console.log('LoadContent event', e); }); editor.on('NodeChange', function(e) { console.log('NodeChange event', e); }); editor.on('ObjectResizeStart', function(e) { console.log('ObjectResizeStart event', e); }); editor.on('ObjectResized', function(e) { console.log('ObjectResized event', e); }); editor.on('ObjectSelected', function(e) { console.log('ObjectSelected event', e); }); editor.on('PostProcess', function(e) { console.log('PostProcess event', e); }); editor.on('PreInit', function(e) { console.log('PreInit event', e); }); editor.on('PreProcess', function(e) { console.log('PreProcess event', e); }); editor.on('ProgressState', function(e) { console.log('ProgressState event', e); }); editor.on('SaveContent', function(e) { console.log('SaveContent event', e); }); editor.on('SetAttrib', function(e) { console.log('SetAttrib event', e); }); editor.on('activate', function(e) { console.log('activate event', e); }); editor.on('blur', function(e) { console.log('blur event', e); }); editor.on('change', function(e) { console.log('change event', e); }); editor.on('deactivate', function(e) { console.log('deactivate event', e); }); editor.on('focus', function(e) { console.log('focus event', e); }); editor.on('hide', function(e) { console.log('hide event', e); }); editor.on('init', function(e) { console.log('init event', e); }); editor.on('redo', function(e) { console.log('redo event', e); }); editor.on('remove', function(e) { console.log('remove event', e); }); editor.on('hide', function(e) { console.log('hide event', e); }); editor.on('reset', function(e) { console.log('reset event', e); }); editor.on('show', function(e) { console.log('show event', e); }); editor.on('submit', function(e) { console.log('submit event', e); }); editor.on('undo', function(e) { console.log('undo event', e); }); editor.on('ExecCommand', function(e) { console.log('ExecCommand event', e); }); editor.on('BeforeExecCommand', function(e) { console.log('BeforeExecCommand event', e); }); */ } }; $AEE.settings.tinymceHtmlBlock = { oninit: function (editor) { editor.focus(); }, theme: "modern", width: "100%", forced_root_block : "", height: "400px", /*schema: "html5",*/ convert_fonts_to_spans: false, valid_elements: "" + "a[accesskey|charset|class|coords|dir<ltr?rtl|href|hreflang|id|lang|name|rel|rev|shape<circle?default?poly?rect|style|tabindex|title|target|type]," + "abbr[class|dir<ltr?rtl|id|lang|style|title]," + "acronym[class|dir<ltr?rtl|id|id|lang|style|title]," + "address[class|align|dir<ltr?rtl|id|lang|style|title]," + "applet[align<bottom?left?middle?right?top|alt|archive|class|code|codebase|height|hspace|id|name|object|style|title|vspace|width]," + "area[accesskey|alt|class|coords|dir<ltr?rtl|href|id|lang|nohref<nohref|shape<circle?default?poly?rect|style|tabindex|title|target]," + "b/strong[class|dir<ltr?rtl|id|lang|style|title]," + "base[href|target]," + "basefont[color|face|id|size]," + "bdo[class|dir<ltr?rtl|id|lang|style|title]," + "big[class|dir<ltr?rtl|id|lang|style|title]," + "blockquote[cite|class|dir<ltr?rtl|id|lang|style|title]," + "body[alink|background|bgcolor|class|dir<ltr?rtl|id|lang|link|style|title|text|vlink]," + "br[class|clear<all?left?none?right|id|style|title]," + "button[accesskey|class|dir<ltr?rtl|disabled<disabled|id|lang|name|style|tabindex|title|type|value]," + "caption[align<bottom?left?right?top|class|dir<ltr?rtl|id|lang|style|title]," + "center[class|dir<ltr?rtl|id|lang|style|title]," + "cite[class|dir<ltr?rtl|id|lang|style|title]," + "code[class|dir<ltr?rtl|id|lang|style|title]," + "col[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id|lang|span|style|title|valign<baseline?bottom?middle?top|width]," + "colgroup[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id|lang|span|style|title|valign<baseline?bottom?middle?top|width]," + "dd[class|dir<ltr?rtl|id|lang|style|title]," + "del[cite|class|datetime|dir<ltr?rtl|id|lang|style|title]," + "dfn[class|dir<ltr?rtl|id|lang|style|title]," + "dir[class|compact<compact|dir<ltr?rtl|id|lang|style|title]," + "div[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "dl[class|compact<compact|dir<ltr?rtl|id|lang|style|title]," + "dt[class|dir<ltr?rtl|id|lang|style|title]," //+ "em/i[class|dir<ltr?rtl|id|lang|style|title]," + "fieldset[class|dir<ltr?rtl|id|lang|style|title]," + "font[class|color|dir<ltr?rtl|face|id|lang|size|style|title]," + "form[accept|accept-charset|action|class|dir<ltr?rtl|enctype|id|lang|method<get?post|name|style|title|target]," + "frame[class|frameborder|id|longdesc|marginheight|marginwidth|name|noresize<noresize|scrolling<auto?no?yes|src|style|title]," //+ "frameset[class|cols|id|onload|onunload|rows|style|title]," + "h1[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h2[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h3[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h4[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h5[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "h6[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "head[dir<ltr?rtl|lang|profile]," + "hr[align<center?left?right|class|dir<ltr?rtl|id|lang|noshade<noshade|size|style|title|width]," + "html[dir<ltr?rtl|lang|version]," + "i/em[class|dir<ltr?rtl|id|lang|style|title]," //+ "iframe[align<bottom?left?middle?right?top|class|frameborder|height|id|longdesc|marginheight|marginwidth|name|scrolling<auto?no?yes|src|style|title|width]," + "img[align<bottom?left?middle?right?top|alt|border|class|dir<ltr?rtl|height|hspace|id|ismap<ismap|lang|longdesc|name|src|style|title|usemap|vspace|width]," + "input[accept|accesskey|align<bottom?left?middle?right?top|alt|checked<checked|class|dir<ltr?rtl|disabled<disabled|id|ismap<ismap|lang|maxlength|name|readonly<readonly|size|src|style|tabindex|title|type<button?checkbox?file?hidden?image?password?radio?reset?submit?text|usemap|value]," + "ins[cite|class|datetime|dir<ltr?rtl|id|lang|style|title]," + "isindex[class|dir<ltr?rtl|id|lang|prompt|style|title]," + "kbd[class|dir<ltr?rtl|id|lang|style|title]," + "label[accesskey|class|dir<ltr?rtl|for|id|lang|style|title]," + "legend[align<bottom?left?right?top|accesskey|class|dir<ltr?rtl|id|lang|style|title]," + "li[class|dir<ltr?rtl|id|lang|style|title|type|value]," + "link[charset|class|dir<ltr?rtl|href|hreflang|id|lang|media|rel|rev|style|title|target|type]," + "map[class|dir<ltr?rtl|id|lang|name|style|title]," + "menu[class|compact<compact|dir<ltr?rtl|id|lang|style|title]," + "meta[content|dir<ltr?rtl|http-equiv|lang|name|scheme]," + "noframes[class|dir<ltr?rtl|id|lang|style|title]," + "noscript[class|dir<ltr?rtl|id|lang|style|title]," + "object[align<bottom?left?middle?right?top|archive|border|class|classid|codebase|codetype|data|declare|dir<ltr?rtl|height|hspace|id|lang|name|standby|style|tabindex|title|type|usemap|vspace|width]," + "ol[class|compact<compact|dir<ltr?rtl|id|lang|start|style|title|type]," + "optgroup[class|dir<ltr?rtl|disabled<disabled|id|label|lang|style|title]," + "option[class|dir<ltr?rtl|disabled<disabled|id|label|lang|selected<selected|style|title|value]," + "p[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "param[id|name|type|value|valuetype<DATA?OBJECT?REF]," + "pre/listing/plaintext/xmp[align|class|dir<ltr?rtl|id|lang|style|title|width]," + "q[cite|class|dir<ltr?rtl|id|lang|style|title]," + "s[class|dir<ltr?rtl|id|lang|onclick|style|title]," + "samp[class|dir<ltr?rtl|id|lang|onclick|style|title]," //+ "script[charset|defer|language|src|type]," + "select[class|dir<ltr?rtl|disabled<disabled|id|lang|multiple<multiple|name|size|style|tabindex|title]," + "small[class|dir<ltr?rtl|id|lang|style|title]," + "span[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|style|title]," + "strike[class|class|dir<ltr?rtl|id|lang|style|title]," //+ "strong/b[class|dir<ltr?rtl|id|lang|style|title]," + "style[dir<ltr?rtl|lang|media|title|type]," + "sub[class|dir<ltr?rtl|id|lang|style|title]," + "sup[class|dir<ltr?rtl|id|lang|style|title]," + "table[align<center?left?right|bgcolor|border|cellpadding|cellspacing|class|dir<ltr?rtl|frame|height|id|lang|rules|style|summary|title|width]," + "tbody[align<center?char?justify?left?right|char|class|charoff|dir<ltr?rtl|id|lang|style|title|valign<baseline?bottom?middle?top]," + "td[abbr|align<center?char?justify?left?right|axis|background|bgcolor|char|charoff|class|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|rowspan|scope<col?colgroup?row?rowgroup|style|title|valign<baseline?bottom?middle?top|width]," + "textarea[accesskey|class|cols|dir<ltr?rtl|disabled<disabled|id|lang|name|readonly<readonly|rows|style|tabindex|title]," + "tfoot[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id|lang|style|title|valign<baseline?bottom?middle?top]," + "th[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|rowspan|scope<col?colgroup?row?rowgroup|style|title|valign<baseline?bottom?middle?top|width]," + "thead[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id|lang|style|title|valign<baseline?bottom?middle?top]," + "title[dir<ltr?rtl|lang]," + "tr[abbr|align<center?char?justify?left?right|bgcolor|char|charoff|class|rowspan|dir<ltr?rtl|id|lang|style|title|valign<baseline?bottom?middle?top]," + "tt[class|dir<ltr?rtl|id|lang|style|title]," + "u[class|dir<ltr?rtl|id|lang|style|title]," + "ul[class|compact<compact|dir<ltr?rtl|id|lang|style|title|type]," + "var[class|dir<ltr?rtl|id|lang|style|title]", valid_children: "+body[title|meta],+a[div|span|table|tr|td|th|ul|li|ol|br|a|h1|h2|h3|h4|h5|h6|h7|b|u|i|sup|sub|strong|small]", //skin_url: 'css/tinymce/custom', menubar: false, formats: { bold : {inline : 'b'}, italic : {inline : 'i'}, underline : {inline : 'u'} }, fontsize_formats: "6pt 8pt 10pt 11pt 12pt 13pt 14pt 16pt 18pt 20pt 24pt 28pt 34pt 36pt", plugins: "colorpicker textcolor table link code contextmenu", tools: "inserttable", theme_advanced_text_colors : "FF00FF,FFFF00,00FF00,FF0000,0000FF,000000", link_list: [ { title: $A.translate('Email address'), value: 'mailto:' + $AEE.settings.systemFieldStart + 'emailaddress' + $AEE.settings.systemFieldEnd }, { title: $A.translate('Web version'), value: $AEE.settings.systemFieldStart + 'webversion' + $AEE.settings.systemFieldEnd }, { title: $A.translate('Unsubscribe link'), value: $AEE.settings.systemFieldStart + 'unsubscribelink' + $AEE.settings.systemFieldEnd } ], toolbar: [ "styleselect | undo redo | alignleft aligncenter alignright alignjustify | image | link | customfields systemfields", "bold italic underline | fontselect fontsizeselect | forecolor backcolor | table | code" ], contextmenu: "link inserttable | cell row column deletetable", setup: function (editor) { var hasNodeClass = function(target, className){ return new RegExp('(\\s|^)' + className + '(\\s|$)').test(target.className); }; var getColor = function(e){ var color = '#000000'; for(var i = 0; i < e.parents.length; i++){ if(e.parents[i].style !== 'undefined' && typeof e.parents[i].style.color === 'string' && e.parents[i].style.color.length > 0){ color = e.parents[i].style.color; break; } } return color; }; editor.addButton('jqueryTextColorpicker', { text: 'Text color', icon: 'forecolor', onclick: function() { var color = getColor(editor.selection.getNode()); editor.formatter.apply('jqueryTextColor', {value : 'red'}); } }); editor.addButton('customfields', { type: 'menubutton', text: $A.translate('Custom fields'), icon: false, menu: [ { text: $A.translate('User defined'), menu: $AEE.getTinyMceUserDefinedMenu(editor) }, { text: $A.translate('Built-in'), menu: $AEE.getTinyMceBuiltInMenu(editor) } ] }); editor.on('BeforeSetContent', function(e) { if(e.content.substring(0, 3) === '<a '){ if(e.content.indexOf('data-mce-href') < 0){ e.content = $(e.content).attr('style', 'text-decoration:none').wrapInner('<u></u>')[0].outerHTML; } } console.log('BeforeSetContent event', e); }); editor.on('NodeChange', function(e) { console.log('NodeChange event', e); console.log($AEE.rgbStyleToHex(getColor(e))); }); } } }) });