The field `isNewWindow` is used to open a link in a new tab. In this
case, the field newWindow was used, and therefore the property was not
applied.
opw-657510
Depending of the location where the "Copying" happened, only text/plain
content could be available from the clipboard component.
So if no text/html was retrieved, we should fall back to plain text
pasting.
closes#9787
opw-657137
In the base summernote library, each event modifying the editable area
DOM trigger an 'onChange' event which update the textarea associated
with the editor.
Some widget (ImageDialog) have been entirely rewritten for Odoo without
copying this behaviour. Hence for those components, if they were the
last to be used and only in the instance of inline backend editor
(FieldTextHtmlSimple widget), before saving updating the widget value by
the current editor value is required.
closes#9784
opw-654240
Some feature of the iframe embedded editor may require csrf token
present, thus it has been added in the same way that cea29e0c0 did.
The web editor iframe template is also used to display the value without
editing it and in this instance having the csrf has no meaning.
opw-656685
Summernote sometimes doesn't take into account HTML comment could be
embedded in the edited content, this can lead to issue since this
situation can happen in Odoo.
This commit patch the "isVisiblePoint" summernote's function to take
care of this issue.
opw-656332
Issue: if the currency is before the value and we try to add a number at the begin of the value, the number is not saved (because the browser insert the number before the span).
Add a onEnableEditableArea in the rte to change the contenteditable value and the default behavior.
Currently server side there is two differents source for html content
displayed on a qweb rendered page:
1) ir.ui.view arch value
are stored as xml and are unescaped before being displayed, so we have
to escape the text nodes before saving.
e.g:
* should be stored as   since it is an HTML entity but
not a defined XML entity,
* & should be stored as & since when unescaping it, it
would become & which is invalid in HTML,
* < should be stored as &lt; since when unescaping it, it would
become `<` so HTML text node could become HTML element node.
The tag themselves can also be escaped but it often has the same result:
<em&;gt;blah</em> is the same as <em>blah</em> when unescaping
is applied to both.
But it is required is some instance, e.g <!DOCTYPE html> unescaped would
be invalid xml.
2) openerp.fields.Html value
are stored directly in HTML formatting and should, conversely, not be
escaped before being stored.
Thus when saving an ir.ui.view part modified thanks to the website
editor, an escaping of text node content is carried out to take this
into account, but the same was currently not done for the v9.0 new
translation system.
This commit apply the same logic when saving ir.ui.view as when saving
ir.translation values.
* when getting the src of an uploaded attachment we have to use src which
is by default url,
* in a MediaDialog the pager is shared between the document and image
dialog, but when changing page, it was done for both (even if not
displayed),
* select the image after uploading it in the ImageDialog.
closes#9284
opw-653061
opw-653167
In IE11, when adding a range to a selection that can fail if this range
is not displayed (display non on itself or an ancestor) or is not already
inserted in the dom.
e.g: IE fails in the following situation: http://jsfiddle.net/7cmf2tt9/7/
The feature causing this situation is minimal : it only set the cursor
at the end of a FieldTextHtmlSimple widget (the default widget for
fields.Html). This commit thus only ignore that error.
note: this is not an issue on IE Edge.
closes#9216
opw-652347
Difficulty for the user to understand how to change the images.
Some options summernote being in the bar and the other in the snippets editor.
Need to merge this options.
On Firefox, the website page is not completely reloaded after saving or
cancelling. Because of this behavior, the Edit button is kept disabled,
forcing the user to completely refresh the page in order to activate the
Edit button.
When we initialize the web editor, the font size in the toolbar is
initialized to NaN.
What is done:
- Initialize the Summernote editor in initialize_content
- Render the content of the node in render_value
- Append the node to the DOM
Since the Summernote editor is initialized in initialize_content, the
node is still hidden. Since the node is hidden, Summernote won't be able
to determine the style info of the text (see method fromNode from
Style.js). Indeed, when jQueryCss is called, $node.is(':hidden') is true
which will lead to styleInfo['font-size'] = NaN.
To avoid patching Summernote, we take advantage of an existing trigger
which reloads the button content upon mouseup. This is also safer than
initializing Summernote after appending the node to the DOM.
opw-652041
When using the tab key on non text node range, it could fail in some
given case.
Also when removing the last element of the table row, a correction was done in
d33086c03f but if there was no element before the table (eg. the editor
is empty) an error could occur.
Tests for null range were not done in #8845, so in given case (where the
focus is not in the editor) we could get an issue.
The code for remembering the selection when clicking the editor
was made useful in d33086c03f, but there was an edge case when
the editor itself was in a modal: then the selection would be lost.
This commit change the code as following:
1) restore the selected range if:
- the current selected range is not in the editable of the active editor
- there is a corresponding saved selected range or we are in an embeded
editor (and not in air mode as when editing the website)
2) save the selected range if:
- we don't restore the selection,
- the current selected range is in the active editor editable area