diff options
| author | Nicolas Lempereur <nle@odoo.com> | 2015-09-25 10:53:08 +0200 |
|---|---|---|
| committer | Nicolas Lempereur <nle@odoo.com> | 2015-09-25 10:53:08 +0200 |
| commit | eed63c793a55140b036bf807914e93c2a8bb37ad (patch) | |
| tree | 6a205e37eeac6c60f84f58191392b95457e1afac /addons/web_editor/static/src/js | |
| parent | 15d2778f0f1f2fbdbe829530c82929b1efb51f5f (diff) | |
Revert "[IMP] web_editor: update summernote up to 2015-08-31"
Revert till several issues are solved.
Diffstat (limited to 'addons/web_editor/static/src/js')
| -rw-r--r-- | addons/web_editor/static/src/js/rte.js | 4 | ||||
| -rw-r--r-- | addons/web_editor/static/src/js/rte.summernote.js | 71 | ||||
| -rw-r--r-- | addons/web_editor/static/src/js/summernote.js | 74 | ||||
| -rw-r--r-- | addons/web_editor/static/src/js/tour.rte.js | 5 |
4 files changed, 41 insertions, 113 deletions
diff --git a/addons/web_editor/static/src/js/rte.js b/addons/web_editor/static/src/js/rte.js index 9e8a5709993..0e1f5a61d5a 100644 --- a/addons/web_editor/static/src/js/rte.js +++ b/addons/web_editor/static/src/js/rte.js @@ -144,9 +144,7 @@ var History = function History ($editable) { this.recordUndo = function ($editable, event, internal_history) { var self = this; if (!$editable) { - var rng = range.create(); - if(!rng) return; - $editable = $(rng.sc).closest(".o_editable"); + $editable = $(range.create().sc).closest(".o_editable"); } if (aUndo[pos] && (event === "applySnap" || event === "activate")) { diff --git a/addons/web_editor/static/src/js/rte.summernote.js b/addons/web_editor/static/src/js/rte.summernote.js index 56867c20bd5..dbce1a3757c 100644 --- a/addons/web_editor/static/src/js/rte.summernote.js +++ b/addons/web_editor/static/src/js/rte.summernote.js @@ -178,8 +178,8 @@ renderer.tplPopovers = function (lang, options) { return $popover; }; -var fn_boutton_update = eventHandler.modules.popover.button.update; -eventHandler.modules.popover.button.update = function ($container, oStyle) { +var fn_boutton_update = eventHandler.popover.button.update; +eventHandler.popover.button.update = function ($container, oStyle) { // stop animation when edit content var previous = $(".note-control-selection").data('target'); if (previous) { @@ -247,15 +247,15 @@ eventHandler.modules.popover.button.update = function ($container, oStyle) { } }; -var fn_popover_update = eventHandler.modules.popover.update; -eventHandler.modules.popover.update = function ($popover, oStyle, isAirMode) { +var fn_popover_update = eventHandler.popover.update; +eventHandler.popover.update = function ($popover, oStyle, isAirMode) { var $imagePopover = $popover.find('.note-image-popover'); var $linkPopover = $popover.find('.note-link-popover'); var $airPopover = $popover.find('.note-air-popover'); fn_popover_update.call(this, $popover, oStyle, isAirMode); - if (!isAirMode || (oStyle.range && $(oStyle.range.sc).closest('[data-oe-model]:not([data-oe-model="ir.ui.view"]):not([data-oe-type="html"])').length)) { + if (!isAirMode || $(oStyle.range.sc).closest('[data-oe-model]:not([data-oe-model="ir.ui.view"]):not([data-oe-type="html"])').length) { $imagePopover.hide(); $linkPopover.hide(); $airPopover.hide(); @@ -276,22 +276,19 @@ eventHandler.modules.popover.update = function ($popover, oStyle, isAirMode) { $(".note-control-selection").hide(); } - if (oStyle.image || (oStyle.range && (!oStyle.range.isCollapsed() || (oStyle.range.sc.tagName && !dom.isAnchor(oStyle.range.sc)))) || (oStyle.image && !$(oStyle.image).closest('a').length)) { + if (oStyle.image || (!oStyle.range.isCollapsed() || (oStyle.range.sc.tagName && !dom.isAnchor(oStyle.range.sc)) || (oStyle.image && !$(oStyle.image).closest('a').length))) { $linkPopover.hide(); oStyle.anchor = false; } - if (oStyle.image || oStyle.anchor || (oStyle.range && !$(oStyle.range.sc).closest('.note-editable').length)) { + if (oStyle.image || oStyle.anchor || !$(oStyle.range.sc).closest('.note-editable').length) { $airPopover.hide(); } else { $airPopover.show(); } }; -/* TODO: remove (original method seems enough now (only border-top,left is not done) */ -/* -eventHandler.modules.handle.update = function ($handle, oStyle, isAirMode) { - +eventHandler.handle.update = function ($handle, oStyle, isAirMode) { $handle.toggle(!!oStyle.image); if (oStyle.image) { var $selection = $handle.find('.note-control-selection'); @@ -310,7 +307,6 @@ eventHandler.modules.handle.update = function ($handle, oStyle, isAirMode) { }); } }; -*/ ////////////////////////////////////////////////////////////////////////////////////////////////////////// /* hack for image and link editor */ @@ -318,7 +314,7 @@ eventHandler.modules.handle.update = function ($handle, oStyle, isAirMode) { function getImgTarget () { return $(".note-control-selection").data('target'); } -eventHandler.modules.editor.padding = function ($editable, sValue) { +eventHandler.editor.padding = function ($editable, sValue) { var $target = $(getImgTarget()); var paddings = "small medium large xl".split(/\s+/); $editable.data('NoteHistory').recordUndo(); @@ -328,7 +324,7 @@ eventHandler.modules.editor.padding = function ($editable, sValue) { } $target.removeClass("padding-" + paddings.join(" padding-")); }; -eventHandler.modules.editor.resize = function ($editable, sValue) { +eventHandler.editor.resize = function ($editable, sValue) { var $target = $(getImgTarget()); $editable.data('NoteHistory').recordUndo(); var width = ($target.attr('style') || '').match(/(^|;|\s)width:\s*([0-9]+)%/); @@ -337,7 +333,7 @@ eventHandler.modules.editor.resize = function ($editable, sValue) { } $(getImgTarget()).css('width', width != sValue ? (sValue * 100) + '%' : ''); }; -eventHandler.modules.editor.resizefa = function ($editable, sValue) { +eventHandler.editor.resizefa = function ($editable, sValue) { var $target = $(getImgTarget()); $editable.data('NoteHistory').recordUndo(); $target.attr('class', $target.attr('class').replace(/\s*fa-[0-9]+x/g, '')); @@ -345,7 +341,7 @@ eventHandler.modules.editor.resizefa = function ($editable, sValue) { $target.addClass('fa-'+sValue+'x'); } }; -eventHandler.modules.editor.floatMe = function ($editable, sValue) { +eventHandler.editor.floatMe = function ($editable, sValue) { var $target = $(getImgTarget()); $editable.data('NoteHistory').recordUndo(); switch (sValue) { @@ -354,13 +350,13 @@ eventHandler.modules.editor.floatMe = function ($editable, sValue) { case 'right': $target.toggleClass('pull-right').removeClass('pull-left center-block'); break; } }; -eventHandler.modules.editor.imageShape = function ($editable, sValue) { +eventHandler.editor.imageShape = function ($editable, sValue) { var $target = $(getImgTarget()); $editable.data('NoteHistory').recordUndo(); $target.toggleClass(sValue); }; -eventHandler.modules.linkDialog.showLinkDialog = function ($editable, $dialog, linkInfo) { +eventHandler.dialog.showLinkDialog = function ($editable, $dialog, linkInfo) { $editable.data('range').select(); $editable.data('NoteHistory').recordUndo(); @@ -380,7 +376,7 @@ eventHandler.modules.linkDialog.showLinkDialog = function ($editable, $dialog, l }); return def; }; -eventHandler.modules.imageDialog.showImageDialog = function ($editable) { +eventHandler.dialog.showImageDialog = function ($editable) { var r = $editable.data('range'); if (r.sc.tagName && r.sc.childNodes.length) { r.sc = r.sc.childNodes[r.so]; @@ -398,9 +394,8 @@ $.summernote.pluginEvents.alt = function (event, editor, layoutInfo, sorted) { ////////////////////////////////////////////////////////////////////////////////////////////////////////// -var fn_is_void = dom.isVoid; dom.isVoid = function (node) { - return fn_is_void(node) || dom.isImgFont(node) || (node && node.className && node.className.match(/(^|\s)media_iframe_video(\s|$)/i)); + return node && /^BR|^IMG|^HR/.test(node.nodeName.toUpperCase()) || dom.isImg(node); }; dom.isImg = function (node) { return dom.isImgFont(node) || (node && (node.nodeName === "IMG" || (node.className && node.className.match(/(^|\s)(media_iframe_video|o_image)(\s|$)/i)) )); @@ -433,9 +428,7 @@ dom.isFont = function (node) { var fn_visible = $.summernote.pluginEvents.visible; $.summernote.pluginEvents.visible = function (event, editor, layoutInfo) { var res = fn_visible.call(this, event, editor, layoutInfo); - var rng = range.create(); - if(!rng) res; - var $node = $(dom.node(rng.sc)); + var $node = $(dom.node(range.create().sc)); if (($node.is('[data-oe-type="html"]') || $node.is('[data-oe-field="arch"]')) && $node.hasClass("o_editable") && !$node[0].children.length && @@ -612,23 +605,19 @@ function summernote_ie_fix (event, pred) { var fn_attach = eventHandler.attach; eventHandler.attach = function (oLayoutInfo, options) { fn_attach.call(this, oLayoutInfo, options); - oLayoutInfo.editor().on('dragstart', 'img', function (e) { e.preventDefault(); }); + oLayoutInfo.editor.on('dragstart', 'img', function (e) { e.preventDefault(); }); $(document).on('mousedown', summernote_mousedown); $(document).on('mouseup', summernote_mouseup); - oLayoutInfo.editor().off('click').on('click', function (e) {e.preventDefault();}); // if the content editable is a link - oLayoutInfo.editor().on('dblclick', 'img, .media_iframe_video, span.fa, i.fa, span.fa, a.o_image', function (event) { + oLayoutInfo.editor.off('click').on('click', function (e) {e.preventDefault();}); // if the content editable is a link + oLayoutInfo.editor.on('dblclick', 'img, .media_iframe_video, span.fa, i.fa, span.fa, a.o_image', function (event) { if (!$(event.target).closest(".note-toolbar").length) { // prevent icon edition of top bar for default summernote - new widgets.MediaDialog(oLayoutInfo.editor(), event.target).appendTo(document.body); - } - }); - oLayoutInfo.editable().on('mousedown', function(e) { - if(dom.isImg(e.target)) { - range.createFromNode(event.target).select(); + new widgets.MediaDialog(oLayoutInfo.editor, event.target).appendTo(document.body); } }); $(document).on("keyup", reRangeSelectKey); + var clone_data = false; - var $node = oLayoutInfo.editor(); + var $node = oLayoutInfo.editor; if ($node.data('oe-model') || $node.data('oe-translation-id')) { $node.on('content_changed', function () { var $nodes = $('[data-oe-model], [data-oe-translation-id]') @@ -672,22 +661,22 @@ eventHandler.attach = function (oLayoutInfo, options) { var $toolbar = $(oLayoutInfo.popover).add(oLayoutInfo.toolbar); $('button[data-event="undo"], button[data-event="redo"]', $toolbar).attr('disabled', true); - $(oLayoutInfo.editor()) - .add(oLayoutInfo.handle()) - .add(oLayoutInfo.popover()) + $(oLayoutInfo.editor) + .add(oLayoutInfo.handle) + .add(oLayoutInfo.popover) .add(oLayoutInfo.toolbar) .on('click keyup', function () { - $('button[data-event="undo"]', $toolbar).attr('disabled', !oLayoutInfo.editable().data('NoteHistory').hasUndo()); - $('button[data-event="redo"]', $toolbar).attr('disabled', !oLayoutInfo.editable().data('NoteHistory').hasRedo()); + $('button[data-event="undo"]', $toolbar).attr('disabled', !oLayoutInfo.editable.data('NoteHistory').hasUndo()); + $('button[data-event="redo"]', $toolbar).attr('disabled', !oLayoutInfo.editable.data('NoteHistory').hasRedo()); }); }; var fn_detach = eventHandler.detach; eventHandler.dettach = function (oLayoutInfo, options) { fn_detach.call(this, oLayoutInfo, options); - oLayoutInfo.editor().off("dragstart"); + oLayoutInfo.editor.off("dragstart"); $(document).off('mousedown', summernote_mousedown); $(document).off('mouseup', summernote_mouseup); - oLayoutInfo.editor().off("dblclick"); + oLayoutInfo.editor.off("dblclick"); $(document).off("keyup", reRangeSelectKey); }; diff --git a/addons/web_editor/static/src/js/summernote.js b/addons/web_editor/static/src/js/summernote.js index eb4c7a713bb..59186188881 100644 --- a/addons/web_editor/static/src/js/summernote.js +++ b/addons/web_editor/static/src/js/summernote.js @@ -892,47 +892,6 @@ range.WrappedRange.prototype.deleteContents = function (towrite) { prevBP.eo ); }; -// isOnImg: judge whether range is an image node or not -range.WrappedRange.prototype.isOnImg = function () { - var nb = 0; - var image; - var startPoint = {node: this.sc.childNodes.length && this.sc.childNodes[this.so] || this.sc}; - startPoint.offset = startPoint.node === this.sc ? this.so : 0; - var endPoint = {node: this.ec.childNodes.length && this.ec.childNodes[this.eo] || this.ec}; - endPoint.offset = endPoint.node === this.ec ? this.eo : 0; - - if (dom.isImg(startPoint.node)) { - nb ++; - image = startPoint.node; - } - dom.walkPoint(startPoint, endPoint, function (point) { - if (!dom.isText(endPoint.node) && point.node === endPoint.node && point.offset === endPoint.offset) { - return; - } - var node = point.node.childNodes.length && point.node.childNodes[point.offset] || point.node; - var offset = node === point.node ? point.offset : 0; - var isImg = dom.ancestor(node, dom.isImg); - if (!isImg && ((!dom.isBR(node) && !dom.isText(node)) || (offset && node.textContent.length !== offset && node.textContent.match(/\S|\u00A0/)))) { - nb++; - } - if (isImg && image !== isImg) { - image = isImg; - nb ++; - } - }); - return nb === 1 && image; -}; -range.WrappedRange.prototype.deleteContents = function (towrite) { - var prevBP = 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 - ); -}; range.WrappedRange.prototype.clean = function (mergeFilter, all) { var node = dom.node(this.sc === this.ec ? this.sc : this.commonAncestor()); node = node || $(this.sc).closest('[contenteditable]')[0]; @@ -1834,8 +1793,8 @@ $.summernote.pluginEvents.removeFormat = function (event, editor, layoutInfo, va event.preventDefault(); return false; }; -var fn_boutton_updateRecentColor = eventHandler.modules.toolbar.button.updateRecentColor; -eventHandler.modules.toolbar.button.updateRecentColor = function (elBtn, sEvent, sValue) { +var fn_boutton_updateRecentColor = eventHandler.toolbar.button.updateRecentColor; +eventHandler.toolbar.button.updateRecentColor = function (elBtn, sEvent, sValue) { fn_boutton_updateRecentColor.call(this, elBtn, sEvent, sValue); var font = $(elBtn).closest('.note-color').find('.note-recent-color i')[0]; @@ -1868,29 +1827,16 @@ $(document).on('click keyup', function () { $('button[data-event="redo"]', editor).attr('disabled', !popover_history.hasRedo()); }); -eventHandler.modules.editor.undo = function ($popover) { +eventHandler.editor.undo = function ($popover) { if(!$popover.attr('disabled')) $popover.data('NoteHistory').undo(); }; -eventHandler.modules.editor.redo = function ($popover) { +eventHandler.editor.redo = function ($popover) { if(!$popover.attr('disabled')) $popover.data('NoteHistory').redo(); }; -// use image toolbar if current range is on image -var fn_editor_currentstyle = eventHandler.modules.editor.currentStyle; -eventHandler.modules.editor.currentStyle = function(target) { - var styleInfo = fn_editor_currentstyle.apply(this, arguments); - if(!styleInfo.image) { - var rng = range.create(); - if(rng) - styleInfo.image = rng.isOnImg(); - } - return styleInfo; -} - options.fontSizes = [_t('Default'), 8, 9, 10, 11, 12, 14, 18, 24, 36, 48, 62]; $.summernote.pluginEvents.applyFont = function (event, editor, layoutInfo, color, bgcolor, size) { var rng = range.create(); - if(!rng) return; var startPoint = rng.getStartPoint(); var endPoint = rng.getEndPoint(); @@ -2262,8 +2208,8 @@ function summernote_table_update (oStyle) { 'color': '#00ff00' }); } -var fn_popover_update = eventHandler.modules.popover.update; -eventHandler.modules.popover.update = function ($popover, oStyle, isAirMode) { +var fn_popover_update = eventHandler.popover.update; +eventHandler.popover.update = function ($popover, oStyle, isAirMode) { fn_popover_update.call(this, $popover, oStyle, isAirMode); if(!!(isAirMode ? $popover : $popover.parent()).find('.note-table').length) { summernote_table_update(oStyle); @@ -2303,16 +2249,16 @@ function summernote_paste (event) { var fn_attach = eventHandler.attach; eventHandler.attach = function (oLayoutInfo, options) { - var $editable = oLayoutInfo.editor().hasClass('note-editable') ? oLayoutInfo.editor() : oLayoutInfo.editor().find('.note-editable'); + var $editable = oLayoutInfo.editor.hasClass('note-editable') ? oLayoutInfo.editor : oLayoutInfo.editor.find('.note-editable'); fn_attach.call(this, oLayoutInfo, options); - oLayoutInfo.editor().on("paste", summernote_paste); + oLayoutInfo.editor.on("paste", summernote_paste); $editable.on("scroll", summernote_table_scroll); }; var fn_detach = eventHandler.detach; eventHandler.detach = function (oLayoutInfo, options) { - var $editable = oLayoutInfo.editor().hasClass('note-editable') ? oLayoutInfo.editor() : oLayoutInfo.editor().find('.note-editable'); + var $editable = oLayoutInfo.editor.hasClass('note-editable') ? oLayoutInfo.editor : oLayoutInfo.editor.find('.note-editable'); fn_detach.call(this, oLayoutInfo, options); - oLayoutInfo.editor().off("paste", summernote_paste); + oLayoutInfo.editor.off("paste", summernote_paste); $editable.off("scroll", summernote_table_scroll); $('.o_table_handler').remove(); }; diff --git a/addons/web_editor/static/src/js/tour.rte.js b/addons/web_editor/static/src/js/tour.rte.js index c8d9ed9a123..dbf63538ae6 100644 --- a/addons/web_editor/static/src/js/tour.rte.js +++ b/addons/web_editor/static/src/js/tour.rte.js @@ -72,11 +72,6 @@ Tour.register({ { element: 'div[data-target-event="foreColor"]:visible .note-color-row:eq(1) button[data-event="foreColor"]:first', title: "change text color", - onload: function () { - /* TODO: find why phantomjs lose the focus and remove this onload */ - var $el = $('#wrapwrap > main > div > section .row > div:first:not(:has(p font)) h1 font'); - $.summernote.core.range.create($el[0].firstChild, 5, $el[0].firstChild, 10).select(); - } }, { waitFor: '#editable_area > section .row > div:first h1 font:eq(2)', |
