Commit Graph
2344 Commits
Author SHA1 Message Date
Jeremy Kersten 432997b967 [IMP] website: support custom placeholder in empty-structure for editor
Before this commit, the placeholder was hardcoded:
'Drag building blocks here'

Now you can customize the placeholder using a data-editor-message attribute.
2018-11-27 16:13:01 +00:00
Christophe Simonis 7a0243ec15 [MERGE] forward port branch 12.0 up to b3052b690f 2018-11-23 12:11:32 +01:00
qsm-odoo 180de24df0 [FIX] website: allow publishers to save their website edition
On save, the editor will ask to parent widgets if something needs to be
done first. The website navbar will receive that demand and asks to its
action-capable components to do something. For example, the content menu
handles page-related options saving. However, some users with limited
access rights do not have the content menu... but the website navbar
expects that the save action is performed. So, this empty action is
defined here so that all users have an 'on_save' related action.

This was only happening since 12.0 as 'on_save' actions were introduced
there to save page-related options.

closes odoo/odoo#28810
2018-11-20 10:05:54 +00:00
Géry Debongnie abf32b8b21 [REF] *: update js test suite to use helpers
This rev. introduces robust helpers to use in the JS tests suite to
interact with DOM and components, and starts using them (almost)
everywhere.

All the helpers are exposed though testUtils.js.

There are 2 kinds of helpers:

1. Assertions
-------------
 * assert.containsNone, containsN, containsOnce check that the DOM
   (or a specific part of the DOM) contains a `selector`. It
   generates a correct error message automatically.
    ex: assert.strictEqual(form.$('.o_form_editable'), 1, "msg");
        -> assert.containsOnce(form, '.o_form_editable');
 * assert.isVisible, isNotVisible check that the DOM has an element
   visible or not. They also check that the element is actually in
   the DOM (before most tests didn't verify this).
 * assert.hasClass, doesNotHaveClass, hasAttrVAlue, check specific
   properties of a DOM element, and also validate that it is
   applied on a single existing DOM element (before most tests
   didn't verify this).
    ex: assert.notOk(form.$('button').hasClass('btn-primary'));
       -> assert.doesNotHaveClass(form.$('button'), 'btn-primary');

2. Utilities
------------
The goal of the utilities is to centralize the definition of many
standard components and interactions, ensuring that when we
refactor the JS framework, we do not need to change all the tests.

Existing mock utilities (addMockEnvironment, intercept, path,
patchDate, unpatch and fieldsViewGet) are moved to
'testUtils.mock.*'.
Existing DOM utilities are moved to 'testUtils.dom.*'.
New dom utilities are created for opendDatePicker, click,
clickFirst and clickLast. Helper `click` verifies that there is
exactly 1 element visible in the DOM you click on, `clickFirst`
and `clickLast` verify that there are more than one element on the
DOM.
 ex: form.$('button').click();
     -> testUtils.dom.click(form.$('button'));

New Form utilities: (testUtils.form.*)
 clickEdit, clickSave, clickCreate, clickDiscard, all clicks on
 the control panel buttons of the form.
 `reload` reloads the form data.

New modal, graph, kanban and pivot utils (testUtils.pivot.*,
testUtils.kanban.*, etc.).

New fields utils: (testUtils.fields.*)
 * editInput, editSelect: allow to change the value of a field,
   using a selector to identify it. They validate that the input
   exists and trigger the change event automatically.
 * editAndTrigger: allow to modify a field and trigger specific
   events after the value change
 * many2one (testUtils.fields.many2one.*)
   clickOpenDropdown, clickHighlightedItem, clickItem,
   searchAndClickItem: use a field name instead of a selector and
   do all the complex mechanism to open, filter and highlight
   many2one fields.

Joint work with aab, dam, ged, mge, svs and vsc.
2018-11-19 11:24:28 +00:00
Christophe Simonis 6faad524cf [MERGE] forward port branch 12.0 up to bc744a1da4 2018-11-16 19:30:20 +01:00
qsm-odoo 931fb8f80c [FIX] website: recompute auto more menu on window full load
The previous code made sure we wait for images to be fully loaded before
initializing the auto more menu. But in some cases, it is not enough, we
also have to wait for fonts or even extra scripts. Those will have no
impact on the feature in most cases though, so we will only update the
auto more menu at that time, not wait for it to initialize the feature.

closes odoo/odoo#28684
2018-11-14 14:00:59 +00:00
qsm-odoo 6b9625e098 [FIX] website, *: enforce correct UI text-muted color
* web_editor

- Restore the preservation of Odoo text-muted color (the rule became
  !important with BS4 and had thus to become !important in the
  preservation mixin).
- Preserve base design in the "new content" menu (which now uses
  text-muted). Indeed, in some themes, the "new content" links were not
  even visible anymore.

closes odoo/odoo#28666
2018-11-14 10:59:34 +00:00
Goffin Simon 51982f9199 [FIX] website: Impossible to link an analytic account
Steps to reproduce the bug:

- Go to Website > Dashboard > Analytics and click on "Link my analytics account"
- Enter some data and save

Bug:

A traceback was raised: TypeError: website_set_ga_data() missing 1 required
positional argument: 'website_id'

opw:1905874

closes odoo/odoo#28636
2018-11-13 16:12:47 +00:00
Christophe Simonis 99d0e1b80e [MERGE] forward port branch 12.0 up to a403155dec 2018-11-12 13:06:48 +01:00
Nicolas Lempereur a403155dec [FIX] website: rtl on frontend when logged out
Before this commit, RTL on frontend was only enabled for connected user.

To have RTL, we add the direction on the element, and the RTL version of
the stylesheet for the applicable languages are generated thanks to rtlcss.

opw-1892757
closes #28434
2018-11-06 12:28:58 +00:00
qsm-odoo 566cece592 [FIX] website, *: review auto light and dark colors
* web, web_editor

The logic which chose if the user text color was supposed to be used as
bootstrap "dark" text color or bootstrap "light" text color
(https://github.com/odoo/odoo/commit/8b2dbd1441d6713d9072db03e8d3cb6c2246410f)
was fine when using the default theme with default bootstrap but was not
working as intended in some themes.

This commit also introduces a more accurate and complex method to
determine the correct contrasted color in most cases.

closes odoo/odoo#28468
2018-11-07 17:41:08 +00:00
qsm-odoo 0662a1948b [FIX] website: recompute carousel item heights on image loading
Some code is in charge of setting the same min-height for all items of
a carousel to the natural height of the tallest item, once the page is
loaded. This code was not working correctly in the case the natural
height of this tallest item depends on the height of one of its inner
image, as we have to wait for the image to be loaded in that case.

closes odoo/odoo#28159
2018-11-07 09:43:22 +00:00
Christophe Simonis b106b7ce0b [MERGE] forward port branch 12.0 up to dd70c68426 2018-11-06 16:40:07 +01:00
qsm-odoo 8c756a32a0 [REF] website: review theme dialog engine
Refactor the code to remove useless parts, simplify behaviors and allow
more customizations in future tasks.

closes odoo/odoo#28167
2018-10-26 09:29:53 +00:00
qsm-odoo 4f9a0cb4fc [FIX] website: add some compatibility for old BS3
This commit adds a compatibility file which can be added on demand by
enabling its associated view. This will basically map old BS3 classes
and structures to the related style with BS4.

closes odoo/odoo#27981
2018-10-23 08:53:19 +00:00
qsm-odoo 0170639262 [FIX] website: restore customize menu loading
When opening the customize menu as soon as the page became visible, an
RPC crashed and the toggable options did not appear anymore. This
happened:

1) DOM is ready.
2) The user click on the menu.
3) At the same time, the customize menu is initialized (`attachTo`),
   its event handlers are bound and the async `willStart` method is
   called.
4) The event handler for the user click is called... and crashes as
   requires a variable which would have been set in the `start` method.

The bug did not appear in previous versions as the handler was not using
the standard system and bound the event handler "by hand" in the `start`
method.

Maybe `attachTo` should not bind event handlers before the `willStart`
method is completed; this would be a subject for the master branch. This
commit solves the problem by setting the required variable in the
`willStart` method instead of the `start` method.

closes odoo/odoo#28578
2018-11-12 12:53:44 +00:00
qsm-odoo f906ab9124 [FIX] website: review action start on page loading
This commit fixes a bug introduced with https://github.com/odoo/odoo/pull/28251:
When opening the ace editor on page load thanks to the #ace-view-editor
URL hash, a JS error occurred preventing the editor to open.

This was due to the way actions were executed on page loading:
- Menu elements are initialized and can handle actions
- On initialization, the ace menu tried to launch the editor
- First, it asked that all widgets are closed (see mentioned PR)
- The website handled that action demand by asking everyone to close
  their widget
- The 'new content' menu tried... and failed as referenced a variable
  which would only have been created in the start method.

Conclusion: before handling actions, all action-capable widgets should
be started. This is what this commit does: when receiving an action
demand, we first wait for the action handler to be fully started. This
implied another change: before, many menus were waiting for the result
of an action to notify that their start method is finished... this
would cause a deadlock in the new system so those were removed, this did
not make much sense anyway (if the result of that starting action has to
be known, a dedicated event/method should handle that).

closes odoo/odoo#28364
2018-11-02 16:56:24 +00:00
Christophe Simonis 5e055a2afd [MERGE] forward port branch saas-11.4 up to f6ca72b3ce 2018-11-02 10:52:55 +01:00
Christophe Simonis a299517f83 [MERGE] forward port branch saas-11.3 up to 6136f0c02e 2018-10-29 11:56:32 +01:00
Christophe Simonis cc8e8237bf [MERGE] forward port branch 11.0 up to 84500c27b1 2018-10-25 13:59:45 +02:00
qsm-odoo 2768da5ce4 [FIX] website: fix ace editor interactions with other widgets
- The affix navbar went over the ace editor, preventing to save/close
- The ace editor went always under the new content menu

Now:
- The affix navbar is always under the ace editor
- The ace editor closes when the new content menu opens
- The new content menu closes when the ace editor opens

closes odoo/odoo#28251
2018-10-30 10:30:49 +00:00
len-odoo 25e82a5c68 [FIX] website: fix the date picker widget on the publish page dialog
When updating to BS4, the datetimepicker library was updated to
tempusdominus.js.
It expects the DOM to be slightly different to apply correctly.

opw 1896103

closes odoo/odoo#28073
2018-10-25 09:03:16 +00:00
qsm-odoo dea1372215 [FIX] website: restore options active system for carousel 2018-10-19 09:05:58 +00:00
qsm-odoo 74086da371 [FIX] website: clone correct slide on addition
When adding a new carousel item, the first one was duplicated instead of
the active one.
2018-10-19 09:27:28 +00:00
qsm-odoo 3704e9583b [FIX] web_editor, website: remove traces of CKE 2018-10-19 08:37:01 +00:00
qsm-odoo 720a129544 [FIX] website: make rounded option work with jumbotron 2018-10-19 08:37:01 +00:00
qsm-odoo cc780b5974 [FIX] website: allow to add/remove tabs in the new "Tabs" snippet
closes odoo/odoo#27815
2018-10-15 16:15:01 +00:00
qsm-odoo 574450bad8 [FIX] theme_bootswatch, *: prevent website to interfer with bootswatch
* website

Default web_editor/website colors and other bootstrap related variables
took precedence over some bootswatch overriddes. While we have the
control with Odoo themes, theme bootswatch is a library we do not want
to modify. This commit removes the web_editor and website customizations
when bootswatch is installed.

Closes https://github.com/odoo/odoo/issues/27821

closes odoo/odoo#27855
2018-10-16 14:26:37 +00:00
qsm-odoo 3b4eeee5ca [FIX] website: restore carousel item behavior
The animation that made all the carousel items have the same height
automatically was broken. This commit fixes it and improves its behavior
during edition.

closes odoo/odoo#27801
2018-10-15 13:20:29 +00:00
Dharmraj Jhala 50b506996d [FIX] website: hide 'DateRangeButtons' inside SearchView on small device
In website dashboard, 'DateRangeButtons' are pushed into control panel's
SearchView and breaks the UI in small devices.

This commit fixes the issue by hiding them in small devices.

task-1884038

closes odoo/odoo#27082
2018-10-16 12:08:54 +00:00
qsm-odoo 8b2dbd1441 [FIX] website: handle light colors as body text color
Before this commit, if the user chose a light color for the text (with
a dark color for the body for example), that color was also used for the
automatic "dark" color, leaving the "light" color to the default $white.
That means that when a light snippet background was set, the automatic
color which was used was the light color the user chose. We want to
invert the system in that case: use the user color as the "light" color
to use over dark backgrounds and leave the "dark" color to the default
$gray-900. This is what this commit does.
2018-10-01 21:33:32 +02:00
Christophe Simonis 43b63a0465 [MERGE] forward port branch saas-11.4 up to 57e387b645 2018-10-01 16:01:54 +02:00
qsm-odoo 517e84111a [FIX] website: properly allow multiple s_tabs snippets per page
Before this commit, the nav-tabs IDs/urls/... were the same when that
snippet was added multiple times or duplicated. Now, the IDs are
recomputed everytime a new .nav-tabs appears.
2018-10-01 15:07:50 +02:00
Christophe Simonis 998723b909 [MERGE] forward port branch saas-11.3 up to e980af9df0 2018-10-01 11:27:51 +02:00
qsm-odoo 1f1987d0e3 [FIX] web_editor, website: adapt to transparent color
- Adapt used-in-the-page color behavior
- Add transparent image for theme customize dialog previews

See https://github.com/odoo/odoo/commit/5ba0216b746a16b4609bc9c147fcacad109e969a
2018-10-01 11:01:34 +02:00
Andrea Ulliana 5ba0216b74 [FIX] web, *: support opacity in colorpicker dialog
* web_editor, website

Add an opacity slider and an opacity input to control opacity over
the chosen color.

task-1887571
Closes https://github.com/odoo/odoo/pull/27289
2018-10-01 11:00:54 +02:00
qsm-odoo 55131b8f5b [REF] website, *: add automatic context for call_kw rpc
* web_editor, website_blog, website_crm_partner_assign, website_links,
  website_livechat, website_mail_channel, website_mass_mailing,
  website_slides

Calling a model's method thanks to an RPC will now always send the
web_editor context automatically, making sure the method gets the
website_id all the time, removing the need to guess the current website
(now the get_current_website method uses the context website_id if any).

Note: other routes already have the website_id via request.env.context
if they correctly set website=True (this commit also adds website=True
for scss files customization routes).
2018-09-30 19:55:17 +02:00
Sébastien Theys 79e56bddc9 [IMP] website: add default social share image
Allow to specify another image than the logo as default share image.

This commit closes #27297
2018-09-28 21:28:20 +02:00
Jeremy Kersten 64719b71d5 [FIX] website, website_sale: add bg-{color}-light
And use it in confirmation payment card

FP request
2018-09-27 13:13:38 +02:00
qsm-odoo 86e6345095 [FIX] website: allow choosing a body background in full layout
Previous system was strange: you were able to choose a body color but
not a body background when you were in full layout mode.
As transparent colors will soon be able to be chosen by the user, it
makes even more sense to give that possibility as the user can set a
body background pattern and a transparent footer color to let it
appear. Choosing a transparent background image which will be mixed with
the body color is also a common feature.

Also changes boxed layout option to use a white background for the boxed
content (we should maybe give the opportunity to the user to choose that
color instead of using always white).
2018-09-26 21:08:35 +02:00
qsm-odoo 5c9d313007 [FIX] website: better allow color extensions in the future 2018-09-26 21:08:35 +02:00
qsm-odoo 67ac1b541d [FIX] website: remove "Ok" button of theme customize dialog 2018-09-26 20:49:26 +02:00
Christophe Simonis 5f08d82bcd [MERGE] forward port branch 11.0 up to fd122aec52 2018-09-26 19:37:29 +02:00
len-odoo fd122aec52 [FIX] website: fix image carousel
We fix a number of problems:
    - grayscale filter not being applied except on desktop Firefox
    - incorrect vertical-align on iOS
    - image sliders being displayed below the margin on iOS
    - carousel indicators flickering at initial load
    - very short indicator panel, almost unusable on mobile
    - misaligned indicators because of first margin
There are two modes on which these fixes apply:
    - image gallery in slideshow
    - slideshow in modal
       (e.g. obtained by clicking on the gallery set on masonry mode)
Note that due to a refactoring, the gallerySlider was not loaded in the modal,
completely breaking the indicators.

Coauthored by @nle-odoo

opw 1874274

closes odoo/odoo#27226
2018-09-26 14:14:14 +00:00
qsm-odoo 502f45aa2d [FIX] website(_event): make parallax filter change the default color
Setting a black low-transparency filter on a parallax element was
leaving the text color black too as the filter did not act as a
background color. Now the filter is computed from the parallax
background color.
2018-09-25 19:54:26 +02:00
qsm-odoo 92c8645d62 [IMP] website: allow selecting navbar's font
Same as it was done before for buttons, this commit adds an option in
the theme customize dialog to allow selecting the font for the navbar
elements.

Needed for themes migration.
2018-09-25 19:54:26 +02:00
Romain Derie 569554b9e0 [FIX] website: website forced on wrong session with website selector
Forcing website on session before navigating to the other website would not
work as expected if the other website has a different URL (hostname).
It would force the website on session on current website, then navigate to
second website which could still had another website in session.

Now, we force the website in session once we land on the website in the
dispatch() method.

Step to reproduce:
  - Set website1 to 127.0.0.10
  - Set website2 to 127.0.0.20
  - From website1 click on website2 in website selector
  - Website2 is forced on website1 session (wrong)
  - You land correctly on website2 and see website2
  - From there (website2) click on website1 in website selector
  - Website1 is forced on website2 session (wrong)
  - You land on website1 but see website2 since website2 was forced on
    website1 session at steps 3/4.

This is even more trickier when there is a third website without a domain in
the equation (meaning this website can be seen from website1 and website2
without changing URL (hostname)).
2018-09-25 19:16:16 +02:00
Sébastien Theys 96f7bda09e [IMP] website: improve "new content" text & add block ui
We don't want the user to click on the page while an installation is in progress.
2018-09-25 18:29:16 +02:00
Sébastien Theys 2ab6ce80d6 [IMP] website: add quick install from "new content"
This gives the user an overview of the possible actions,
including those he currently does not have installed.

It allows him to quickly install the missing applications
without having to go on the backend.

The commit also improves the existing actions:
- correct handling of the actions deferred
- add some translated terms

PR: #27110
task-1885419
2018-09-25 16:23:08 +02:00
Sébastien Theys f6dfa6ee47 [FIX] website: make ?enable_seo more robust
Sometimes we try to append a query string to an url, but if there is a remaining anchor, the query string will not be added at the right place.

The title and description tags might not exist (translated page) so it would be displaying false instead of empty string.

PR: #27110
task-1885419
2018-09-25 16:09:19 +02:00