diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3819313 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.swp +*.swo diff --git a/src/Ext.ux.form.HtmlEditor.Link.js b/src/Ext.ux.form.HtmlEditor.Link.js index 60f287a..d105037 100644 --- a/src/Ext.ux.form.HtmlEditor.Link.js +++ b/src/Ext.ux.form.HtmlEditor.Link.js @@ -73,6 +73,7 @@ Ext.ux.form.HtmlEditor.Link = Ext.extend(Ext.util.Observable, { buttons: [{ text: this.langInsert, handler: function(){ + //TODO: not having new idx's for the component could cause issues around multiple edit areas var frm = this.linkWindow.getComponent('insert-link').getForm(); if (frm.isValid()) { var afterSpace = '', sel = this.cmp.getSelectedText(true), text = frm.findField('text').getValue(), url = frm.findField('url').getValue(), target = frm.findField('target').getValue(); @@ -83,9 +84,10 @@ Ext.ux.form.HtmlEditor.Link = Ext.extend(Ext.util.Observable, { if (sel.hasHTML) { text = sel.html; } - var html = '' + text + '' + afterSpace; + var html = '' + text + ' ' + afterSpace; this.cmp.insertAtCursor(html); - this.linkWindow.hide(); + this.linkWindow.close(); + this.linkWindow = null; } else { if (!frm.findField('url').isValid()) { frm.findField('url').getEl().frame(); @@ -93,13 +95,13 @@ Ext.ux.form.HtmlEditor.Link = Ext.extend(Ext.util.Observable, { frm.findField('target').getEl().frame(); } } - }, scope: this }, { text: this.langCancel, handler: function(){ this.linkWindow.close(); + this.linkWindow = null; }, scope: this }], @@ -108,7 +110,7 @@ Ext.ux.form.HtmlEditor.Link = Ext.extend(Ext.util.Observable, { fn: function(){ var frm = this.linkWindow.getComponent('insert-link').getForm(); frm.findField('text').setValue(sel.textContent).setDisabled(sel.hasHTML); - frm.findField('url').reset().focus(true, 50); + frm.findField('url').focus(true, 50); }, scope: this, defer: 350 diff --git a/src/Ext.ux.form.HtmlEditor.MidasCommand.js b/src/Ext.ux.form.HtmlEditor.MidasCommand.js index cb2894c..a32ea59 100644 --- a/src/Ext.ux.form.HtmlEditor.MidasCommand.js +++ b/src/Ext.ux.form.HtmlEditor.MidasCommand.js @@ -29,6 +29,7 @@ Ext.override(Ext.form.HtmlEditor, { } else { selDocFrag = this.win.getSelection().getRangeAt(0).cloneContents(); } + Ext.each(selDocFrag.childNodes, function(n){ if (n.nodeType !== 3) { hasHTML = true; @@ -42,6 +43,10 @@ Ext.override(Ext.form.HtmlEditor, { } else { html = txt = selDocFrag.textContent; } + if (clip) { + //selection range sticks around unless you collapse it. + sel.collapseToStart(); + } ret = { textContent: txt, hasHTML: hasHTML,