[FIX] web_editor: fix image deletion and replacement
Deleting/replacing an image through summernote gave unexpected results. As modifiying the related function may be tricky, this commit instead wrap them to solve the specific erratic behavior: if the range is in/ matches an image, then simply remove the image and move the cursor to its previous location.
This commit is contained in:
@@ -953,15 +953,21 @@ range.WrappedRange.prototype.deleteContents = function (towrite) {
|
||||
return this;
|
||||
}
|
||||
|
||||
var prevBP = dom.removeBetween(this.sc, this.so, this.ec, this.eo, towrite);
|
||||
var r;
|
||||
var image = this.isOnImg();
|
||||
if (image) {
|
||||
// If the range matches/is in an image, then the image is to be removed
|
||||
// and the cursor moved to its previous position
|
||||
var parentNode = image.parentNode;
|
||||
var index = _.indexOf(parentNode.childNodes, image);
|
||||
parentNode.removeChild(image);
|
||||
r = new range.WrappedRange(parentNode, index, parentNode, index);
|
||||
} else {
|
||||
r = dom.removeBetween(this.sc, this.so, this.ec, this.eo, towrite);
|
||||
}
|
||||
|
||||
$(dom.node(prevBP.sc)).trigger("click"); // trigger click to disable and reanable editor and image handler
|
||||
return new range.WrappedRange(
|
||||
prevBP.sc,
|
||||
prevBP.so,
|
||||
prevBP.ec,
|
||||
prevBP.eo
|
||||
);
|
||||
$(dom.node(r.sc)).trigger("click"); // trigger click to disable and reanable editor and image handler
|
||||
return new range.WrappedRange(r.sc, r.so, r.ec, r.eo);
|
||||
};
|
||||
range.WrappedRange.prototype.clean = function (mergeFilter, all) {
|
||||
var node = dom.node(this.sc === this.ec ? this.sc : this.commonAncestor());
|
||||
|
||||
Reference in New Issue
Block a user