From: Alan Knowles Date: Tue, 14 Feb 2012 07:20:43 +0000 (+0800) Subject: roojs-ui.js X-Git-Url: http://git.roojs.org/?a=commitdiff_plain;h=979163237504353120aaea656f6cff66d87af63c;p=roojs1 roojs-ui.js roojs-ui.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui-debug.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js roojs-ui.js --- diff --git a/roojs-ui-debug.js b/roojs-ui-debug.js index 9cf0a8663c..a3861344ab 100644 --- a/roojs-ui-debug.js +++ b/roojs-ui-debug.js @@ -24803,10 +24803,29 @@ Roo.form.HtmlEditor = Roo.extend(Roo.form.Field, { r.pasteHTML(text); this.syncValue(); this.deferFocus(); + } - }else if(Roo.isGecko || Roo.isOpera || Roo.isSafari){ + return; + } + + if(Roo.isGecko || Roo.isOpera || Roo.isSafari){ this.win.focus(); - this.execCmd('InsertHTML', text); + + + // from jquery ui (MIT licenced) + var range, node; + var win = this.win; + if (win.getSelection && win.getSelection().getRangeAt) { + range = win.getSelection().getRangeAt(0); + node = range.createContextualFragment(text); + range.insertNode(node); + } else if (win.document.selection && win.document.selection.createRange) { + win.document.selection.createRange().pasteHTML(text); + } else { + this.execCmd('InsertHTML', text); + } + + this.deferFocus(); } }, diff --git a/roojs-ui.js b/roojs-ui.js index dd79dee7ea..b7820fc1ed 100644 --- a/roojs-ui.js +++ b/roojs-ui.js @@ -557,7 +557,7 @@ this.doc=(A.contentDocument||Roo.get(this.frameId).dom.document);this.win=Roo.ge this.initialized=true;this.fireEvent('initialize',this);this.pushValue();},onDestroy:function(){if(this.rendered){for(var i=0;i48)?48:v;v=typeof(sm[v])=='undefined'?1:sm[v];} -v=Math.max(1,v+B);this.execCmd('FontSize',v);},onEditorEvent:function(e){this.fireEvent('editorevent',this,e);this.syncValue();},insertTag:function(tg){this.execCmd("formatblock",tg);},insertText:function(A){range=this.createRange();range.deleteContents();range.insertNode(this.doc.createTextNode(A));},relayBtnCmd:function(A){this.relayCmd(A.cmd);},relayCmd:function(A,B){this.win.focus();this.execCmd(A,B);this.fireEvent('editorevent',this);this.deferFocus();},execCmd:function(A,B){this.doc.execCommand(A,false,B===undefined?null:B);this.syncValue();},insertAtCursor:function(A){if(!this.activated){return;}if(Roo.isIE){this.win.focus();var r=this.doc.selection.createRange();if(r){r.collapse(true);r.pasteHTML(A);this.syncValue();this.deferFocus();}}else if(Roo.isGecko||Roo.isOpera||Roo.isSafari){this.win.focus();this.execCmd('InsertHTML',A);this.deferFocus();}},mozKeyPress:function(e){if(e.ctrlKey){var c=e.getCharCode(),A;if(c>0){c=String.fromCharCode(c).toLowerCase();switch(c){case 'b':A='bold';break;case 'i':A='italic';break;case 'u':A='underline';break;case 'v':this.cleanUpPaste.defer(100,this);return;break;}if(A){this.win.focus();this.execCmd(A);this.deferFocus();e.preventDefault();}}}},fixKeys:function(){if(Roo.isIE){return function(e){var k=e.getKey(),r;if(k==e.TAB){e.stopEvent();r=this.doc.selection.createRange();if(r){r.collapse(true);r.pasteHTML('    ');this.deferFocus();}return;}if(k==e.ENTER){r=this.doc.selection.createRange();if(r){var A=r.parentElement();if(!A||A.tagName.toLowerCase()!='li'){e.stopEvent();r.pasteHTML('
');r.collapse(false);r.select();}}}if(String.fromCharCode(k).toLowerCase()=='v'){this.cleanUpPaste.defer(100,this);return;}};}else if(Roo.isOpera){return function(e){var k=e.getKey();if(k==e.TAB){e.stopEvent();this.win.focus();this.execCmd('InsertHTML','    ');this.deferFocus();}if(String.fromCharCode(k).toLowerCase()=='v'){this.cleanUpPaste.defer(100,this);return;}};}else if(Roo.isSafari){return function(e){var k=e.getKey();if(k==e.TAB){e.stopEvent();this.execCmd('InsertText','\t');this.deferFocus();return;}if(String.fromCharCode(k).toLowerCase()=='v'){this.cleanUpPaste.defer(100,this);return;}};}}(),getAllAncestors:function(){var p=this.getSelectedNode();var a=[];if(!p){a.push(p);p=this.getParentElement();}while(p&&(p.nodeType==1)&&(p.tagName.toLowerCase()!='body')){a.push(p);p=p.parentNode;} +v=Math.max(1,v+B);this.execCmd('FontSize',v);},onEditorEvent:function(e){this.fireEvent('editorevent',this,e);this.syncValue();},insertTag:function(tg){this.execCmd("formatblock",tg);},insertText:function(A){range=this.createRange();range.deleteContents();range.insertNode(this.doc.createTextNode(A));},relayBtnCmd:function(A){this.relayCmd(A.cmd);},relayCmd:function(A,B){this.win.focus();this.execCmd(A,B);this.fireEvent('editorevent',this);this.deferFocus();},execCmd:function(A,B){this.doc.execCommand(A,false,B===undefined?null:B);this.syncValue();},insertAtCursor:function(A){if(!this.activated){return;}if(Roo.isIE){this.win.focus();var r=this.doc.selection.createRange();if(r){r.collapse(true);r.pasteHTML(A);this.syncValue();this.deferFocus();}return;}if(Roo.isGecko||Roo.isOpera||Roo.isSafari){this.win.focus();var B,C;var D=this.win;if(D.getSelection&&D.getSelection().getRangeAt){B=D.getSelection().getRangeAt(0);C=B.createContextualFragment(A);B.insertNode(C);}else if(D.document.selection&&D.document.selection.createRange){D.document.selection.createRange().pasteHTML(A);}else {this.execCmd('InsertHTML',A);}this.deferFocus();}},mozKeyPress:function(e){if(e.ctrlKey){var c=e.getCharCode(),A;if(c>0){c=String.fromCharCode(c).toLowerCase();switch(c){case 'b':A='bold';break;case 'i':A='italic';break;case 'u':A='underline';break;case 'v':this.cleanUpPaste.defer(100,this);return;break;}if(A){this.win.focus();this.execCmd(A);this.deferFocus();e.preventDefault();}}}},fixKeys:function(){if(Roo.isIE){return function(e){var k=e.getKey(),r;if(k==e.TAB){e.stopEvent();r=this.doc.selection.createRange();if(r){r.collapse(true);r.pasteHTML('    ');this.deferFocus();}return;}if(k==e.ENTER){r=this.doc.selection.createRange();if(r){var A=r.parentElement();if(!A||A.tagName.toLowerCase()!='li'){e.stopEvent();r.pasteHTML('
');r.collapse(false);r.select();}}}if(String.fromCharCode(k).toLowerCase()=='v'){this.cleanUpPaste.defer(100,this);return;}};}else if(Roo.isOpera){return function(e){var k=e.getKey();if(k==e.TAB){e.stopEvent();this.win.focus();this.execCmd('InsertHTML','    ');this.deferFocus();}if(String.fromCharCode(k).toLowerCase()=='v'){this.cleanUpPaste.defer(100,this);return;}};}else if(Roo.isSafari){return function(e){var k=e.getKey();if(k==e.TAB){e.stopEvent();this.execCmd('InsertText','\t');this.deferFocus();return;}if(String.fromCharCode(k).toLowerCase()=='v'){this.cleanUpPaste.defer(100,this);return;}};}}(),getAllAncestors:function(){var p=this.getSelectedNode();var a=[];if(!p){a.push(p);p=this.getParentElement();}while(p&&(p.nodeType==1)&&(p.tagName.toLowerCase()!='body')){a.push(p);p=p.parentNode;} a.push(this.doc.body);return a;},lastSel:false,lastSelNode:false,getSelection:function(){this.assignDocWin();return Roo.isIE?this.doc.selection:this.win.getSelection();},getSelectedNode:function(){var A=this.createRange(this.getSelection()).cloneRange();if(Roo.isIE){var B=A.parentElement();while(true){var C=A.duplicate();C.moveToElementText(B);if(C.inRange(A)){break;}if((B.nodeType!=1)||(B.tagName.toLowerCase()=='body')){break;} B=B.parentElement;}return B;}var ac=A.commonAncestorContainer;if(ac.nodeType==3){ac=ac.parentNode;}var ar=ac.childNodes;var D=[];var E=[];var F=false;for(var i=0;i0)){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);}var D=A.cloneRange();D.collapse(true);var E=A.cloneRange();E.collapse(false);var F=C.cloneRange();F.collapse(true);var G=C.cloneRange();G.collapse(false);return D.compareBoundaryPoints(Range.START_TO_START,G)==-1&&E.compareBoundaryPoints(Range.START_TO_START,F)==1;},rangeCompareNode:function(A,B){var C=B.ownerDocument.createRange();try{C.selectNode(B);}catch(e){nodeRange.selectNodeContents(node);}