diff -r fd8fb93e1b6a -r a361355b55c7 src/pyams_skin/resources/js/ext/tinymce/dev/plugins/preview/plugin.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_skin/resources/js/ext/tinymce/dev/plugins/preview/plugin.js Wed Jun 17 10:00:10 2015 +0200 @@ -0,0 +1,88 @@ +/** + * plugin.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ + +tinymce.PluginManager.add('preview', function(editor) { + var settings = editor.settings, sandbox = !tinymce.Env.ie; + + editor.addCommand('mcePreview', function() { + editor.windowManager.open({ + title: 'Preview', + width: parseInt(editor.getParam("plugin_preview_width", "650"), 10), + height: parseInt(editor.getParam("plugin_preview_height", "500"), 10), + html: '', + buttons: { + text: 'Close', + onclick: function() { + this.parent().parent().close(); + } + }, + onPostRender: function() { + var previewHtml, headHtml = ''; + + headHtml += ''; + + tinymce.each(editor.contentCSS, function(url) { + headHtml += ''; + }); + + var bodyId = settings.body_id || 'tinymce'; + if (bodyId.indexOf('=') != -1) { + bodyId = editor.getParam('body_id', '', 'hash'); + bodyId = bodyId[editor.id] || bodyId; + } + + var bodyClass = settings.body_class || ''; + if (bodyClass.indexOf('=') != -1) { + bodyClass = editor.getParam('body_class', '', 'hash'); + bodyClass = bodyClass[editor.id] || ''; + } + + var dirAttr = editor.settings.directionality ? ' dir="' + editor.settings.directionality + '"' : ''; + + previewHtml = ( + '' + + '' + + '' + + headHtml + + '' + + '' + + editor.getContent() + + '' + + '' + ); + + if (!sandbox) { + // IE 6-11 doesn't support data uris on iframes + // so I guess they will have to be less secure since we can't sandbox on those + // TODO: Use sandbox if future versions of IE supports iframes with data: uris. + var doc = this.getEl('body').firstChild.contentWindow.document; + doc.open(); + doc.write(previewHtml); + doc.close(); + } else { + this.getEl('body').firstChild.src = 'data:text/html;charset=utf-8,' + encodeURIComponent(previewHtml); + } + } + }); + }); + + editor.addButton('preview', { + title: 'Preview', + cmd: 'mcePreview' + }); + + editor.addMenuItem('preview', { + text: 'Preview', + cmd: 'mcePreview', + context: 'view' + }); +});