[IMP] summernote: change lib for overwrite method
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
@@ -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, ...)
|
||||
|
||||
@@ -353,42 +353,42 @@ define([
|
||||
* delete contents on range
|
||||
* @return {WrappedRange}
|
||||
*/
|
||||
this.deleteContents = function () {
|
||||
if (this.isCollapsed()) {
|
||||
return this;
|
||||
}
|
||||
// this.deleteContents = function () {
|
||||
// if (this.isCollapsed()) {
|
||||
// return this;
|
||||
// }
|
||||
|
||||
var rng = this.splitText();
|
||||
var nodes = rng.nodes(null, {
|
||||
fullyContains: true
|
||||
});
|
||||
// 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 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);
|
||||
});
|
||||
// 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);
|
||||
});
|
||||
// // remove empty parents
|
||||
// $.each(emptyParents, function (idx, node) {
|
||||
// dom.remove(node, false);
|
||||
// });
|
||||
|
||||
return new WrappedRange(
|
||||
point.node,
|
||||
point.offset,
|
||||
point.node,
|
||||
point.offset
|
||||
);
|
||||
};
|
||||
// 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;
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
@@ -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: {}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user