Commit Graph
310 Commits
Author SHA1 Message Date
qsm-odoo 69d4383d7b [FIX] web_editor: browser-unify alignment editor option
Summernote uses `document.execCommand` to apply most styles when
editing, leveraging the implementation to the browser.

Summernote is configured to use HTML styling (`'styleWithSpan': false`),
and in this case, browsers such as Firefox use HTML attributes for
styling text align, while Chrome still uses CSS for that. In fact,
`document.execCommand` is browser-inconsistent... but so is the
`styleWithSpan` option. Indeed, setting the option to `true` will make
Firefox use CSS property for alignment too... but not Internet Explorer.
So we might consider changing this option's value but this would not
solve the current problem.

Indeed, any CSS `text-align` style in Firefox takes precedence above
the element's `align` attribute, so when users were trying to align text
on stuff that was pre-aligned, they were unable to do so.

We can better explain the situation with this example:
A user tries to left-align in Firefox a `p.text-center` element, and
produces this:

```html
<p class="text-center" align="left"/>
```

(`align` attribute is ignored because of the `text-center` class)

On Chrome, this would be produced with the same steps:

```html
<p class="text-center" style="text-align:left"/>
```

With this patch, we actually make that HTML look like expected by the
user, no matter the browser he's using, by forcing the editor to use
the text-align CSS property. Note that the implementation is quite
ugly but had to take care of compatibility.

See https://github.com/odoo/odoo/pull/20900
(thanks to @Yajo for original PR)
2017-12-15 14:06:04 +01:00
Adrien Dieudonne e15e6fe32e [FIX] web_editor: support of SVG elements in snippets
Before this commit, it was not possible to save a page
containing a snippet with a SVG tag.

To support SVG elements, we need to use 'Element.getAttribute'
and 'Element.setAttribute' as mentionned in the documentation:
https://developer.mozilla.org/en-US/docs/Web/API/Element/className

For more information, see GH-14485
2017-12-04 09:24:35 +01:00
Odoo Translation Bot 19fda52a53 [I18N] Update translation terms from Transifex 2017-12-01 02:53:01 +01:00
Lucas Perais (lpe) cae188514f [FIX] web_editor: Fieldtexthtml wait until iframe loaded to save
In the case where:
- you are too fast editing a mass mailing, trigger an onchange (e.g. mailing_model) and then save
You can use the edit/save shortcuts to make yourself believe you are Flash Gordon
- your internet is too slow (Down: 4Mb/s, Up: 500kb/s, Latency: 20ms)

Before ths commit, the onchange will return *before* the field (the iframe actually) is loaded.
This onchange contains a signal *in* the body_html of the field to allow communication with the iframe.
If you save before the iframe is loaded, this body_html keyword will be saved.

After this commit we deactivate the save button until the iframe is loaded.
We could have gone for a python user error on the value of the body_html too.
But it would have added a supplementary click and potential reloading

OPW 783616
2017-11-28 11:22:30 +01:00
Odoo Translation Bot 43e5f5a67f [I18N] Update translation terms from Transifex 2017-11-08 11:08:53 +01:00
qsm-odoo 7bd8f9a5b2 [FIX] web_editor: replacing selected text in a hierarchy on Firefox
When following these steps on Firefox:
- Select all text in a bold link (triple click)
- Type some text

The typed text did not replace the selected text but was instead put
at the front of it.
2017-10-24 10:50:18 +02:00
qsm-odoo b85bd35823 [FIX] web_editor: fixed issue of chrome triple click
Partial backport of 11.0 commit (https://github.com/odoo/odoo/commit/6ad2ae30354a77c0f898cb9cb5a859713061d71a)
to solve issue 774152. Note: it has to be forward-ported as
implementation has been improved to handle mass mailing cases.

When an user triple-clicked on a paragraph and then typed text, the
paragraph was removed instead of its content (so the new text was
added at the beginning of the next paragraph).

See: http://stackoverflow.com/questions/38467334/why-does-google-chrome-always-add-space-after-selected-text
2017-10-17 12:45:52 +02:00
qsm-odoo df8590e562 [FIX] web_editor: properly save multi-edited elements
When an element is placed multiple times in a page, it is saved only
once. Unfortunately, when a view was divided in multiple editable
parts (XML branding), only one of those parts were saved.
2017-10-16 16:02:00 +02:00
qsm-odoo eda976e63d [FIX] web_editor: do not break labels' texts into <p/>
When editing the content of a <label/> which has XML branding (first
DOM element which is editable in its hierarchy), a <p/> element was
added inside. This behavior is there to automatically add <p/> elements
in empty editable <div/> / <section/> elements on edition. This should
however not apply on <label/> elements.
2017-10-16 16:02:00 +02:00
qsm-odoo 296498fb58 [FIX] web_editor: do not break <p/> when pasting a <p/> element
This fixes a bug when pasting text in a paragraph, it was always
creating a new paragraph for no reason.
2017-10-16 14:14:47 +02:00
Odoo Translation Bot 4c78611784 [I18N] Update translation terms from Transifex 2017-08-20 00:31:52 +02:00
Odoo Translation Bot 535fe3ca14 [I18N] Update translation terms from Transifex 2017-08-13 00:31:41 +02:00
Odoo Translation Bot af7eb04fc7 [I18N] Update translation terms from Transifex 2017-08-06 00:32:12 +02:00
Odoo Translation Bot 6493dc9837 [I18N] Update translation terms from Transifex 2017-07-30 00:32:09 +02:00
Odoo Translation Bot 34bc9b4983 [I18N] Update translation terms from Transifex 2017-07-25 11:46:16 +02:00
Odoo Translation Bot b9131adb48 [I18N] Update translation terms from Transifex 2017-07-02 00:27:47 +02:00
Nicolas Lempereur b3e7753d1b [FIX] web{site,_editor}: allow edit en_US field
If the website default language is not en_US, qweb fields are not
translatable in en_US (and thus can't be translated) because:

- the code expected en_US to be the default language.
- there was a error in website _dispatch

opw-746776
closes #17939
2017-06-30 14:14:27 +02:00
Odoo Translation Bot ed46386436 [I18N] Update translation terms from Transifex 2017-06-25 00:27:33 +02:00
Nicolas Lempereur de403dc1ab [FIX] mass_mailing: no multi language edit
Creating and editing mass mailing in multiple language is managed with
the change 05daa15.

But currently the language the mass mailing is sent in, is the language
of the "Process Mass Mailing Queue" (root user if not changed) so all
the recipients will receive the mail in the root user language has at
the time the given batch of mails is sended.

So this is different from what someone could expect by it being
translatable. In any case the recipients list could be based on a lead,
a partner a mass mailing contact or other and a language could not be
determinable in stable (a mass mailing contact does not have a language
for example).

If the system worked, there is also a usability downside in the meaning
that someone could duplicate a mail and not check all translation and
not be aware that the mail he see is maybe not the mail that will be
received (if translations have not all been completed).

In stable to have the same behavior in any case and lessen the usability
burden of users thinking erroneously the mass mailing may be sent in
several languages depending on a not-existing heuristic, this changeset
remove the translatability of mass mailing content.

This has the following effect:

no translation editing appear,
the mass mailing is edited and sent in one and the same language,
If someone want to send a mass mailing in several language, currently in
Odoo it would then require to:

duplicate the mass mailing,
change the domains of recipients base on choosen heuristic,
edit the duplicated mass mailing in the choosen language

opw-746445
opw-746776
closes #17718
2017-06-21 11:15:03 +02:00
Odoo Translation Bot 8c53fa5bc9 [I18N] Update translation terms from Transifex 2017-06-18 00:26:56 +02:00
Odoo Translation Bot 4dbc9b5472 [I18N] Update translation terms from Transifex 2017-06-11 00:27:53 +02:00
qsm-odoo b21426ab9c [FIX] web_editor: properly match snippet options' DOM
Backport of 10.0 commit: 5331a87f81

The snippet options are attached to `closest`, `all` and `is` functions
to be able to find/check DOM they are associated to. Their behavior
depend on the snippet option type: the search in the DOM is either done
in the body, the editable parts, the editable children only, ....

The problem is that when searching from a given DOM element, jQuery
won't match the elements whose selector contains this given DOM element.
Or in code terms, jQuery find function behavior is:
`$('A').find('A B')` <=> `$('A A B')` (not `$('A B')`)

This was indeed a problem on the job position apply form pages where the
main editable element is the <form/> element itself. Indeed, the snippet
options' selectors which began by 'form' were not able to match. Worse,
the selector is used for a jQuery search for drag & drop and saving but
not for initialization (where it is used as a `is` check on clicked
elements). So, some DOM were able to be modified by options but not
properly (re)configured before saving.

opw-705902
opw-741305
2017-05-29 13:14:22 +02:00
Odoo Translation Bot 14b30c4000 [I18N] Update translation terms from Transifex 2017-05-28 00:28:16 +02:00
Odoo Translation Bot 3d904cf694 [I18N] Update translation terms from Transifex 2017-05-21 00:28:50 +02:00
Nicolas Lempereur 89e644000a [FIX] web_editor: don't resize iframe in content
In 4e0e376b0 an iframe for the readonly preview was added when
displaying html fields.

In e5112ee00 this iframe was only used if style-inline was set in the
widget options.

This brought an incompatibility if the not iframed preview contained an
iframe (eg. a youtube video which is then resize to a 30px height) which
is solved by this commit.

opw-725161
closes #16955
2017-05-12 16:21:14 +02:00
Odoo Translation Bot 32ea5ad690 [I18N] Update translation terms from Transifex 2017-04-30 00:29:03 +02:00
Odoo Translation Bot 91c00bc011 [I18N] Update translation terms from Transifex 2017-04-23 00:31:08 +02:00
Odoo Translation Bot 2c75ad396f [I18N] Update translation terms from Transifex 2017-04-16 00:30:18 +02:00
Odoo Translation Bot 086723152e [I18N] Update translation terms from Transifex 2017-04-09 00:30:47 +02:00
Odoo Translation Bot 963c9ffa4a [I18N] Update translation terms from Transifex 2017-04-02 00:32:12 +02:00
Nicolas Lempereur 105243afa6 [FIX] web_editor: fix select and modify video
There was an issue when selecting a video tag:

- a tag inside the video tag would be selected instead of the video tag
  so video could not be removed or modified (modifying it would add a
  video or image inside the video itself and so on).

- the selection was not conveyed to the editor so it would be lost
  consequently due to some code who restored it to what was saved on
  the editor.

This fix solves this by changing how the video tag was selected and
saving the selected range on the editor.

opw-724701
2017-03-29 16:35:39 +02:00
Odoo Translation Bot 1e476e59fe [I18N] Update translation terms from Transifex 2017-03-26 00:31:50 +01:00
qsm-odoo 1505fee0e3 [FIX] web_editor: properly transcode fa alias icons
When adding a font-awesome icon to a mail template, the icon is
converted to an image once the template is saved. To do that, the
code checks all the `.fa-XXX` definitions in the stylesheets to know
which content the image have to use. The problem is that this was
not considering the font-awesome aliases. Indeed, the `fa-facebook-f`
icon was able to be used while its alias `fa-facebook` was not working.
2017-03-22 13:12:33 +01:00
Odoo Translation Bot 9bbf34231a [I18N] Update translation terms from Transifex 2017-03-19 00:31:31 +01:00
Nicolas Lempereur 508a002e69 [FIX] web_editor: glitch english several times
When using the iframed editor with multilang selector (present if there
is another lang installed than en_US) an "English" language was present
before each translation language.

opw-696891
2017-03-17 08:10:52 +01:00
Nicolas Lempereur f50ba68be7 [FIX] web_editor: handle margin:initial correctly
The transcoder (which transforms stylesheet rules to inline style) did
some compression of the padding and margin css properties to not always
have margin-top + margin-right + margin-bottom + margin-left.

This could cause an issue when the value of margin or padding contained
an initial or inherit value because browsers (at least firefox and
google chrome) doesn't allow it. Thus the preview could for example have
bigger veritcal spaces arround `<p />` tag than what was seen when
editing.

With this fix instead of invalid:

    margin:initial initial initial initial

we have:

    margin:initial

And instead of invalid:

    margin:initial 5px 6px 7px

we have:

    margin-top: initial; margin-right: 5px; margin-bottom: 6px; margin-left: 7px;

opw-706535
2017-03-16 18:26:32 +01:00
Odoo Translation Bot dcd78c2c39 [I18N] Update translation terms from Transifex 2017-03-12 00:30:59 +01:00
Odoo Translation Bot 1b6d91b5c3 [I18N] Update translation terms from Transifex 2017-03-05 00:30:41 +01:00
Denis Ledoux 95d3263338 [FIX] web_editor: change of iframe URL on record loaded
When changing of record, through the pager or the breadcrumb, the URL of the iframe
must change, as the model and id of the record is included in the URL

This wasn't done before this revision, and it could
lead to an INTERNAL SERVER ERROR in case of a deletion
followed by the loading of another record: the URL
of the iframe was still set to the former record,
and this URL crashed as the record no longer existed.

e.g.
- Create a new mass mailing, subject 1, add a random block in the content then save
- From this newly created mass mailing, Create a new mass mailing
  (directly with the create button)
  Subject 2, add a random black in the content and save
- Delete the second mass mailing
- Return in the mass mailing kanban view through the breadcrumb
- Open the mass mailing 1
- You had an internel server error, due to the fact the URL of the iframe
  was still the one of the second mass mailing.

opw-710239
2017-03-02 17:59:22 +01:00
Odoo Translation Bot 24fa6012e7 [I18N] Update translation terms from Transifex 2017-02-26 00:31:32 +01:00
Nicolas Lempereur 65c1926a37 [FIX] web: html_frame field and lang vs onchange
In mass mailing there is several possibilities of states when rendering
the widget with a possibly new value:

1. we are not in edition
  a. we are in same language than user language => the editor content
     can be updated
  b. we are in a different language => the content cannot be updated

2. we are in edition
  a. we are editing translation : the editor content cannot be updated
  b. we are not editing translation (editor language == en_US)
    i.   we are requesting editor update (by having magic value
         `on_change_model_and_list`) => the editor can be updated
    ii.  we are in same language than user language => the editor content
         can be updated
    iii. we are in a different language => the editor content cannot be
         updated

In summary:

- if language is the same than the user, we can update the value
- if value is magic `on_change_model_and_list` and we are not translating,
  we can update the editor

Before this commit, this worked as expected but for 2.a.ii. which if the
user language was not en_US would for example prevent editor updating.

closes #15583
closes #15414
opw-708032

inspired by a27e24c6d1

note: the fix is a fix for 9.0 and saas-11 only.
2017-02-23 16:52:45 +01:00
Odoo Translation Bot e2bbb01665 [I18N] Update translation terms from Transifex 2017-02-19 00:30:54 +01:00
Odoo Translation Bot 9dc96091f3 [I18N] Update translation terms from Transifex 2017-02-05 00:31:18 +01:00
qsm-odoo b836e00d70 [FIX] web_editor: allow to copy paste when editing translations
When editing translations, you were not able to copy/paste texts before
this commit. Indeed, in some contexts, in some browsers, copy/pasting
text was creating a new paragraph inside the translation, preventing it
to be saved.

This commit simply adds code to remove these paragraphs each time text
is changed.

A more elegant solution will be found for master with website and
editor improvements.
2017-02-01 13:09:16 +01:00
Odoo Translation Bot 1eb9dc79f5 [I18N] Update translation terms from Transifex 2017-01-29 00:30:57 +01:00
Odoo Translation Bot e26045a8e4 [I18N] Update translation terms from Transifex 2017-01-15 00:28:55 +01:00
Nicolas Lempereur 2c66f7bc7f [FIX] web_editor: italic odd behavior because typo
An italic node would be taken as a basic node containing text and thus
would be merged unexpectedly.

For example with the following content : "<i>hello</i> world" removing a
letter of 'world' would merge the text node with hello making it italic.

opw-703722
2017-01-11 10:38:29 +01:00
Nicolas Lempereur 3f7b1f6083 [FIX] web_editor: ignore read only + debug + write
In some case (for example the one solved with b51d21c5) we can have
write done on a field text in read only mode.

With 98ed53ce if :

- such a case happened (in b51d21c5 the fix only worked after the given
  field was written one time) or a similar instance,
- and the user was in debug mode,
- and the widget used was TextFieldHtmlSimple

this could lead to an issue with the code trying to toggle the code view
mode whilst the editor is closed.
2017-01-10 08:31:38 +01:00
Nicolas Lempereur f27e69eced [FIX] web_editor: harmless ; missing in 98ed53ce 2017-01-09 16:26:15 +01:00
Nicolas Lempereur 81b668c3e3 [IMP] web_editor: tour testing inline editor saving (up to s11)
With 98ed53ce when a form view is saved when a html field is in code
view mode, the change is not lost.

This new backend tour check that when saving in or not in code view, the
content is saved effectively.

The test not in code view would ensure issues like #14381 #14351 #14394
are detected on runbot.

closes #14475
opw-693052

note: the old test system is used so this test is only for up to saas-11
2017-01-09 16:06:46 +01:00