X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=roojs-ui-debug.js;h=27ca272f8677a4420b92c10d884ae5b2d04755f2;hb=f7e66763d32050b58abe0781acdcc3a6dd43d4e5;hp=d0a33a946043f7796b3367a418712af405e5e506;hpb=3818ab34627387a252c8450f8b34bbe7e153cafd;p=roojs1 diff --git a/roojs-ui-debug.js b/roojs-ui-debug.js index d0a33a9460..27ca272f86 100644 --- a/roojs-ui-debug.js +++ b/roojs-ui-debug.js @@ -21582,7 +21582,7 @@ Roo.htmleditor.FilterWord = function(cfg) // no need to apply config. this.replaceDocBullets(cfg.node); - this.walk(cfg.node); + // this.walk(cfg.node); } @@ -21693,7 +21693,7 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, styleToObject: function(node) { - var styles = node.getAttribute("style").split(";"); + var styles = (node.getAttribute("style") || '').split(";"); var ret = {}; Roo.each(styles, function(s) { if (!s.match(/:/)) { @@ -21710,10 +21710,16 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, replaceDocBullets : function(doc) { + // this is a bit odd - but it appears some indents use ql-indent-1 + + var listpara = doc.getElementsByClassName('ql-indent-1'); + while(listpara.length) { + this.replaceDocBullet(listpara.item(0)); + } + var listpara = doc.getElementsByClassName('MsoListParagraph'); while(listpara.length) { this.replaceDocBullet(listpara.item(0)); - //code } }, @@ -21729,7 +21735,7 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, ns = ns.nextSibling; continue; } - if (!ns.className.match(/MsoListParagraph/i)) { + if (!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)) { break; } items.push(ns); @@ -21742,17 +21748,37 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, var stack = [ ul ]; var last_li = false; items.forEach(function(n) { - parent.removeChild(n); + //Roo.log("got innertHMLT=" + n.innerHTML); + var spans = n.getElementsByTagName('span'); - if (!spans.length || !n.isEqualNode(spans.item(0).parentNode)) { + if (!spans.length) { + //Roo.log("No spans found"); + + parent.removeChild(n); return; // skip it... } + + + + var style = {}; + for(var i = 0; i < spans.length; i++) { - var style = this.styleToObject(n); + style = this.styleToObject(spans[i]); + if (typeof(style['mso-list']) == 'undefined') { + continue; + } + + spans[i].parentNode.removeChild(spans[i]); // remove the fake bullet. + break; + } + //Roo.log("NOW GOT innertHMLT=" + n.innerHTML); + style = this.styleToObject(n); // mo-list is from the parent node. if (typeof(style['mso-list']) == 'undefined') { - return; // skip it. + //Roo.log("parent is missing level"); + parent.removeChild(n); + return; } - n.removeChild(spans.item(0)); // remove the fake bullet. + var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1; if (nlvl > lvl) { //new indent @@ -21764,12 +21790,16 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, var nli = stack[nlvl].appendChild(doc.createElement('li')); last_li = nli; + nli.innerHTML = n.innerHTML; + //Roo.log("innerHTML = " + n.innerHTML); + parent.removeChild(n); + // copy children of p into nli - while(n.firstChild) { + /*while(n.firstChild) { var fc = n.firstChild; n.removeChild(fc); nli.appendChild(fc); - } + }*/ },this); @@ -22268,12 +22298,14 @@ Roo.htmleditor.TidyWriter.prototype = { * @param {String} text String to write out. * @param {Boolean} raw Optional raw state if true the contents wont get encoded. */ - text: function(text, node) + text: function(in_text, node) { // if not in whitespace critical - if (text.length < 1) { + if (in_text.length < 1) { return; } + var text = new XMLSerializer().serializeToString(document.createTextNode(in_text)); // escape it properly? + if (this.in_pre) { this.html[this.html.length] = text; return;