X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6a7e4474cba9d8be4b2ec445e10f1691f7277c50..6b044c28b5f26fb99c86c237ffad19741c0f7f3d:/src/widgets/form/HtmlEditor.js?ds=inline diff --git a/src/widgets/form/HtmlEditor.js b/src/widgets/form/HtmlEditor.js index c9367504..20e1f91a 100644 --- a/src/widgets/form/HtmlEditor.js +++ b/src/widgets/form/HtmlEditor.js @@ -1,8 +1,8 @@ /*! - * Ext JS Library 3.2.0 - * Copyright(c) 2006-2010 Ext JS, Inc. - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ /** * @class Ext.form.HtmlEditor @@ -174,6 +174,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { */ 'editmodechange' ); + Ext.form.HtmlEditor.superclass.initComponent.call(this); }, // private @@ -378,7 +379,11 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { Ext.form.HtmlEditor.superclass.setReadOnly.call(this, readOnly); if(this.initialized){ - this.setDesignMode(!readOnly); + if(Ext.isIE){ + this.getEditorBody().contentEditable = !readOnly; + }else{ + this.setDesignMode(!readOnly); + } var bd = this.getEditorBody(); if(bd){ bd.style.cursor = this.readOnly ? 'default' : 'text'; @@ -448,6 +453,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { iframe.name = Ext.id(); iframe.frameBorder = '0'; iframe.style.overflow = 'auto'; + iframe.src = Ext.SSL_SECURE_URL; this.wrap.dom.appendChild(iframe); this.iframe = iframe; @@ -501,8 +507,8 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { * set current design mode. To enable, mode can be true or 'on', off otherwise */ setDesignMode : function(mode){ - var doc ; - if(doc = this.getDoc()){ + var doc = this.getDoc(); + if (doc) { if(this.readOnly){ mode = false; } @@ -557,22 +563,24 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { * @param {Boolean} sourceEdit (optional) True for source edit, false for standard */ toggleSourceEdit : function(sourceEditMode){ - var iframeHeight, elHeight; - if(sourceEditMode === undefined){ + var iframeHeight, + elHeight; + + if (sourceEditMode === undefined) { sourceEditMode = !this.sourceEditMode; } this.sourceEditMode = sourceEditMode === true; var btn = this.tb.getComponent('sourceedit'); - if(btn.pressed !== this.sourceEditMode){ + if (btn.pressed !== this.sourceEditMode) { btn.toggle(this.sourceEditMode); - if(!btn.xtbHidden){ + if (!btn.xtbHidden) { return; } } - if(this.sourceEditMode){ + if (this.sourceEditMode) { // grab the height of the containing panel before we hide the iframe - ls = this.getSize(); + this.previousSize = this.getSize(); iframeHeight = Ext.get(this.iframe).getHeight(); @@ -583,9 +591,10 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { this.el.dom.removeAttribute('tabIndex'); this.el.focus(); this.el.dom.style.height = iframeHeight + 'px'; - }else{ + } + else { elHeight = parseInt(this.el.dom.style.height, 10); - if(this.initialized){ + if (this.initialized) { this.disableItems(this.readOnly); } this.pushValue(); @@ -594,14 +603,15 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { this.el.dom.setAttribute('tabIndex', -1); this.deferFocus(); - this.setSize(ls); + this.setSize(this.previousSize); + delete this.previousSize; this.iframe.style.height = elHeight + 'px'; } this.fireEvent('editmodechange', this, this.sourceEditMode); }, // private used internally - createLink : function(){ + createLink : function() { var url = prompt(this.createLinkText, this.defaultLinkValue); if(url && url != 'http:/'+'/'){ this.relayCmd('createlink', url); @@ -699,9 +709,8 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { if(Ext.isGecko){ // Gecko hack, see: https://bugzilla.mozilla.org/show_bug.cgi?id=232791#c8 this.setDesignMode(false); //toggle off first - + this.setDesignMode(true); } - this.setDesignMode(true); this.fireEvent('push', this, v); } @@ -774,7 +783,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { }, // private - onDestroy : function(){ + beforeDestroy : function(){ if(this.monitorTask){ Ext.TaskMgr.stop(this.monitorTask); } @@ -794,12 +803,7 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { this.wrap.remove(); } } - - if(this.el){ - this.el.removeAllListeners(); - this.el.remove(); - } - this.purgeListeners(); + Ext.form.HtmlEditor.superclass.beforeDestroy.call(this); }, // private @@ -1256,4 +1260,4 @@ Ext.form.HtmlEditor = Ext.extend(Ext.form.Field, { * @hide */ }); -Ext.reg('htmleditor', Ext.form.HtmlEditor); \ No newline at end of file +Ext.reg('htmleditor', Ext.form.HtmlEditor);