Commit Graph
1798 Commits
Author SHA1 Message Date
qsm-odoo c197d3f8bf [FIX] web_editor: properly combine we-colorpicker Class attributes
Part of https://github.com/odoo/odoo/pull/42986
2020-01-09 12:50:10 +00:00
Jason Van Malder abc6dbdc76 [FIX] web_editor: fix summernote text drop on firefox
Issue

    - Have firefox
    - Go to any chatter
    - Open full editor
    - Write some "test" words with line breaks
    - Select one of your "test" words
    - Drag & drop it somewhere else in the editor

    Welcome on test.com! (redirected)

Cause

    Summernote doesn't preventDefault on drop event, so firefox
    think we want to go to another URL.

Solution

    Add the preventDefault manually.

    This reveals another issue which is solved by importing
    this PR's code https://github.com/summernote/summernote/pull/3327
    (with adaptation for our dinosaurus version)

OPW-2158112

closes odoo/odoo#42759

X-original-commit: 197145ac19fd65dcfbcbae81c8b5dd54025185a4
Signed-off-by: Jason Van Malder <jvm-odoo@users.noreply.github.com>
2020-01-06 13:11:10 +00:00
Samuel Degueldre 6481d0b353 [REF] website, *: remove unused class oe_custom_bg
*: web_editor, website_forum, website_mass_mailing, website_slides

This class no longer does anything.

Part of odoo/odoo#41561
task-2155808

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-31 13:25:21 +00:00
Samuel Degueldre de6589619b [IMP] website, web_editor: migrate background options to use imagepicker
The previous commit introduced a new imagepicker uservaluewidget, which
allows the user to select a picture or video in a generic way, this
commit adapts the background and CoverProperties snippet options to make
use of this uservaluewidget instead of duplicating most of the logic.

Part of odoo/odoo#41561
task-2155808
2019-12-31 13:25:19 +00:00
Samuel Degueldre f8632ec6f3 [IMP] web_editor: add an image-picker UserValueWidget
This commit introduces a new web_editor UserValueWidget on the
we-imagepicker tag, this widget allows the user to pick an image or a
video using the MediaDialog, and calls the containing snippet option's
method (specified via data-attribute) with the url of the chosen picture
or video as widgetValue. Videos are disabled by default and can be
accessed through the use of the data-allow-videos="selector" data
attribute, any $target that matches the selector will have videos
available in the media dialog.

Part of odoo/odoo#41561
task-2155808
2019-12-31 07:58:10 +00:00
qsm-odoo f17e5d3339 [FIX] web_editor: allow to change common BS3/BS4 colors used on snippets
Hardcode some existing colors (but make them hidden in the colorpicker)
so they can be removed from snippets when selecting another color.
Normally, the chosable colors do not contain them, which prevents them
to be removed. For example, normally, the 'alpha' and 'beta' color
(which are the same as primary and secondary) are displayed instead of
their duplicates... but not for all themes.

This commit was mainly about the addition of 'success', 'info',
'warning' and 'danger' colors to the list (as we do not give the
possibility to select them through the editor but they might still be
used by snippets or in old databases). This also solves a bug for
upcoming features in master.

This commit also makes the excluded sections of the colorpicker hidden
instead of removed for the same reason.

In preparation of task-2152191 and others.

closes odoo/odoo#42505

X-original-commit: 222f72386a8a0a28ff450bf8dfa6a1ac8fa48d8e
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-30 15:40:00 +00:00
qsm-odoo de242cae82 [REF] web_editor: factorize code to round left panel input values
Part of https://github.com/odoo/odoo/pull/42407

closes odoo/odoo#42407

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-27 12:04:06 +00:00
qsm-odoo 22e5a56696 [REF] web_editor: no left panel input default value as placeholder
Changes (+ fix) to the way inputs work:

- Placeholder is now independant from the default value and set through
  data-placeholder. When emptying an input, it still sends the default
  value but appears empty. The value is only visually added in the input
  after leaving it (or hitting enter), after the validation through
  _computeWidgetState (because now when the default value is applied on
  a snippet, the value is displayed in the input as any other value).

- Consider inputs active if they hold a value and, in the case the input
  has an associated unit, if that value is different from 0 (important
  for visibility checks).

- If no default value is set and that a unit is set, the input will
  return the ('0' + unit) value by default (no need to specify it in xml
  anymore).

Part of https://github.com/odoo/odoo/pull/42407
2019-12-27 12:03:59 +00:00
qsm-odoo a8b0cc451c [FIX] web_editor: update leftpanel widget visibility after value updates
The visibility was sometimes updated too soon, while the values were not
updated yet.

Part of https://github.com/odoo/odoo/pull/42407
2019-12-27 12:03:47 +00:00
qsm-odoo 4b6245eb32 [FIX] web_editor: fix default value handling of left panel inputs
closes odoo/odoo#42295

X-original-commit: 680e1de7d6efaaa342366899460d00b79455ab18
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-23 12:40:46 +00:00
Jason Van Malder fb926fe883 [FIX] web_editor: fix mail template toolbar in debug mode
Issue

    - Install Mail template
    - Enable debug mode (normal or assets)
    - Create or edit a mail template
    - Click in the text editor

    The toolbar is not showing up (it does when we're not in debug mode)

Cause

    We are doing `splice(-1, 0, ['view', ['codeview']])` on toolbar
    which is undefined, the method crashes and the toolbar doesn't
    render.

Solution

    Checking if the toolbar is defined before doing all that logic.

OPW-2151675

X-original-commit: 0e5ca50d5a8401bb3495e83691eab5c86a97a616
2019-12-19 15:26:15 +00:00
Romain Derie 705b2faa69 [REF] web_editor, *: use the name of invisible snippets in the UI
* website, website_mass_mailing

Instead of a custom string, use the name of the snippet when displaying
an 'invisible' snippet in the 'invisible elements' section.

This commit also fixes a font-awesome bug introduced with the library
update revert.

Part of https://github.com/odoo/odoo/pull/41789

closes odoo/odoo#41789

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-19 15:30:06 +00:00
qsm-odoo 2a0a0e52dd [REF] web_editor, *: review invisible element click action
* website, website_mass_mailing

Instead of triggering an event on the invisible element when its related
button in the left panel is clicked, the invisible element's options are
now toggled (shown if were hidden and hidden if were shown). To do that
the new 'onTargetShow' and 'onTargetHide' methods are called, and the
appropriate action can be done there.

Those two new methods are also automatically called in other cases:
- When dropped in the page, after onBuild, 'onTargetShow' is called
    for any snippet.
- Before cleanForSave: 'onTargetHide' is called for snippets with the
    'o_snippet_invisible' and 'onTargetShow' is called for the others.

In case the element visibility should be toggled another way (like the
close button of a modal), the option can trigger_up an event named
'snippet_option_visibility_update' with a 'show' parameter so that the
the UI is updated accordingly (and so that the options are hidden if
necessary).

Part of https://github.com/odoo/odoo/pull/41789
2019-12-19 15:30:06 +00:00
qsm-odoo 32e294e7da [REF] web_editor: regroup snippets menu mutexes
Snippet enabling operations and snippet edition operations were mutexed
individually. In fact it simplifies the code and it is probably better
to chain all snippet operations, through an unique mutex.

Part of https://github.com/odoo/odoo/pull/41789
2019-12-19 15:15:50 +00:00
qsm-odoo d7813c49c2 [FIX] web_editor: prevent overlay update on modal close button click
Part of https://github.com/odoo/odoo/pull/41789
2019-12-19 15:15:42 +00:00
qsm-odoo 1fed9c4a00 [REF] web_editor: allow async cleanForSave
Part of https://github.com/odoo/odoo/pull/41789
2019-12-19 15:15:33 +00:00
qsm-odoo 74419dc80b [REF] web_editor: remove useless files
Commit https://github.com/odoo/odoo/commit/eb0ea8efbe932c140302e9f8da33a839bcd73146
removed the use of the 'rte' and 'rte_inline' without removing the tests
themselves. They apparently cannot work anymore as using routes which
do not exist anymore.

This commit removes the test files.

Part of https://github.com/odoo/odoo/pull/41789
2019-12-19 15:15:19 +00:00
qsm-odoo 2cd95e0c75 [FIX] web_editor: right-align inputs only if they got an unit
Part of https://github.com/odoo/odoo/pull/42136

closes odoo/odoo#42136

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-19 10:07:08 +00:00
qsm-odoo ea8f516ca0 [FIX] web_editor: align row content on the right
Part of https://github.com/odoo/odoo/pull/42136
2019-12-19 10:07:00 +00:00
qsm-odoo 2ebe088def [FIX] web_editor: missing use of applyTo param for visibility update
Part of https://github.com/odoo/odoo/pull/42136
2019-12-19 10:06:54 +00:00
qsm-odoo d08023f06a [FIX] web_editor: close widgets before updating the left panel
Part of https://github.com/odoo/odoo/pull/42136
2019-12-19 10:06:29 +00:00
qsm-odoo 04bd016116 [FIX] website, *: fix tabs breaking when increasing number of columns
* web_editor

Previously, increasing the number of columns on the tabs snippet would
cause the newly created tabs to toggle the original tabs instead of its
own, this was caused by an oversight where the columns were clone
directly using jQuery, and the snippets' the onClone method was not
called on the newly created columns (here, tabs). This commit move the
responsibility to clone onto the SnippetsMenu so that it can create the
appropriate snippetEditor if needed and call its onClone method.

task-2070643

closes odoo/odoo#42130

X-original-commit: 77ebadfe6ada8ad1fa4d6e476b9534f252499d92
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-18 13:16:31 +00:00
Samuel Degueldre ed5aa6be63 [FIX] web_editor: fix background postion option on columns
The background position snippet option makes a copy of the snippet to
use in the overlay, such that it is over all content and the user can
easily see the end result of dragging the background. However, an
oversight in the CSS didn't account for the possibility of the copied
element to have a relative max-width (% of its container), because of
this, the overlay for those items was incorrect. This commit fixes that
issue by overriding the max-width and max-height properties of the
copied item.

closes odoo/odoo#42106

X-original-commit: 3b8cadd579f3309640a938bcce39ac83ac7a6942
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-17 13:05:06 +00:00
qsm-odoo 2cc8316c66 [IMP] web_editor: add new way to toggle left panel widget visibility
Now, instead of extending updateUI, developers can extend
_computeVisibility and _computeWidgetVisibility to indicate if the
whole option or a specific widget needs to be visible or not.

Without any JS, developers can also add a 'data-dependencies' attribute
on widgets whose value is a comma-separated list of widget names. Widget
names are specificied through 'data-name'.

Other notable changes:

1) *All* the options UI of a same section are updated on a change (not
   only the widgets of the same option).

2) Back as it was before: the UI is only updated in non-preview mode
   (prevent flickering of background removal during color preview
   because of point 1).

Part of https://github.com/odoo/odoo/pull/41600

closes odoo/odoo#41600

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-16 09:14:01 +00:00
qsm-odoo 684a19f0c1 [REF] web_editor: review UI update code in left panel
No more notion of 'can update UI' and a callback to filter the widget
which should be updated: the base case is that a widget is not updated
if being previewed and notion of "being previewed" is extended to
"having the focus or being opened".

Part of https://github.com/odoo/odoo/pull/41600
2019-12-16 09:14:01 +00:00
qsm-odoo d36d2ac5af [FIX] web_editor: fix broken design of non-full widget editor select
closes odoo/odoo#41889

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-13 17:18:13 +00:00
qsm-odoo 2dad879fad [FIX] web_editor: auto-trim values read on user value widgets 2019-12-13 17:18:13 +00:00
qsm-odoo 2feb17cc0a [FIX] web_editor, website: missing wait of async parts in left panel
- updateUI is async, most of the time it is really important to wait for
  its async parts.

- method options are now async and should wait for async parts and user
  choices before resolving their returned deferred.
2019-12-13 17:18:13 +00:00
qsm-odoo fab7cd3a79 [REF] web_editor: review left-panel datetimepicker
While it was working perfectly in normal flows, some elements would not
have worked correctly if the datetimepicker was used another way. This
was revealed while working on another task.

This commit also fixes some issues:

- The datepicker was not working in languages where the date format is
  different that the english one (the date was displayed correctly but
  interpreted as if it was using the english formatting).

- Because of summernote, the datepicker sometimes loses the focus and
  get it back directly... but this is enough for it to close. Now, we
  open the datepicker on focus, not on click, so that summernote only
  make it close then reopen right away (not possible to notice).
2019-12-13 17:18:13 +00:00
qsm-odoo c415f08f89 [FIX] web_editor: prevent overlay-disable when clicking on a datepicker
When clicking inside a datetimepicker but not on a control element,
the datetimepicker was left opened while the left panel options
disappeared.
2019-12-13 17:18:13 +00:00
Kishan Gajjar 81b0149a1b [FIX] web_editor: fix few CropImageDialog issues
whenever we crop any image we set few data attributes to the cropped
image but if we change a cropped image from media dialog (ImageWidget)
we should remove crop related attributes from that newly added image
so that newly added image can be cropped with correct data.
since https://github.com/odoo/odoo/commit/a473453b3166a381130d9bd6ec4851b9e1ecab26
we are setting 'crop:originalSrc' data to the cropped image but not
removing from media dialog.

this commit also avoids unnecessary creation of an attachment.

closes odoo/odoo#41779

X-original-commit: 4a15b44243b3edbc7b2350806fea1a58f5734332
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-12 09:46:57 +00:00
Romain Derie 1559750620 [FIX] web_editor, website: better handling of invisible title entry
Using `Title` as invisible entry had the benefit of being translatable
but has the issue to be displayed on mouse over which we don't want.
Using `string` will fix it and will still be translatable.

closes odoo/odoo#41646

Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2019-12-10 15:15:17 +00:00
qsm-odoo 90c672cd22 [FIX] web_editor: prevent widgets with no method to auto-update $target 2019-12-09 12:48:07 +00:00
qsm-odoo 2521578033 [REF] website, *: automatically refresh widgets on option change
* website, website_mass_mailing

Now, when any option method is called (editor left panel), the widgets
related to the targeted DOM is automatically updated. This is possible
to disable for a specific widget with `data-no-widget-refresh="true"`.

This commit also makes the `_refreshPublicWidget` method better handle
its async component: it is now "fully async" so the caller should wait
for its resolution before executing some other related code.
2019-12-09 12:48:02 +00:00
qsm-odoo 255be177e9 [IMP] web_editor, *: make option methods async
* website

Now, the option methods can be async. All the option methods are still
executed sequentially thanks to a Mutex at the snippet menu level.
2019-12-09 12:43:26 +00:00
b0941d19a0 [FIX] web,*: fix all tests and test utils to use native events
In this commit:
- transformed test_utils helpers to always trigger native events
- introduced new test_utils_create helper: prepareTarget
- updated qunit asserts to support Owl Components
- updated all misused helpers that would crash with the updated test_utils

Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
Co-authored-by: Pierre Rousseau <pro@odoo.com>
2019-12-09 11:09:10 +00:00
Kevin Baptiste 6cbe824871 [REV] web: reverts update to fontawesome 5.11.2
This reverts commit ff1c35513a.

closes odoo/odoo#41480

X-original-commit: 116057b26e71db4692280463669f3e80d813ddcc
Related: odoo/enterprise#7110
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-12-09 10:33:36 +00:00
Romain Derie 1915fe3598 [IMP] web_editor, *: add new zone in left panel to handle invisible DOM
* website, website_mass_mailing

We only have one invisible snippet (newsletter popup) which is handled
by adding a yellow alert in the DOM in edit mode to be able to click
somewhere to open the snippet options.

As we will add some new invisible snippet (generic popup, cookies bar,
and probably more) this needed to be improved.

Now, any snippet having the `o_snippet_invisible` class will have an
entry in the left panel in a dedicated zone to edit itself. This also
allows to get rid of the yellow alert, making sure that "what you see
is what you get" in the editor zone.

task-2150966

closes odoo/odoo#41420

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-08 18:03:30 +00:00
fja-odoo 92fdbec889 [IMP] website, web_editor: add new chart snippet
Introducing a new snippet called Chart.
This snippet uses the lib https://www.chartjs.org/

6 types of graph are possible:
Bar vertical
Bar horizontal
Line
Pie
Doughnut
Radar

task-2092267

closes odoo/odoo#40051

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-06 17:59:59 +00:00
Romain Derie 699890d3f0 [IMP] web_editor, website: add new 'Countdown' snippet
This commit introduces a new snippet: Countdown.

The countdown snippet is composed of 4 circle countdown, one for every time
unit: seconds, minutes, hours and days.

When countdown ends, the user can chose between 3 possible actions:
1. Nothing
2. Show message: show a message once the countdown ends.
   The message will be displayed bellow the countdown (stopped on 0) or will
   replace the countdown depending on the option selected.
   The message can be edited through the website builder.
3. Redirect: redirect the user to the chosen URL. If the user is on the page at
   the exact moment the countdown reach 0, the user will be redirected
   automatically. If the user lands on the page after the countdown has reached
   0, there will be no redirection and the link will be shown bellow the
   countdown (stopped on 0) or will replace the countdown depending on the
   option selected.

The countdown layout can be customized in multiple ways:
1. By choosing to hide some time units. For instance, seconds can be hidden or
   only days shown.
2. By changing its size between small/medium/large.
3. By changing its basic design (circle, boxes, clean).
4. By changing its advanced design (shape, background, progress bar..)

task-2093081

closes odoo/odoo#39773

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-06 15:14:39 +00:00
qsm-odoo 75ebe51131 [FIX] web_editor: fix traceback on left panel input click
I removed a handler without removing the event binding by mistake...

closes odoo/odoo#41481

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-06 13:45:43 +00:00
Ravi Singh 5e7230b6bb [FIX] web_editor: remove useless 'o_small' style for colors
task-2151416

closes odoo/odoo#41473

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-06 13:18:05 +00:00
qsm-odoo 864cb9132d [REF] web_editor: do not select left panel input content automatically
Part of https://github.com/odoo/odoo/pull/41402

closes odoo/odoo#41402

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-06 10:05:55 +00:00
qsm-odoo 83fae16bb9 [REF] web_editor: review user value widgets scss
Part of https://github.com/odoo/odoo/pull/41402
2019-12-06 10:05:55 +00:00
qsm-odoo a41717bebf [IMP] web_editor: add left panel input on a new line by default
Before this commit, inputs were always a title followed by the <input/>
on the same line.

Now it follows the same logic as we-row elements: title on a line,
<input/> on a new line, except if the 'o_we_inline' class is used.

Part of https://github.com/odoo/odoo/pull/41402
2019-12-06 09:45:30 +00:00
qsm-odoo e4d4aab042 [IMP] web_editor: validate input entry with ENTER in editor left panel
Especially useful with a no-preview input.

Part of https://github.com/odoo/odoo/pull/41402
2019-12-06 09:45:30 +00:00
Samuel Degueldre 65262c5e3e [IMP] web_editor: allow options to target subelements of a snippet
Add the ability for a snippet option's method to target multiple
subelements of the option's $target using the data-apply-to attribute
with a jQuery selector. This is achieved by calling the method on a
proxy of the object where accesses to the $target are redirected to a
different object.

While it may seem preferable to just set the $target before calling the
method and restoring it after the call, as this would be much simpler
code, it is not possible as this breaks down under asynchronous
conditions, hence the need to operate on a proxy such that all
concurrent asynchronous operations have their own independent $target
available for their entire time of execution.

Part of https://github.com/odoo/odoo/pull/41402
2019-12-06 09:45:30 +00:00
qsm-odoo d7f4289166 [FIX] web_editor: prevent setting values of non-activable methods
closes odoo/odoo#41404

X-original-commit: 6af602fa676db19260a828a3cfd0befe3ba1ef4e
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-05 10:59:48 +00:00
qsm-odoo b62b686066 [FIX] web_editor: fix some design issues with editor left panel
- Some layout broken when a scrollbar appeared
- The edit icon of background disappeared when the filename was too long

X-original-commit: d3419fed27147c92e673fb367657db8865a0d538
2019-12-05 10:59:47 +00:00
qsm-odoo 8180b46563 [FIX] web, web_editor: improve browser support for JS lazy loading
opw-2125858

closes odoo/odoo#41371

X-original-commit: d19982b7a22b04ab76c787b9adfffd24552eb5c0
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2019-12-04 16:40:03 +00:00