summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js/backend/convert_inline.js
AgeCommit message (Collapse)Author
2021-04-09[FIX] web_editor: have transcoder apply text-decorationNicolas Lempereur
The transcoder (transforming CSS rules into inline CSS for mail clients) was not working for text-decoration property because it would transform text-decoration values in: {'text-decoration-thickness': 'normal', 'text-decoration': none} And the regex that ensures we don't add duplicates check if there is: "(^|;)\s*text-decoration" so if there is text-decoration-thickness, text-decoration is not added. The regexp could be changed to: "(^|;)\s*text-decoration[^\w-]" but we already have special case for other text-decoration-* properties. With this change we should get text-decoration applied in: - edit mode (was already the case) - readonly mode (new) - mail client (only if mail client does not override it) As a side note: text-decoration-thickness seems to be rather new[^1] so at one point in time there was probably no issue. [^1]: https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness opw-2496490 closes odoo/odoo#69074 X-original-commit: f4f1b890e15e98d9a7e72586faf73327d3f7b716 Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com> Co-authored-by: Kamen Zhekov <kzh@odoo.com>
2021-01-28[FIX] mass_mailing, web_editor: send mail to outlook and keep image sizeNicolas Lempereur
Office Outlook doesn't take into account the [style] attribute, and it doesn't manage width/height in percent value. This commit set width/heigth attribute in pixels and also always set the width/height in style attribute (keeping them in the original unit and setting them to auto if not present). This is a reintroduction of 2015 commit bdf58adb465b opw-2447756 closes odoo/odoo#65212 X-original-commit: c51762a790d6fefd97e6c818bfaa9307180dd5b5 Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2020-01-27[FIX] mass_mailing, web_editor: edit font awesome icon with zoomNicolas Lempereur
In case of font-awesome icon when the browser is being zoomed, we can get a decimal font-size. There is a system that transform font-awesome in image links so they are readable in any email client (supporting image) but it did not take into account decimal font-size. With this changeset, we only send a integer font size: we do not try to get the original value because styling is relative on elements, a 90% zoom ratio could lead to a 98% font-awesome icon ratio. Also improve edition of font-awesome icon edition after first save by reverting the transformation to image on edit. Thanks to that, the original size will also be reinstated and will not depend on zoom on previous save. opw-2156069 closes #43949 closes odoo/odoo#44033 X-original-commit: fe72bf01b67ea20ddb74a5b05464c63cc77090ef Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2019-12-09[REV] web: reverts update to fontawesome 5.11.2Kevin Baptiste
This reverts commit ff1c35513aecef5fbc30f7c2f3834450e719714e. closes odoo/odoo#41480 X-original-commit: 116057b26e71db4692280463669f3e80d813ddcc Related: odoo/enterprise#7110 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-11-28[IMP] web: update to fontawesome 4.7.0 to 5.11.2Kevin Baptiste
FontAwesome 5 introduced new names for some icons as described on https://fontawesome.com/how-to-use/on-the-web/setup/upgrading-from-version-4#name-changes This commit replaces the old names to the new ones. closes odoo/odoo#35826 Taskid: 2050241 Related: odoo/enterprise#5180 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-08-22[REF] web_editor, mass_mailing: new iframe mechanismGorash
Since we reverted the saas-12.2 editor in favor of the 12.0 one, we faced a dilemna regarding how the editor iframe is handled in mass_mailing. The 12.0 version was using a special controller to get the website assets required for mass_mailing while the saas-12.2 version used a completely different mechanism that was, obviously, not handled by the 12.0 version. We did not want to reintroduce the old controllers who were considered to be a hack to load the assets in the mass_mailing iframe. However, we were very cautious about changing the editor itself to avoid introducing new bugs in the editor core of 13.0. The approach we chose at the end, is to use the loadAsset mechanism introduced in saas-12.2 to load the necessary assets and inject them in the mass_mailing iframe. This did not reintroduce the controllers nor did it require to change the code of the editor itself. However, it required moderate changes to the wysiwyg interface. Part of PR 35677. Co-authored-by: Nicolas Bayet <nby@odoo.com> Co-authored-by: Antoine Guenet <age@odoo.com> Co-authored-by: Christophe Matthieu <chm@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
2019-08-21[REV] wev_editor, website: revert saas-12.2 editorGorash
This commit reverts the saas-12.2 editor by putting back the editor of Odoo 12. The saas-12.2 editor was an intermediate work between the previous editor of Odoo 12 and the new one slated for Odoo 13. It was unstable but it was supposed to be replaced by the new editor of version 13. However, since the new editor has been postponed to Odoo 14, the saas-12.2 one would have been staying in Odoo 13, which would have been a nightmare to maintain. To avoid this outcome, we chose to put back the 12.0 editor in its place. This has the particular advantage that Odoo 13 will share the same bugfixes as Odoo 12 and 11 as they all run under the same core editor, while the saas-12.2 one would have been an entirely different beast to maintain. This is a partial revert of f2969923. Part of PR 35677. Co-authored-by: Nicolas Bayet <nby@odoo.com> Co-authored-by: Antoine Guenet <age@odoo.com> Co-authored-by: Christophe Matthieu <chm@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com>
2019-04-17[FIX] web_editor: FieldHtml commitChanges called too soonmgh-odoo
The original issue appeared in mass_mailing where triggering the mail template preview throws a client error. This commit prevents commitChanges() from being called before the element is rendered. Task-ID: 1950784
2019-03-27[MERGE] forward port branch saas-12.2 up to 7c1a9a8204fChristophe Simonis
2019-03-26[MERGE] forward port branch saas-12.1 up to f00c490be86Christophe Simonis
2019-02-14[IMP] web_editor: lazy load the wysiwygChristophe Matthieu
Issue: wysiwyg asset slow down the loading of the website, error inadvertently introduced: https://github.com/odoo/odoo/pull/29775 The assets are now loaded assynchroneously, when the editor is needed, its assets will be loaded. closes odoo/odoo#30700
2019-02-25[FIX] mass_mailing: fix send email issue.Siddarth Gajjar
- while clicking on send now button in mass mailing app it throws error due to wysiwyg undefined. closes odoo/odoo#30533
2019-01-17[IMP] web_editor,*: Refactoring the wysiwyg editor and 'html' fieldChristophe Matthieu
* Creating a new structure by transforming all the plugins in the library using the odoo inheritance system. Plugins are easier to implement with the AbstractPlugin to add Odoo behaviors. * From now on, the methods of the library (in this case Summernote) can no longer be called by other modules or files. Only the wysiwyg widgets can access it, to simplify the updating process. The wysiwyg object serves as an interface. * Depending on the options the snippets will be loaded or not, the editor will be in an iframe or not... all of this is transparent from the outside. * Regarding iframes, all controllers related to editing have been removed: the new API no longer needs them. This speeds up loading, eases testing and removes complexity for the same features. PUBLIC FEATURES There are several public methods on the Wysiwyg class: * Wysiwyg.prepare (WidgetParent): returns a deferred resolved when the library (xml, lazy, assets...) is loaded. * Wysiwyg.getRange (DOM): returns the range (selection in the dom) * Wysiwyg.setRange (startNode, startOffset, endNode, endOffset): creates a range (selection in the dom) * Wysiwyg.setRangeFromNode (DOM, options) that creates a range from an element (option available to select all, start or end) A jQuery selector was added: :o_editable, which indicates whether the current element is editable. That is, if it is contained in a tag with the attribute 'contentEditable = "true"' or in a tag with the class o_editable. Several methods are also present: * focusIn: makes a focus and places the cursor at the beginning of the element * focusInEnd: makes a focus and places the cursor at the end of the element * selectContent: makes a focus and selects the content HTML FIELD The HTML field can receive different options: * style-inline: {boolean} transforms a class into an inline style when saving and vice versa when reading. * no-attachment: {boolean} prevents the use of attachments (in media dialog) * cssEdit: {xml_id} to use a template containing the css to loaded in an iframe when editing * cssReadonly: {xml_id} to use a template containing the css to load into an iframe when viewing in readonly * snippets: {xml_id} snippets template (can be used with or without cssEdit) * wrapper: {template} qweb static template (containing a tag: id = "wrapper") that will include the content during editing (removed on save) MASS MAILING A widget was created for mass mailing. There are now two fields: body_html and body_arch. body_arch contains the code with the class without conversion into inline style, useful when editing and one with the inline style that is visible in readonly mode and sent by email. Advantage: no spreading errors, able to update css/theme, able to do more changes when converting to inline style so that a maximum of mail clients have an impeccable rendering. Co-authored-by: Antoine Guenet <age@odoo.com>
2019-01-17[REF] web_editor,*: Move and rename files to prepare refactoringChristophe Matthieu
The refactoring of the wysiwyg editor and 'html' field allows us to move some of the code that was in web_editor but only used in website or in mass_mailing. Some parts are still in web_editor but will be moved at a later time.