blob: a10407943dbd9144af687307aa0b1b38efced3f8 [file] [log] [blame]
/**
* @class button - insert formatted text (open dialog window)
*
* @param elRTE rte объект-редактор
* @param String name название кнопки
*
* @author: Dmitry Levashov (dio) dio@std42.ru
* @copyright: Studio 42, http://www.std42.ru
**/
(function($) {
elRTE.prototype.ui.prototype.buttons.pasteformattext = function(rte, name) {
this.constructor.prototype.constructor.call(this, rte, name);
this.iframe = $(document.createElement('iframe')).addClass('el-rte-paste-input');
this.doc = null;
var self = this;
this.command = function() {
this.rte.selection.saveIERange();
var self = this,
opts = {
submit : function(e, d) {
e.stopPropagation();
e.preventDefault();
self.paste();
d.close();
},
dialog : {
width : 500,
title : this.rte.i18n('Paste formatted text')
}
},
d = new elDialogForm(opts);
d.append(this.iframe).open();
this.doc = this.iframe.get(0).contentWindow.document;
html = this.rte.options.doctype
+'<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
html += '</head><body> <br /> </body></html>';
this.doc.open();
this.doc.write(html);
this.doc.close();
if (!this.rte.browser.msie) {
try { this.doc.designMode = "on"; }
catch(e) { }
} else {
this.doc.body.contentEditable = true;
}
setTimeout(function() { self.iframe[0].contentWindow.focus(); }, 50);
}
this.paste = function() {
$(this.doc.body).find('[class]').removeAttr('class');
var html = $.trim($(this.doc.body).html());
if (html) {
this.rte.history.add();
this.rte.selection.restoreIERange();
this.rte.selection.insertHtml(this.rte.filter.wysiwyg2wysiwyg(this.rte.filter.proccess('paste', html)));
this.rte.ui.update(true);
}
}
this.update = function() {
this.domElem.removeClass('disabled');
}
}
})(jQuery);