replaceDocBullets : function(doc)
{
// this is a bit odd - but it appears some indents use ql-indent-1
- //Roo.log(doc.innerHTML);
+ //Roo.log(doc.innerHTML);
var listpara = doc.getElementsByClassName('MsoListParagraphCxSpFirst');
for( var i = 0; i < listpara.length; i ++) {
}
listpara = doc.getElementsByClassName('MsoListParagraph');
while(listpara.length) {
+
this.replaceDocBullet(listpara.item(0));
}
},
+
+
replaceDocBullet : function(p)
{
// gather all the siblings.
if (!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)) {
break;
}
+ var spans = ns.getElementsByTagName('span');
+ if (!spans.length) {
+ break;
+ }
+ var has_list = false;
+ for(var i = 0; i < spans.length; i++) {
+ if (spans[i].getAttribute('style').match(/mso-list/)) {
+ has_list = true;
+ break;
+ }
+ }
+ if (!has_list) {
+ break;
+ }
+
+
items.push(ns);
ns = ns.nextSibling;
}
-
+ if (!items.length) {
+ ns.className = "";
+ return;
+ }
var ul = parent.ownerDocument.createElement('ul'); // what about number lists...
parent.insertBefore(ul, p);
var stack = [ ul ];
var last_li = false;
+
items.forEach(function(n, ipos) {
//Roo.log("got innertHMLT=" + n.innerHTML);
var spans = n.getElementsByTagName('span');
if (!spans.length) {
//Roo.log("No spans found");
-
+
parent.removeChild(n);
+
+
return; // skip it...
}
style = this.styleToObject(n); // mo-list is from the parent node.
if (typeof(style['mso-list']) == 'undefined') {
//Roo.log("parent is missing level");
+
+
parent.removeChild(n);
+
return;
}
var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1 ;
-
-
+
if (nlvl > lvl) {
//new indent
var nul = doc.createElement('ul'); // what about number lists...
//Roo.log("innerHTML = " + n.innerHTML);
parent.removeChild(n);
- // copy children of p into nli
- /*while(n.firstChild) {
- var fc = n.firstChild;
- n.removeChild(fc);
- nli.appendChild(fc);
- }*/
+
},this);