From 068e69c2ed335ee6b7a1a58dd3a95646c47987df Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 4 Sep 2014 15:30:18 +0200 Subject: [PATCH] [FIX] website.editor: need to set the range on start because the browser can be lost the caret and can't insert the media in the page. --- addons/website/static/src/js/website.editor.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/addons/website/static/src/js/website.editor.js b/addons/website/static/src/js/website.editor.js index 0bf62a0df59..43411f404a9 100644 --- a/addons/website/static/src/js/website.editor.js +++ b/addons/website/static/src/js/website.editor.js @@ -1270,6 +1270,11 @@ start: function () { var self = this; + if (this.editor.getSelection) { + var selection = this.editor.getSelection(); + this.range = selection.getRanges(true)[0]; + } + this.imageDialog = new website.editor.RTEImageDialog(this, this.editor, this.media); this.imageDialog.appendTo(this.$("#editor-media-image")); this.iconDialog = new website.editor.FontIconsDialog(this, this.editor, this.media); @@ -1323,11 +1328,9 @@ this.videoDialog.clear(); } } else { - var selection = this.editor.getSelection(); - var range = selection.getRanges(true)[0]; this.media = new CKEDITOR.dom.element("img"); - range.insertNode(this.media); - range.selectNodeContents(this.media); + self.range.insertNode(this.media); + self.range.selectNodeContents(this.media); this.active.media = this.media; } @@ -1338,6 +1341,7 @@ this.media.$.className = this.media.$.className.replace(/\s+/g, ' '); setTimeout(function () { + if(self.range) self.range.select(); $el.trigger("saved", self.active.media.$); $(document.body).trigger("media-saved", [$el[0], self.active.media.$]); },0);