Files
odoo_source/addons/web_editor/static/src/js/inline.js
T
qsm-odoo 7f10b55a50 [REF] *: BS4, adapt display classes
The system completely changed. I also had to adapt classes to new
screen breakpoints.

hidden/hide -> d-none
show -> d-block
hidden-xs -> d-none d-md-(block/inline/...)
hidden-sm -> d-md-none d-lg-(block/inline/...)
hidden-md -> d-lg-none d-xl-(block/inline/...)
hidden-lg -> d-xl-none
visible-xs-* -> d-* d-md-none
visible-sm-* -> d-none d-md-* d-lg-none
visible-md-* -> d-none d-lg-* d-xl-none
visible-lg-* -> d-none d-xl-*
hidden-print -> d-print-none
visible-print-* -> d-none d-print-*
...
and all possible combination of those had to be handled too.
2018-07-27 12:36:54 +02:00

92 lines
3.3 KiB
JavaScript

odoo.define('web_editor.inline', function (require) {
'use strict';
var core = require('web.core');
var editor = require('web_editor.editor');
var rte = require('web_editor.rte');
var weWidgets = require('web_editor.widget');
var transcoder = require('web_editor.transcoder');
var snippet_editor = require('web_editor.snippet.editor');
weWidgets.MediaDialog.include({
start: function () {
this.$('[href="#editor-media-video"]').addClass('d-none');
return this._super.apply(this, arguments);
},
});
editor.Class.include({
start: function () {
if (window.location.search.indexOf('enable_editor') !== -1) {
this.on('rte:start', this, function () {
// move the caret at the end of the text when click after all content
$('#wrapwrap').on('click', function (event) {
if ($(event.target).is('#wrapwrap') || $(event.target).is('#editable_area:empty')) {
_.defer(function () {
var node = $('#editable_area *')
.filter(function () { return this.textContent.match(/\S|\u00A0/); })
.add($('#editable_area'))
.last()[0];
$.summernote.core.range.create(node, $.summernote.core.dom.nodeLength(node)).select();
});
}
});
});
}
return this._super.apply(this, arguments);
},
});
snippet_editor.Class.include({
start: function () {
_.defer(function () {
var $editable = $('#editable_area');
transcoder.linkImgToAttachmentThumbnail($editable);
transcoder.imgToFont($editable);
transcoder.styleToClass($editable);
// fix outlook image rendering bug
$editable.find('img[style*="width"], img[style*="height"]').removeAttr('height width');
});
return this._super.apply(this, arguments);
},
cleanForSave: function () {
this._super.apply(this, arguments);
var $editable = $('#editable_area');
transcoder.attachmentThumbnailToLinkImg($editable);
transcoder.fontToImg($editable);
transcoder.classToStyle($editable);
// fix outlook image rendering bug
_.each(['width', 'height'], function (attribute) {
$editable.find('img[style*="width"], img[style*="height"]').attr(attribute, function () {
return $(this)[attribute]();
}).css(attribute, function () {
return $(this).get(0).style[attribute] || 'auto';
});
});
},
});
var callback = window ? window['callback'] : undefined;
window.top.odoo[callback + '_updown'] = function (value, fields_values) {
var $editable = $('#editable_area');
value = value || '';
if (value.indexOf('on_change_model_and_list') === -1 && value !== $editable.html()) {
rte.history.recordUndo($editable, null, true);
core.bus.trigger('deactivate_snippet');
$editable.html(value);
transcoder.imgToFont($editable);
transcoder.styleToClass($editable);
// fix outlook image rendering bug
$editable.find('img[style*="width"], img[style*="height"]').removeAttr('height width');
} else {
$editable.trigger('content_changed');
}
};
});