roojs-all.js
authorAlan Knowles <alan@akbkhome.com>
Mon, 30 Aug 2010 08:47:51 +0000 (16:47 +0800)
committerAlan Knowles <alan@akbkhome.com>
Mon, 30 Aug 2010 08:47:51 +0000 (16:47 +0800)
roojs-all.js

index 9bc7cc1..d5d33c9 100644 (file)
@@ -704,7 +704,7 @@ a.push(this.doc.body);return a;},lastSel:false,lastSelNode:false,getSelection:fu
 B=B.parentElement;}return B;}var ar=A.endContainer.childNodes;if(!ar.length){ar=A.commonAncestorContainer.childNodes;}var D=[];var E=[];var F=false;for(var i=0;i<ar.length;i++){if((ar[i].nodeType==3)&&(!ar[i].data.length)){continue;}if(this.rangeIntersectsNode(A,ar[i])&&this.rangeCompareNode(A,ar[i])==3){D.push(ar[i]);continue;}if((ar[i].nodeType==1)&&this.rangeIntersectsNode(A,ar[i])&&(this.rangeCompareNode(A,ar[i])>0)){E.push(ar[i]);continue;}if(!this.rangeIntersectsNode(A,ar[i])||(this.rangeCompareNode(A,ar[i])==0)){continue;}
 F=true;}if(!D.length&&E.length){D=E;}if(F||!D.length||(D.length>1)){return false;}return D[0];},createRange:function(A){if(typeof A!="undefined"){try{return A.getRangeAt?A.getRangeAt(0):A.createRange();}catch(e){return this.doc.createRange();}}else {return this.doc.createRange();}},getParentElement:function(){this.assignDocWin();var A=Roo.isIE?this.doc.selection:this.win.getSelection();var B=this.createRange(A);try{var p=B.commonAncestorContainer;while(p.nodeType==3){p=p.parentNode;}return p;}catch(e){return null;}},rangeIntersectsNode:function(A,B){var C=B.ownerDocument.createRange();try{C.selectNode(B);}catch(e){nodeRange.selectNodeContents(node);}return A.compareBoundaryPoints(Range.END_TO_START,C)==-1&&A.compareBoundaryPoints(Range.START_TO_END,C)==1;},rangeCompareNode:function(A,B){var C=B.ownerDocument.createRange();try{C.selectNode(B);}catch(e){nodeRange.selectNodeContents(node);}var D=A.compareBoundaryPoints(Range.START_TO_START,C)==1;var E=A.compareBoundaryPoints(Range.END_TO_END,C)==-1;if(D&&!E)return 0;if(!D&&E)return 1;if(D&&E)return 2;return 3;},cleanUpPaste:function(){this.cleanUpChildren(this.doc.body)},cleanUpChildren:function(n){if(!n.childNodes.length){return;}for(var i=n.childNodes.length-1;i>-1;i--){this.cleanUpChild(n.childNodes[i]);}},cleanUpChild:function(A){if(A.nodeName=="#text"){return;}if(Roo.form.HtmlEditor.black.indexOf(A.tagName.toLowerCase())>-1){A.parentNode.removeChild(A);return;}if(!A.attributes||!A.attributes.length){this.cleanUpChildren(A);return;}function cleanAttr(n,v){if(v.match(/^\./)||v.match(/^\//)){return;}if(v.match(/^(http|https):\/\//)||v.match(/^mailto:/)){return;}
 Roo.log("(REMOVE)"+A.tagName+'.'+n+'='+v);A.removeAttribute(n);}function cleanStyle(n,v){if(v.match(/expression/)){A.removeAttribute(n);return;}var B=v.split(/;/);Roo.each(B,function(p){p=p.replace(/\s+/g,'');if(!p.length){return;}var l=p.split(':').shift().replace(/\s+/g,'');if(Roo.form.HtmlEditor.cwhite.indexOf(l)<0){Roo.log('(REMOVE)'+A.tagName+'.'+n+':'+l+'='+v);A.removeAttribute(n);return false;}});}for(var i=A.attributes.length-1;i>-1;i--){var a=A.attributes[i];if(Roo.form.HtmlEditor.ablack.indexOf(a.name.toLowerCase())>-1){A.removeAttribute(a.name);return;}if(Roo.form.HtmlEditor.aclean.indexOf(a.name.toLowerCase())>-1){cleanAttr(a.name,a.value);return;}if(a.name=='style'){cleanStyle(a.name,a.value);}}
-this.cleanUpChildren(A);}});Roo.form.HtmlEditor.white=['area','br','img','input','hr','wbr','address','blockquote','center','dd','dir','div','dl','dt','h1','h2','h3','h4','h5','h6','hr','isindex','listing','marquee','menu','multicol','ol','p','plaintext','pre','table','ul','xmp','caption','col','colgroup','tbody','td','tfoot','th','thead','tr','dir','menu','ol','ul','dl'];Roo.form.HtmlEditor.black=['embed','object','applet','base','basefont','bgsound','blink','body','frame','frameset','head','html','ilayer','iframe','layer','link','meta','object','script','style','title','xml'];Roo.form.HtmlEditor.clean=['script','style','title','xml'];Roo.form.HtmlEditor.ablack=['on']Roo.form.HtmlEditor.aclean=['action','background','codebase','dynsrc','href','lowsrc'];Roo.form.HtmlEditor.pwhite=['http','https','mailto'];Roo.form.HtmlEditor.cwhite=['text-align','font-size'];
+this.cleanUpChildren(A);}});Roo.form.HtmlEditor.white=['area','br','img','input','hr','wbr','address','blockquote','center','dd','dir','div','dl','dt','h1','h2','h3','h4','h5','h6','hr','isindex','listing','marquee','menu','multicol','ol','p','plaintext','pre','table','ul','xmp','caption','col','colgroup','tbody','td','tfoot','th','thead','tr','dir','menu','ol','ul','dl'];Roo.form.HtmlEditor.black=['embed','object','applet','base','basefont','bgsound','blink','body','frame','frameset','head','html','ilayer','iframe','layer','link','meta','object','script','style','title','xml'];Roo.form.HtmlEditor.clean=['script','style','title','xml'];Roo.form.HtmlEditor.ablack=['on'];Roo.form.HtmlEditor.aclean=['action','background','codebase','dynsrc','href','lowsrc'];Roo.form.HtmlEditor.pwhite=['http','https','mailto'];Roo.form.HtmlEditor.cwhite=['text-align','font-size'];
 Roo.form.HtmlEditor.ToolbarStandard=function(A){Roo.apply(this,A);}
 Roo.apply(Roo.form.HtmlEditor.ToolbarStandard.prototype,{tb:false,rendered:false,editor:false,disable:false,fontFamilies:['Arial','Courier New','Tahoma','Times New Roman','Verdana'],specialChars:["&#169;","&#174;","&#8482;","&#163;","&#8230;","&#247;","&#8364;","&#176;"],inputElements:["form","input:text","input:hidden","input:checkbox","input:radio","input:password","input:submit","input:button","select","textarea","label"],formats:[["p"],["h1"],["h2"],["h3"],["h4"],["h5"],["h6"],["pre"],["code"],["abbr"],["acronym"],["address"],["cite"],["samp"],["var"]],defaultFont:'tahoma',fontSelect:false,formatCombo:false,init:function(A){this.editor=A;var B=A.frameId;var C=this;function btn(id,E,F){var G=B+'-'+id;return {id:G,cmd:id,cls:'x-btn-icon x-edit-'+id,enableToggle:E!==false,scope:A,handler:F||A.relayBtnCmd,clickEvent:'mousedown',tooltip:C.buttonTips[id]||undefined,tabIndex:-1};}var tb=new Roo.Toolbar(A.wrap.dom.firstChild);this.tb=tb;tb.el.on('click',function(e){e.preventDefault();});if(!this.disable.font&&!Roo.isSafari){};if(!this.disable.formats){this.formatCombo=new Roo.form.ComboBox({store:new Roo.data.SimpleStore({id:'tag',fields:['tag'],data:this.formats}),blockFocus:true,displayField:'tag',typeAhead:false,mode:'local',editable:false,triggerAction:'all',emptyText:'Add tag',selectOnFocus:true,width:135,listeners:{'select':function(c,r,i){A.insertTag(r.get('tag'));A.focus();}}});tb.addField(this.formatCombo);}if(!this.disable.format){tb.add(btn('bold'),btn('italic'),btn('underline'));};if(!this.disable.fontSize){tb.add('-',btn('increasefontsize',false,A.adjustFont),btn('decreasefontsize',false,A.adjustFont));};if(this.disable.colors){tb.add('-',{id:A.frameId+'-forecolor',cls:'x-btn-icon x-edit-forecolor',clickEvent:'mousedown',tooltip:this.buttonTips['forecolor']||undefined,tabIndex:-1,menu:new Roo.menu.ColorMenu({allowReselect:true,focus:Roo.emptyFn,value:'000000',plain:true,selectHandler:function(cp,E){A.execCmd('forecolor',Roo.isSafari||Roo.isIE?'#'+E:E);A.deferFocus();},scope:A,clickEvent:'mousedown'})},{id:A.frameId+'backcolor',cls:'x-btn-icon x-edit-backcolor',clickEvent:'mousedown',tooltip:this.buttonTips['backcolor']||undefined,tabIndex:-1,menu:new Roo.menu.ColorMenu({focus:Roo.emptyFn,value:'FFFFFF',plain:true,allowReselect:true,selectHandler:function(cp,E){if(Roo.isGecko){A.execCmd('useCSS',false);A.execCmd('hilitecolor',E);A.execCmd('useCSS',true);A.deferFocus();}else {A.execCmd(Roo.isOpera?'hilitecolor':'backcolor',Roo.isSafari||Roo.isIE?'#'+E:E);A.deferFocus();}},scope:A,clickEvent:'mousedown'})});};if(!this.disable.alignments){tb.add('-',btn('justifyleft'),btn('justifycenter'),btn('justifyright'));};if(!this.disable.links){tb.add('-',btn('createlink',false,A.createLink));};if(!this.disable.lists){tb.add('-',btn('insertorderedlist'),btn('insertunorderedlist'));}if(!this.disable.sourceEdit){tb.add('-',btn('sourceedit',true,function(E){this.toggleSourceEdit(E.pressed);}));}var D={};if(!this.disable.special){D={text:"&#169;",cls:'x-edit-none',menu:{items:[]}};for(var i=0;i<this.specialChars.length;i++){D.menu.items.push({html:this.specialChars[i],handler:function(a,b){A.insertAtCursor(String.fromCharCode(a.html.replace('&#','').replace(';','')));},tabIndex:-1});}
 tb.add(D);}if(this.btns){for(var i=0;i<this.btns.length;i++){var b=this.btns[i];b.cls='x-edit-none';b.scope=A;tb.add(b);}}