summaryrefslogtreecommitdiff
path: root/addons/website/static/src/js/summernote.js
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@odoo.com>2015-03-24 12:06:34 +0100
committerChristophe Matthieu <chm@odoo.com>2015-03-24 16:24:33 +0100
commit96b33cdbcefcc6e656994a83534213cb6e87ca1c (patch)
tree76ff752d66d0da37f046a1ff60f9ac0ba1b56bf1 /addons/website/static/src/js/summernote.js
parent35aa5c31d1f7f5afab771438cec891ca0310ad2e (diff)
[FIX] website summernote: sould not delete de tag container when select all text inside (although there are several selected child nodes)
Diffstat (limited to 'addons/website/static/src/js/summernote.js')
-rw-r--r--addons/website/static/src/js/summernote.js32
1 files changed, 12 insertions, 20 deletions
diff --git a/addons/website/static/src/js/summernote.js b/addons/website/static/src/js/summernote.js
index 9491f3c95c0..919ea66845d 100644
--- a/addons/website/static/src/js/summernote.js
+++ b/addons/website/static/src/js/summernote.js
@@ -504,7 +504,7 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
if (sc.tagName) {
sc = sc.childNodes[so] || dom.firstChild(ec);
so = 0;
- if (!dom.hasContentBefore(sc)) {
+ if (!dom.hasContentBefore(sc) && towrite) {
sc.parentNode.insertBefore(document.createTextNode('\u00A0'), sc);
}
}
@@ -524,12 +524,7 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
};
}
- if (dom.isEditable(ancestor)) {
- sc = $("<br/>")[0];
- so = 0;
- $(ancestor).html(sc);
-
- } else if (ancestor.tagName) {
+ if (ancestor.tagName) {
var ancestor_sc = sc;
var ancestor_ec = ec;
while (ancestor !== ancestor_sc && ancestor !== ancestor_sc.parentNode) { ancestor_sc = ancestor_sc.parentNode; }
@@ -564,18 +559,19 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
sc = before ? dom.lastChild(before) : dom.firstChild(after);
so = sc.textContent.length;
- if (before) {
- var text = sc.textContent.replace(/[ \t\n\r]+$/, '\u00A0');
- so -= sc.textContent.length - text.length;
- sc.textContent = text;
- }
if (towrite && !node.firstChild && node.parentNode && !dom.isNotBreakable(node)) {
- var br = $("<br/>")[0];
+ sc = $("<br/>")[0];
+ so = 0;
node.appendChild(br);
- sc = br;
+ } else if (!ancestor.children.length && !ancestor.textContent.match(/\S|\u00A0/)) {
+ sc = $("<br/>")[0];
so = 0;
+ $(ancestor).prepend(sc);
+ } else if (before) {
+ var text = sc.textContent.replace(/[ \t\n\r]+$/, '\u00A0');
+ so -= sc.textContent.length - text.length;
+ sc.textContent = text;
}
- dom.autoMerge(sc, false);
} else {
@@ -711,7 +707,7 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
(nodeName === "SPAN" && (
node.className.match(/(^|\s)fa(\s|$)/i) ||
node.className.match(/(^|\s)(text|bg)-/i) ||
- (node.attributes.style && node.attributes.style.value.match(/(^|\s)(color|background-color):/i)))) );
+ (node.attributes.style && node.attributes.style.value.match(/(^|\s)(color|background-color|font-size):/i)))) );
};
dom.isVisibleText = function (textNode) {
return !!textNode.textContent.match(/\S|\u00A0/);
@@ -1165,8 +1161,6 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
}
r = r.deleteContents();
r.select();
- event.preventDefault();
- return false;
}
var target = r.ec;
@@ -1291,8 +1285,6 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
}
r = r.deleteContents();
r.select();
- event.preventDefault();
- return false;
}
var target = r.sc;