summaryrefslogtreecommitdiff
path: root/addons/website/static/lib/summernote/src
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@odoo.com>2014-12-17 10:33:16 +0100
committerChristophe Matthieu <chm@odoo.com>2015-01-05 10:17:10 +0100
commit685d447892c4b2d6548c7e09fda9d4bd4ae5b5b9 (patch)
tree13023d717027264673aa5f34e9d72957882b1136 /addons/website/static/lib/summernote/src
parent1596e45e8174cd736d4f7c78f85ec76a8e34888d (diff)
[IMP] summernote: change lib for overwrite method
Diffstat (limited to 'addons/website/static/lib/summernote/src')
-rw-r--r--addons/website/static/lib/summernote/src/js/EventHandler.js20
-rw-r--r--addons/website/static/lib/summernote/src/js/Renderer.js15
-rw-r--r--addons/website/static/lib/summernote/src/js/core/range.js87
-rw-r--r--addons/website/static/lib/summernote/src/js/editing/Editor.js5
-rw-r--r--addons/website/static/lib/summernote/src/js/module/Popover.js2
-rw-r--r--addons/website/static/lib/summernote/src/js/module/Toolbar.js2
-rw-r--r--addons/website/static/lib/summernote/src/js/summernote.js10
7 files changed, 96 insertions, 45 deletions
diff --git a/addons/website/static/lib/summernote/src/js/EventHandler.js b/addons/website/static/lib/summernote/src/js/EventHandler.js
index 5660b633509..2dba3357d06 100644
--- a/addons/website/static/lib/summernote/src/js/EventHandler.js
+++ b/addons/website/static/lib/summernote/src/js/EventHandler.js
@@ -248,6 +248,13 @@ define([
}
};
+ this.commands = commands; // odoo change for overwrite
+ this.editor = editor; // odoo change for overwrite
+ this.toolbar = toolbar; // odoo change for overwrite
+ this.popover = popover; // odoo change for overwrite
+ this.handle = handle; // odoo change for overwrite
+ this.dialog = dialog; // odoo change for overwrite
+
var hMousedown = function (event) {
//preventDefault Selection for FF, IE8+
if (dom.isImg(event.target)) {
@@ -564,6 +571,19 @@ define([
if (keyName) { aKey.push(keyName); }
var eventName = keyMap[aKey.join('+')];
+
+ // odoo change: add visible event to overwrite the browser comportment
+ var keycode = event.keyCode;
+ if (!eventName &&
+ !event.ctrlKey && !event.metaKey && ( // special code/command
+ (keycode > 47 && keycode < 58) || // number keys
+ keycode == 32 || keycode == 13 || // spacebar & return
+ (keycode > 64 && keycode < 91) || // letter keys
+ (keycode > 95 && keycode < 112) || // numpad keys
+ (keycode > 185 && keycode < 193) || // ;=,-./` (in order)
+ (keycode > 218 && keycode < 223))) { // [\]' (in order))
+ eventName = 'visible';
+ }
if (eventName) {
event.preventDefault();
diff --git a/addons/website/static/lib/summernote/src/js/Renderer.js b/addons/website/static/lib/summernote/src/js/Renderer.js
index 5b1cc794c15..2f27901e875 100644
--- a/addons/website/static/lib/summernote/src/js/Renderer.js
+++ b/addons/website/static/lib/summernote/src/js/Renderer.js
@@ -434,6 +434,9 @@ define([
'</div>';
};
+ this.tplButtonInfo = tplButtonInfo; // odoo change for overwrite
+ this.tplPopovers = tplPopovers; // odoo change for overwrite
+
var tplHandles = function () {
return '<div class="note-handle">' +
'<div class="note-control-selection">' +
@@ -691,6 +694,8 @@ define([
});
};
+ this.createPalette = createPalette; // odoo change for overwrite
+
/**
* create summernote layout (air mode)
*
@@ -711,12 +716,12 @@ define([
var body = document.body;
// create Popover
- var $popover = $(tplPopovers(langInfo, options));
+ var $popover = $(this.tplPopovers(langInfo, options)); // odoo change for overwrite
$popover.addClass('note-air-layout');
$popover.attr('id', 'note-popover-' + id);
$popover.appendTo(body);
createTooltip($popover, keyMap);
- createPalette($popover, options);
+ this.createPalette($popover, options); // odoo change for overwrite
// create Handle
var $handle = $(tplHandles());
@@ -793,12 +798,12 @@ define([
var $toolbar = $(toolbarHTML).prependTo($editor);
var keyMap = options.keyMap[agent.isMac ? 'mac' : 'pc'];
- createPalette($toolbar, options);
+ this.createPalette($toolbar, options); // odoo change for overwrite
createTooltip($toolbar, keyMap, 'bottom');
//05. create Popover
- var $popover = $(tplPopovers(langInfo, options)).prependTo($editor);
- createPalette($popover, options);
+ var $popover = $(this.tplPopovers(langInfo, options)).prependTo($editor); // odoo change for overwrite
+ this.createPalette($popover, options); // odoo change for overwrite
createTooltip($popover, keyMap);
//06. handle(control selection, ...)
diff --git a/addons/website/static/lib/summernote/src/js/core/range.js b/addons/website/static/lib/summernote/src/js/core/range.js
index 785c063f48b..85a659bbd1b 100644
--- a/addons/website/static/lib/summernote/src/js/core/range.js
+++ b/addons/website/static/lib/summernote/src/js/core/range.js
@@ -353,42 +353,42 @@ define([
* delete contents on range
* @return {WrappedRange}
*/
- this.deleteContents = function () {
- if (this.isCollapsed()) {
- return this;
- }
-
- var rng = this.splitText();
- var nodes = rng.nodes(null, {
- fullyContains: true
- });
-
- var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {
- return !list.contains(nodes, point.node);
- });
-
- var emptyParents = [];
- $.each(nodes, function (idx, node) {
- // find empty parents
- var parent = node.parentNode;
- if (point.node !== parent && dom.nodeLength(parent) === 1) {
- emptyParents.push(parent);
- }
- dom.remove(node, false);
- });
-
- // remove empty parents
- $.each(emptyParents, function (idx, node) {
- dom.remove(node, false);
- });
-
- return new WrappedRange(
- point.node,
- point.offset,
- point.node,
- point.offset
- );
- };
+ // this.deleteContents = function () {
+ // if (this.isCollapsed()) {
+ // return this;
+ // }
+
+ // var rng = this.splitText();
+ // var nodes = rng.nodes(null, {
+ // fullyContains: true
+ // });
+
+ // var point = dom.prevPointUntil(rng.getStartPoint(), function (point) {
+ // return !list.contains(nodes, point.node);
+ // });
+
+ // var emptyParents = [];
+ // $.each(nodes, function (idx, node) {
+ // // find empty parents
+ // var parent = node.parentNode;
+ // if (point.node !== parent && dom.nodeLength(parent) === 1) {
+ // emptyParents.push(parent);
+ // }
+ // dom.remove(node, false);
+ // });
+
+ // // remove empty parents
+ // $.each(emptyParents, function (idx, node) {
+ // dom.remove(node, false);
+ // });
+
+ // return new WrappedRange(
+ // point.node,
+ // point.offset,
+ // point.node,
+ // point.offset
+ // );
+ // };
/**
* makeIsOn: return isOn(pred) function
@@ -545,6 +545,9 @@ define([
};
return {
+
+ WrappedRange: WrappedRange, // odoo change for overwrite
+
/**
* create Range Object From arguments or Browser Selection
*
@@ -563,7 +566,7 @@ define([
// Firefox: returns entire body as range on initialization. We won't never need it.
return null;
}
-
+
var nativeRng = selection.getRangeAt(0);
sc = nativeRng.startContainer;
so = nativeRng.startOffset;
@@ -591,6 +594,16 @@ define([
ec = endPoint.cont;
eo = endPoint.offset;
}
+
+ /* fir for some browser like PhantomJS
+ * if you select a span with PhantomJS put the carret on the last char of the previous text node
+ * instead of put the caret on the parent node with the the ofset to target the node
+ */
+ if (sc.nodeType === 3 && sc.nextSibling && sc.nextSibling.tagName && dom.nodeLength(sc) === so) {
+ so = dom.listPrev(ec).length-1;
+ sc = sc.parentNode;
+ }
+
} else if (arguments.length === 2) { //collapsed
ec = sc;
eo = so;
diff --git a/addons/website/static/lib/summernote/src/js/editing/Editor.js b/addons/website/static/lib/summernote/src/js/editing/Editor.js
index 35af842afe8..1a830b8bc83 100644
--- a/addons/website/static/lib/summernote/src/js/editing/Editor.js
+++ b/addons/website/static/lib/summernote/src/js/editing/Editor.js
@@ -22,6 +22,11 @@ define([
var typing = new Typing();
var bullet = new Bullet();
+ this.style = style; // odoo change for overwrite
+ this.table = table; // odoo change for overwrite
+ this.typing = typing; // odoo change for overwrite
+ this.bullet = bullet; // odoo change for overwrite
+
/**
* create range
*/
diff --git a/addons/website/static/lib/summernote/src/js/module/Popover.js b/addons/website/static/lib/summernote/src/js/module/Popover.js
index 29d44666a23..ec40dc6e7d4 100644
--- a/addons/website/static/lib/summernote/src/js/module/Popover.js
+++ b/addons/website/static/lib/summernote/src/js/module/Popover.js
@@ -9,6 +9,8 @@ define([
var Popover = function () {
var button = new Button();
+ this.button = button; // odoo change for overwrite
+
/**
* returns position from placeholder
* @param {Node} placeholder
diff --git a/addons/website/static/lib/summernote/src/js/module/Toolbar.js b/addons/website/static/lib/summernote/src/js/module/Toolbar.js
index 5ff172012ca..832b7c4c561 100644
--- a/addons/website/static/lib/summernote/src/js/module/Toolbar.js
+++ b/addons/website/static/lib/summernote/src/js/module/Toolbar.js
@@ -8,6 +8,8 @@ define([
var Toolbar = function () {
var button = new Button();
+ this.button = button; // odoo change for overwrite
+
this.update = function ($toolbar, styleInfo) {
button.update($toolbar, styleInfo);
};
diff --git a/addons/website/static/lib/summernote/src/js/summernote.js b/addons/website/static/lib/summernote/src/js/summernote.js
index d9122a4ff63..791a9452e85 100644
--- a/addons/website/static/lib/summernote/src/js/summernote.js
+++ b/addons/website/static/lib/summernote/src/js/summernote.js
@@ -2,8 +2,10 @@ define([
'summernote/core/agent', 'summernote/core/dom',
'summernote/core/range',
'summernote/settings',
- 'summernote/EventHandler', 'summernote/Renderer'
-], function (agent, dom, range, settings, EventHandler, Renderer) {
+ 'summernote/EventHandler', 'summernote/Renderer',
+ 'summernote/core/list', // odoo change for overwrite
+ 'summernote/core/key' // odoo change for overwrite
+], function (agent, dom, range, settings, EventHandler, Renderer, list, key) { // odoo change for overwrite
// jQuery namespace for summernote
$.summernote = $.summernote || {};
@@ -19,7 +21,9 @@ define([
core: {
agent: agent,
dom: dom,
- range: range
+ range: range,
+ list: list, // odoo change for overwrite
+ key: key // odoo change for overwrite
},
pluginEvents: {}
});