From 2eeb128d06ad37dea9bd1765784fb53e47ef527c Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Tue, 15 Nov 2011 11:47:40 -0500 Subject: [PATCH] - Fix washing styles with quoted values e.g. font-family --- program/js/tiny_mce/plugins/xhtmlxtras/js/element_common.js | 52 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 30 insertions(+), 22 deletions(-) diff --git a/program/js/tiny_mce/plugins/xhtmlxtras/js/element_common.js b/program/js/tiny_mce/plugins/xhtmlxtras/js/element_common.js index 724d9d1..4e5d9c3 100644 --- a/program/js/tiny_mce/plugins/xhtmlxtras/js/element_common.js +++ b/program/js/tiny_mce/plugins/xhtmlxtras/js/element_common.js @@ -1,8 +1,11 @@ - /** - * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $ +/** + * element_common.js * - * @author Moxiecode - based on work by Andrew Tetlaw - * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved. + * Copyright 2009, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://tinymce.moxiecode.com/license + * Contributing: http://tinymce.moxiecode.com/contributing */ tinyMCEPopup.requireLangPack(); @@ -136,7 +139,7 @@ element_name = element_name.toLowerCase(); var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase()); - if (elm != null && elm.nodeName == element_name.toUpperCase()) { + if (elm != null && elm.nodeName.toUpperCase() == element_name.toUpperCase()) { SXE.currentAction = "update"; } @@ -151,28 +154,24 @@ SXE.insertElement = function(element_name) { var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase()), h, tagName; - tinyMCEPopup.execCommand('mceBeginUndoLevel'); if (elm == null) { var s = SXE.inst.selection.getContent(); if(s.length > 0) { tagName = element_name; - if (tinymce.isIE && element_name.indexOf('html:') == 0) - element_name = element_name.substring(5).toLowerCase(); - - h = '<' + tagName + ' id="#sxe_temp_' + element_name + '#">' + s + '</' + tagName + '>'; - - tinyMCEPopup.execCommand('mceInsertContent', false, h); - - var elementArray = tinymce.grep(SXE.inst.dom.select(element_name), function(n) {return n.id == '#sxe_temp_' + element_name + '#';}); + insertInlineElement(element_name); + var elementArray = tinymce.grep(SXE.inst.dom.select(element_name)); for (var i=0; i<elementArray.length; i++) { var elm = elementArray[i]; - elm.id = ''; - elm.setAttribute('id', ''); - elm.removeAttribute('id'); + if (SXE.inst.dom.getAttrib(elm, 'data-mce-new')) { + elm.id = ''; + elm.setAttribute('id', ''); + elm.removeAttribute('id'); + elm.removeAttribute('data-mce-new'); - setAllCommonAttribs(elm); + setAllCommonAttribs(elm); + } } } } else { @@ -185,8 +184,7 @@ SXE.removeElement = function(element_name){ element_name = element_name.toLowerCase(); elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase()); - if(elm && elm.nodeName == element_name.toUpperCase()){ - tinyMCEPopup.execCommand('mceBeginUndoLevel'); + if(elm && elm.nodeName.toUpperCase() == element_name.toUpperCase()){ tinyMCE.execCommand('mceRemoveNode', false, elm); SXE.inst.nodeChanged(); tinyMCEPopup.execCommand('mceEndUndoLevel'); @@ -194,7 +192,7 @@ } SXE.showRemoveButton = function() { - document.getElementById("remove").style.display = 'block'; + document.getElementById("remove").style.display = ''; } SXE.containsClass = function(elm,cl) { @@ -218,4 +216,14 @@ SXE.addClass = function(elm,cl) { if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl; return true; -} \ No newline at end of file +} + +function insertInlineElement(en) { + var ed = tinyMCEPopup.editor, dom = ed.dom; + + ed.getDoc().execCommand('FontName', false, 'mceinline'); + tinymce.each(dom.select('span,font'), function(n) { + if (n.style.fontFamily == 'mceinline' || n.face == 'mceinline') + dom.replace(dom.create(en, {'data-mce-new' : 1}), n, 1); + }); +} -- Gitblit v1.9.1