From 60631b51d5921085aca39ec1a38100bbd2163bd2 Mon Sep 17 00:00:00 2001 From: Alan Date: Wed, 8 Feb 2023 14:28:27 +0800 Subject: [PATCH] supporting multiple bullet point styles --- Roo/htmleditor/FilterWord.js | 17 +++++++++++------ roojs-bootstrap-debug.js | 17 +++++++++++------ roojs-bootstrap.js | 16 ++++++++-------- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/Roo/htmleditor/FilterWord.js b/Roo/htmleditor/FilterWord.js index a1705af2cb..ac7fe90131 100644 --- a/Roo/htmleditor/FilterWord.js +++ b/Roo/htmleditor/FilterWord.js @@ -246,14 +246,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-bootstrap-debug.js b/roojs-bootstrap-debug.js index 53c7e277fa..ee55272267 100644 --- a/roojs-bootstrap-debug.js +++ b/roojs-bootstrap-debug.js @@ -27225,14 +27225,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-bootstrap.js b/roojs-bootstrap.js index 95636ede3d..6fb2fa9e88 100644 --- a/roojs-bootstrap.js +++ b/roojs-bootstrap.js @@ -1194,14 +1194,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