Commit Graph
87 Commits
Author SHA1 Message Date
Christophe Matthieu 5b5f89e2be [FIX] web_editor: select default text of the snippet when click on the text 2015-10-29 15:31:42 +01:00
Christophe Matthieu c8e7e1dc5b [FIX] web_editor: don't remove char after a selection when click on delete
Issue: click on an image or create a text selection and click on delete, the char after the selection is removed
2015-10-29 15:31:42 +01:00
Christophe Matthieu dbce114ba6 [FIX] web_editor: remove useless duplicated code 2015-10-29 15:31:42 +01:00
Nicolas Lempereur 1da79c54a1 [FIX] web{site,_editor}: gallery upload image
* 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
2015-10-29 13:25:27 +01:00
Christophe Matthieu a71caede2d [FIX] web_editor: keep the javascript reference to globalSelector object for odoo javascript module
related to #9284
opw-653061
opw-653167
2015-10-29 13:25:26 +01:00
qsm-odoo b3590c7104 [FIX] website, web_editor: missing returns in theme JS 2015-10-27 16:13:44 +01:00
qsm-odoo 652956d192 [FIX] web_editor: missing !important on mt,mb,ml,mr rules 2015-10-27 16:13:15 +01:00
Nicolas Lempereur cb23864262 [FIX] web_editor: ie issue with range within undisplayed
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
2015-10-26 15:25:30 +01:00
Christophe Matthieu 148703370a [FIX] web_editor: visible char have the same feature that delete keydown 2015-10-26 11:43:37 +01:00
Christophe Matthieu 971437e8b0 [FIX] web_editor: remove td content on keydown delete with multi td selected 2015-10-26 11:43:37 +01:00
Christophe Matthieu 5451cf518f [FIX] web_editor: don't merge tr when keydown delete on the last row table cell 2015-10-26 11:43:37 +01:00
Christophe Matthieu ed9a410c11 [FIX] web_editor: add image display in width:100% by default 2015-10-26 11:43:37 +01:00
Christophe Matthieu 3959afc5b5 [FIX] web_editor: backspace and enter in table cell don't break or remove td (remove tr but not td alone) 2015-10-26 11:43:36 +01:00
Christophe Matthieu 0be54422c0 [FIX] web_editor: use arrow up/down to switch table cell 2015-10-26 11:43:36 +01:00
Christophe Matthieu a291adb314 [FIX] web_editor: copy-paste content keep architecture
The paste don't keep the architecture, usability team want to past the architecture but remove extra style and wrong node like span.
2015-10-26 11:43:36 +01:00
Christophe Matthieu d7b5eeabeb [IMP] web_editor: move picture options from snippet to summernote bar
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.
2015-10-26 11:43:36 +01:00
Christophe Matthieu 0505c45164 [FIX] web_editor: don't display the summernote black picture overlay
Issue: the overlay is confusing for user because summernote the size change is not active (to have a responsive design)
2015-10-26 11:43:36 +01:00
Christophe Matthieu 80a396b9fd [FIX] web_editor: remove useless line 2015-10-26 11:43:36 +01:00
Nicolas Martinelli d1e6ba6d9e [FIX] web_editor: forcedReload of the page
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.
2015-10-14 11:24:11 +02:00
Nicolas Martinelli 7661a7402b [FIX] web_editor: trigger mouseup at start
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
2015-10-13 17:58:33 +02:00
Nicolas Lempereur 8acd1c40fe [FIX] web_editor: alt+tab in table and tab on collapse
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.
2015-10-09 08:43:49 +02:00
Nicolas Lempereur 8c3b4b80c6 [FIX] web_editor: null range and remember_selection
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
2015-10-09 08:43:43 +02:00
Markus Mattes e80e1e1c28 [FIX] web_editor: range is null if focus outside of editor
The range can be null if the focus is not in the editor at serveral
places.

closes #8845
2015-10-09 08:43:37 +02:00
Markus Mattes 0b18941e33 [IMP] web_editor: rename range variable rng to r
Put all rng to r to have the same concept in the whole file as well as
in the summernote codebase.

closes #8845
2015-10-09 08:43:31 +02:00
Christophe Matthieu e047130314 [FIX] web_editor: oStyle.range can be undefined
On initialisation summernote call update method with oStyle.range is undefined.
The range can be undefined because the update is call before any selection and attach method from summernote call the update without range.
The method summernote_table_update try to use the range and raise an exception.

fix: Check if oStyle.range exits.
2015-10-06 10:44:37 +02:00
qsm-odoo 8181a80080 [IMP] web(_editor): translate icon compatibility
Add the $translate variable for enterprise compatibility and hide it in
web editor widgets (these had already no translate icon in community).
2015-10-02 16:53:58 +02:00
Nicolas Lempereur cbb8799b6f [FIX] web_editor, mass_mailing: summernote oversight and video
* some oversight when updating summernote with d33086c,
* fix style when replacing image with video
2015-10-02 12:24:05 +02:00
Xavier Morel cea29e0c01 [ADD] client-side CSRF support
* add CSRF token as core.csrf_token
* add CSRF tokens to client-generated and/or JS-submitted forms
* remove broken "compatibility" mode of web.ajax.post

  /cc @dmo-odoo I've no idea how that was supposed to work, from looking
  things up all modern browsers seem to support FormData, and old IEs
  which don't don't support fallbacks either and would require
  submitting an actual form as fallback so...
2015-10-01 01:36:50 +02:00
Christophe Simonis 7636b510a2 [ADD] *: CSRF protection in forms and routes
* make CSRF protection the default on all non-SAFE methods
  note: there currently is no way to call a CSRF-protected endpoint
  without a form-encoded entity-body as that's the only place we get the
  CSRF token from.
* simple CSRF token generation: just use the HMAC'd session id, no
  generating a new random token per session then HMAC it
* use constant-time equal function to avoid timing attacks
* assert that a database secret is configured before hashing/validating
  the CSRF token
* opt-out database manager from CSRF: The super-admin password serves
  the purpose of a CSRF token in the database manager screens.
  There is no request database to obtain the
  secret and generate a CSRF token.
2015-10-01 01:36:50 +02:00
Nicolas Lempereur 7c67091a96 [FIX] web_editor: correct typo translation simple html widget
fixes #8698
2015-09-30 17:21:51 +02:00
Nicolas Lempereur d33086c03f [IMP] web_editor: update summernote up to 2015-08-31
update summernote library up to revision:
 https://github.com/summernote/summernote/commit/a0f26e300

see https://github.com/summernote/summernote/ for history

closes #8704
2015-09-29 14:47:24 +02:00
Christophe Matthieu d459359e87 [IMP] web_editor: Convert font-awsome into picture before convert class into style to remove unnecessary style attributes 2015-09-28 15:23:35 +02:00
Christophe Matthieu bdf58adb46 [FIX] web_editor: send mail to outlook and keep image size
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).
2015-09-28 15:23:35 +02:00
Christophe Matthieu 6ebcc06152 [FIX] web_editor: remove 'lang' from the context to save master website xml 2015-09-28 15:23:35 +02:00
Christophe Matthieu 9e428ae849 [FIX] web_editor: media trigger content_changed when change the media 2015-09-28 15:23:35 +02:00
Christophe Matthieu 4ba0232bf8 [FIX] web_editor: apply o_dirty class on change
Before: if a user blur a editable area without editing, the editor is removed and all bind are remove.
The 'content_changed' bind are removed and the 'o_dirty' class is never apply.
2015-09-25 16:06:21 +02:00
Christophe Matthieu 743f26a796 [FIX] web_editor: display editable area placeholder 2015-09-25 16:06:21 +02:00
Nicolas Lempereur eed63c793a Revert "[IMP] web_editor: update summernote up to 2015-08-31"
Revert till several issues are solved.
2015-09-25 10:53:08 +02:00
Nicolas Lempereur 144b4f8098 [FIX] website: range lost in phantomjs 2015-09-25 08:30:23 +02:00
Nicolas Lempereur 7747e0751f [IMP] web_editor: update summernote up to 2015-08-31
update summernote library up to revision:
 https://github.com/summernote/summernote/commit/a0f26e300

see https://github.com/summernote/summernote/ for history

closes #8704
2015-09-25 08:29:16 +02:00
Damien Bouvy 84b471cfa1 [IMP] web_editor: usability: allow saving even when nothing was changed when editing in the frontend 2015-09-24 11:50:25 +02:00
Christophe Matthieu 21c88933f7 [FIX] web_editor & website: don't display edit placeholder if the node have class oe_no_empty or oe_not_editable 2015-09-24 09:36:41 +02:00
Christophe Matthieu 27d1ce0454 [FIX] web_editor: transparency of modal backdrop instead of black brackground 2015-09-24 09:36:41 +02:00
Christophe Simonis cb0987889c [FIX] account_cancel,web_editor: small issues introduced during previous forward-port 2015-09-23 15:39:09 +02:00
Christophe Simonis 57168a9e90 [MERGE] forward port of branch saas-6 up to a669433 2015-09-23 14:34:26 +02:00
Christophe Matthieu a41f915493 [FIX] web_editor: iframe of html widget must be checked before render value
If the iframe is destroyed, detached, hide (eg: click on a record, return into the list view and click on an other record), the render_value method try to resize the iframe but jQery raise an exception because contentWindow doesn't exist.
2015-09-21 13:45:36 +02:00
qsm-odoo 9632f897ad [IMP] web_editor: change font-family to webclient default 2015-09-11 11:38:07 +02:00
Nicolas Lempereur 7a5e5adb56 [FIX] website_mail: special case for css splitting
The css of a mail is inlined as best as possible for the mail sending.

Previously, if there was a selector like .ch[onclick="ga(this,event)"]
the simple splitting would split in the middle and get one erroneous
selector (which then would trigger an error).

With his commit, rules containing " or ' are ignored.

opw-643548

note: forward port of 6316bce
2015-09-08 13:29:23 +02:00
Nicolas Lempereur bc8e91b2aa [FIX] web_editor: update .o_form_field_empty when loaded 2015-09-04 14:45:14 +02:00
Nicolas Lempereur a134c88d00 [FIX] web_editor: do paste after removing selection 2015-09-04 11:54:05 +02:00