From 16dde150568bf6f2d23e4dd9d8b944929ce5c364 Mon Sep 17 00:00:00 2001 From: Alan Date: Wed, 8 Feb 2023 14:29:05 +0800 Subject: [PATCH] supporting multiple bullet point styles --- docs/src/Roo_htmleditor_FilterWord.js.html | 19 ++++++++++++------- roojs-all.js | 16 ++++++++-------- roojs-debug.js | 17 +++++++++++------ roojs-ui-debug.js | 17 +++++++++++------ roojs-ui.js | 16 ++++++++-------- 5 files changed, 50 insertions(+), 35 deletions(-) diff --git a/docs/src/Roo_htmleditor_FilterWord.js.html b/docs/src/Roo_htmleditor_FilterWord.js.html index 2bb90c315f..fa9c1e2483 100644 --- a/docs/src/Roo_htmleditor_FilterWord.js.html +++ b/docs/src/Roo_htmleditor_FilterWord.js.html @@ -246,14 +246,19 @@ if (!spans.length) { continue; } - var ff = spans[0].style.fontFamily; - if (!spans[0].hasAttribute('style') && spans.length > 1 && spans[1].hasAttribute('style')) { - - ff = spans[1].style.fontFamily; + var ff = ''; + var se = spans[0]; + for (var i = 0; i < spans.length;i++) { + se = spans[i]; + if (se.hasAttribute('style') && se.hasAttribute('style') && se.style.fontFamily != '') { + ff = se.style.fontFamily; + break; + } } - //var style = this.styleToObject(spans[0]); - //Roo.log("got font family: " + ff); - if (typeof(ff) != 'undefined' && !ff.match(/Symbol/)) { + + + //Roo.log("got font family: " + ff); + if (typeof(ff) != 'undefined' && !ff.match(/(Symbol|Wingdings)/) && "·o".indexOf(se.innerText.trim()) < 0) { listtype = 'ol'; } diff --git a/roojs-all.js b/roojs-all.js index da9abdba55..cb6dc4645a 100644 --- a/roojs-all.js +++ b/roojs-all.js @@ -1939,14 +1939,14 @@ for(var i=0;i1&&E[1].hasAttribute('style')){ff=E[1].style.fontFamily;}if(typeof(ff)!='undefined'&&!ff.match(/Symbol/)){D='ol';}continue;}var E=ns.getElementsByTagName('span'); -if(!E.length){break;}var F=false;for(var i=0;iG){var P=B.createElement(D);if(!I){I=B.createElement('li');H[G].appendChild(I);}I.appendChild(P);H[nlvl]=P;}G=nlvl;if(!H[nlvl].hasAttribute("start")&&D=="ol"){H[nlvl].setAttribute("start",M);}var Q=H[nlvl].appendChild(B.createElement('li')); -I=Q;Q.innerHTML=n.innerHTML;A.removeChild(n);},this);},replaceImageTable:function(A){var B=Array.from(A.getElementsByTagName('img'));Roo.each(B,function(C){var td=C.parentNode;if(td.nodeName!='TD'){return;}var tr=td.parentNode;if(tr.nodeName!='TR'){return; -}var D=tr.parentNode;if(D.nodeName!='TBODY'){return;}var E=D.parentNode;if(E.nodeName!='TABLE'){return;}if(E.getElementsByTagName('tr').length!=2){return;}if(E.getElementsByTagName('td').length!=3){return;}if(E.innerText.trim()!=''){return;}var p=E.parentNode; -C.parentNode.removeChild(C);p.insertBefore(C,E);p.removeChild(E);});}}); +ns=ns.nextSibling;F=true;if(!E.length){continue;}var ff='';var se=E[0];for(var i=0;iG){var P=B.createElement(D);if(!I){I=B.createElement('li');H[G].appendChild(I);}I.appendChild(P);H[nlvl]=P;}G=nlvl;if(!H[nlvl].hasAttribute("start")&&D=="ol"){H[nlvl].setAttribute("start",M); +}var Q=H[nlvl].appendChild(B.createElement('li'));I=Q;Q.innerHTML=n.innerHTML;A.removeChild(n);},this);},replaceImageTable:function(A){var B=Array.from(A.getElementsByTagName('img'));Roo.each(B,function(C){var td=C.parentNode;if(td.nodeName!='TD'){return; +}var tr=td.parentNode;if(tr.nodeName!='TR'){return;}var D=tr.parentNode;if(D.nodeName!='TBODY'){return;}var E=D.parentNode;if(E.nodeName!='TABLE'){return;}if(E.getElementsByTagName('tr').length!=2){return;}if(E.getElementsByTagName('td').length!=3){return; +}if(E.innerText.trim()!=''){return;}var p=E.parentNode;C.parentNode.removeChild(C);p.insertBefore(C,E);p.removeChild(E);});}}); // Roo/htmleditor/FilterStyleToTag.js Roo.htmleditor.FilterStyleToTag=function(A){this.tags={B:['fontWeight','bold'],I:['fontStyle','italic'],SUP:['verticalAlign','super'],SUB:['verticalAlign','sub']};Roo.apply(this,A);this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterStyleToTag,Roo.htmleditor.Filter,{tag:true,tags:false,replaceTag:function(A){if(A.getAttribute("style")===null){return true; }var B=[];for(var k in this.tags){if(A.style[this.tags[k][0]]==this.tags[k][1]){B.push(k);A.style.removeProperty(this.tags[k][0]);}}if(!B.length){return true;}var cn=Array.from(A.childNodes);var nn=A;Roo.each(B,function(t){var nc=A.ownerDocument.createElement(t); diff --git a/roojs-debug.js b/roojs-debug.js index 48099e565d..b2be9abe0a 100644 --- a/roojs-debug.js +++ b/roojs-debug.js @@ -46392,14 +46392,19 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, if (!spans.length) { continue; } - var ff = spans[0].style.fontFamily; - if (!spans[0].hasAttribute('style') && spans.length > 1 && spans[1].hasAttribute('style')) { - - ff = spans[1].style.fontFamily; + var ff = ''; + var se = spans[0]; + for (var i = 0; i < spans.length;i++) { + se = spans[i]; + if (se.hasAttribute('style') && se.hasAttribute('style') && se.style.fontFamily != '') { + ff = se.style.fontFamily; + break; + } } - //var style = this.styleToObject(spans[0]); + + //Roo.log("got font family: " + ff); - if (typeof(ff) != 'undefined' && !ff.match(/Symbol/)) { + if (typeof(ff) != 'undefined' && !ff.match(/(Symbol|Wingdings)/) && "·o".indexOf(se.innerText.trim()) < 0) { listtype = 'ol'; } diff --git a/roojs-ui-debug.js b/roojs-ui-debug.js index 18d040790a..2bf686eb8e 100644 --- a/roojs-ui-debug.js +++ b/roojs-ui-debug.js @@ -21890,14 +21890,19 @@ Roo.extend(Roo.htmleditor.FilterWord, Roo.htmleditor.Filter, if (!spans.length) { continue; } - var ff = spans[0].style.fontFamily; - if (!spans[0].hasAttribute('style') && spans.length > 1 && spans[1].hasAttribute('style')) { - - ff = spans[1].style.fontFamily; + var ff = ''; + var se = spans[0]; + for (var i = 0; i < spans.length;i++) { + se = spans[i]; + if (se.hasAttribute('style') && se.hasAttribute('style') && se.style.fontFamily != '') { + ff = se.style.fontFamily; + break; + } } - //var style = this.styleToObject(spans[0]); + + //Roo.log("got font family: " + ff); - if (typeof(ff) != 'undefined' && !ff.match(/Symbol/)) { + if (typeof(ff) != 'undefined' && !ff.match(/(Symbol|Wingdings)/) && "·o".indexOf(se.innerText.trim()) < 0) { listtype = 'ol'; } diff --git a/roojs-ui.js b/roojs-ui.js index d80413fb9b..687162be47 100644 --- a/roojs-ui.js +++ b/roojs-ui.js @@ -992,14 +992,14 @@ for(var i=0;i1&&E[1].hasAttribute('style')){ff=E[1].style.fontFamily;}if(typeof(ff)!='undefined'&&!ff.match(/Symbol/)){D='ol';}continue;}var E=ns.getElementsByTagName('span'); -if(!E.length){break;}var F=false;for(var i=0;iG){var P=B.createElement(D);if(!I){I=B.createElement('li');H[G].appendChild(I);}I.appendChild(P);H[nlvl]=P;}G=nlvl;if(!H[nlvl].hasAttribute("start")&&D=="ol"){H[nlvl].setAttribute("start",M);}var Q=H[nlvl].appendChild(B.createElement('li')); -I=Q;Q.innerHTML=n.innerHTML;A.removeChild(n);},this);},replaceImageTable:function(A){var B=Array.from(A.getElementsByTagName('img'));Roo.each(B,function(C){var td=C.parentNode;if(td.nodeName!='TD'){return;}var tr=td.parentNode;if(tr.nodeName!='TR'){return; -}var D=tr.parentNode;if(D.nodeName!='TBODY'){return;}var E=D.parentNode;if(E.nodeName!='TABLE'){return;}if(E.getElementsByTagName('tr').length!=2){return;}if(E.getElementsByTagName('td').length!=3){return;}if(E.innerText.trim()!=''){return;}var p=E.parentNode; -C.parentNode.removeChild(C);p.insertBefore(C,E);p.removeChild(E);});}}); +ns=ns.nextSibling;F=true;if(!E.length){continue;}var ff='';var se=E[0];for(var i=0;iG){var P=B.createElement(D);if(!I){I=B.createElement('li');H[G].appendChild(I);}I.appendChild(P);H[nlvl]=P;}G=nlvl;if(!H[nlvl].hasAttribute("start")&&D=="ol"){H[nlvl].setAttribute("start",M); +}var Q=H[nlvl].appendChild(B.createElement('li'));I=Q;Q.innerHTML=n.innerHTML;A.removeChild(n);},this);},replaceImageTable:function(A){var B=Array.from(A.getElementsByTagName('img'));Roo.each(B,function(C){var td=C.parentNode;if(td.nodeName!='TD'){return; +}var tr=td.parentNode;if(tr.nodeName!='TR'){return;}var D=tr.parentNode;if(D.nodeName!='TBODY'){return;}var E=D.parentNode;if(E.nodeName!='TABLE'){return;}if(E.getElementsByTagName('tr').length!=2){return;}if(E.getElementsByTagName('td').length!=3){return; +}if(E.innerText.trim()!=''){return;}var p=E.parentNode;C.parentNode.removeChild(C);p.insertBefore(C,E);p.removeChild(E);});}}); // Roo/htmleditor/FilterStyleToTag.js Roo.htmleditor.FilterStyleToTag=function(A){this.tags={B:['fontWeight','bold'],I:['fontStyle','italic'],SUP:['verticalAlign','super'],SUB:['verticalAlign','sub']};Roo.apply(this,A);this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterStyleToTag,Roo.htmleditor.Filter,{tag:true,tags:false,replaceTag:function(A){if(A.getAttribute("style")===null){return true; }var B=[];for(var k in this.tags){if(A.style[this.tags[k][0]]==this.tags[k][1]){B.push(k);A.style.removeProperty(this.tags[k][0]);}}if(!B.length){return true;}var cn=Array.from(A.childNodes);var nn=A;Roo.each(B,function(t){var nc=A.ownerDocument.createElement(t); -- 2.39.2