Commit Graph
2286 Commits
Author SHA1 Message Date
qsm-odoo 1c946f79fc [FIX] website: review customize modal definition
- Remove theme specific parts and move them in theme_common
- Use IDs to ease theme overrides
- Use the same convention for all options: the default one is not bound
  to any xml_id (that's just the default scss files)
2018-09-19 10:23:29 +02:00
qsm-odoo 18a1629c12 [FIX] website: restore color palette generation
Commit https://github.com/odoo/odoo/commit/77402a4efc4c8b3fbb146dbef57dfbebae709017
modified the color palettes to use alpha, beta instead of primary and
secondary in the color selection.

Something was forgotten: changing the first (alpha) color did not
regenerate the whole palette anymore.
2018-09-18 16:18:39 +02:00
Sébastien Theys a670f092b9 [IMP] website: improve Optimize SEO and Page Manager
Modal generic:
- Fix footer overflowing buttons by pushing them to a new line.

Page manager:
- Add an SEO column to easily see which pages have incomplete SEO.
- Add an edit SEO column to navigate to the SEO modal on said page.
- Hide "edit in backend" column as debug.
- Generally improve the whole view by adding appropriate titles on icons, etc.

SEO modal:
- Improve general style.
- Add description length alert.
- Restructure the keyword table/suggestions.
- Reset page meta to their initial value on Discard.
- Various small usability improvements.

PR: #26897
task-1850579
2018-09-13 18:18:02 +02:00
Hiral Bhavsar 7f1c1b84ef [FIX] website: no overlap of text when opening burger menu
Issue: https://drive.google.com/open?id=1aXlkgpM7fWEWL18XMEAN5lI1uWgeZHqy

Closes #26434
2018-09-13 17:49:57 +02:00
Hiral Bhavsar 5373db1487 [FIX] mail, web: open systray menu dropdown in mobile.
Before this commit, it was not possible to open systray menus in mobile.
This is due to popper.js that is wrongly dynamically positioning the
dropdown menu.

This commit fixes the issue by disabling dynamic positioning by popper.js
for the systray menus, so that it uses ou custom styles for dropdown menu.

Closes #26434
2018-09-13 17:49:52 +02:00
Jeremy Kersten 96638bfcb0 [FIX] website: only show 'Follow tooltip' when possible
Before this commit, the message was always displayed.
Now we only show into the default homepage the message "Follow all the tooltip"
when there at least 1 tooltip in the current page.

task-1878245
2018-09-13 13:58:23 +02:00
Jeremy Kersten 54b70dd6fa [FIX] website: typo align, color
right align 'I have a promo code'
make close button white in Customize modal

task-1878245
2018-09-13 13:58:23 +02:00
Jeremy Kersten f620039527 [FIX] website: multi website and company switcher
Remove domain based
Use domain if set

That will imply that you need to reconnect on your new website too.

task-1878245
2018-09-13 13:55:51 +02:00
Jeremy Kersten 9747ff249f [FIX] website: remove share page info option from page manager
Advanced user can do it from the backend by the way and it is not
obvious to understand the impact to set/unset this option.

Seems like I was the only guy to think that this feature was needed

task-1878245
2018-09-13 13:55:51 +02:00
qsm-odoo fd8d6cb393 [FIX] website: make theme customization modal multi-faster
Since the recent fixes on multi website, the customization modal
is restored but is a lot slower the first time we use it (around 20sec
to save an option on my machine). This was because when we change an
option, all the others options are sent to the server to be (re-)saved
and, on the first time, the multi-website system has to duplicate them
all to make them website-specific.

Now, we only enable/disable views which are modified by the user.
2018-09-13 10:35:42 +02:00
Jeremy Kersten f1e1b6aa8f [IMP] website(_*): typo, margin, missing href, font sizing, ...
Misc fix/imp according FGI request/test

task-1878245
2018-09-13 08:17:09 +02:00
qsm-odoo 4a7623fec1 [FIX] portal, website: allow to use wide brand logo
When the user chose a very wide logo for the website navbar, it
overflew over the menu items (making the "+" feature look broken).
This in fact occurs since commit https://github.com/odoo/odoo/commit/4bc79da943c71e762e1f6dedbe3a641042bfef3f.
Its goal was to avoid top menu flickering due to that "+" button
feature. To do that, menu items were hidden with an height of 0 during
loading, then, once the correct number of items needed for the "+"
feature was computed, they were made visible to the user. Another
problem was due to the logo image loading. When it is not loaded yet, we
cannot properly compute the number of items which is needed. To solve
that problem, we fixed the size of the image container instead of
setting the height of the image itself.

But fixing the size of the image container only created a new bug: very
wide logos overflow this container. This commit solves all the problems:

1) The height of the image is set to be equal to the navbar links.
2) The height of the navbar is not forced, meaning that if the user
   decides to change the height of its logo to go against (1),
   everything will be adapted accordingly.
3) During loading, the menu items are still 0px tall, hidden and made
   visible once the "+" feature is enabled.
4) The "+" feature is only enabled once all the navbar images have been
   successfully loaded.

task-1878245
2018-09-12 17:54:42 +02:00
qsm-odoo 2041a61cac [FIX] website: use full width form for menu item dialog
This was always supposed to be full-width but this was buggy since
before 11.0.

task-1878245
2018-09-12 10:56:54 +02:00
qsm-odoo 903ff171ac [REF] portal, website: BS4, lower <body/> font size
With BS4, the website's font size was set to 16px instead of 14px as
before. We finally decided to force the 14px back. This commit also
moves some bootstrap variables extensions to portal as it should have
been done and reformat the files to match the bootstrap _variables.scss
file.
2018-09-10 17:54:42 +02:00
qsm-odoo 3444e0a0da [FIX] web_editor, *: use explicit string keys for color maps
* website

```
$map: (
    test: 1,
    black: 2,
);
@​debug map-get($map, 'test');
@​debug map-get($map, test);
@​debug map-get($map, 'black');
@​debug map-get($map, black);
```

The above code leads to a:
1
1
null
2

This is because maps' keys can be *anything* in sass (even other maps).
In the example, the map is defined with unquoted `test` and `black` as
keys which are understood as the string 'test' and the *color* black.
When asking for the value for the 'black' string key... there isn't any.

This commit forces the use of quoted string as color maps' keys.
2018-09-07 13:57:14 +02:00
qsm-odoo ab7385db1a [IMP] website: allow to select buttons' font
Needed for themes migration.
2018-09-03 18:40:35 +02:00
qsm-odoo cde3c9261e [FIX] website: review website customize dialog
Make some changes which are needed for theme migration.

- Theme colors as user colors fallback only (not hard choice)
- Review option dependency system
2018-09-03 18:40:35 +02:00
qsm-odoo 4bc79da943 [FIX] website, *: avoid top menu flickering
* portal, web
2018-08-31 18:57:12 +02:00
Romain Derie 6bfb0810b0 [FIX] web_editor, website(_*): fix bs4
[FIX] web_editor: adapt col size to avoid too small select

We should avoid col-md-3 in col-md-9 as the menu dialog is instanciated at 2
places:
  - When creating a link in the editor
  - When editing website navbar menu

In the second case, there is a hack in `content.js` to remove `modal-lg`
lowering the width of the modal and making the select too small.

[FIX] website: lower navbar font size

With BS4, font-size of navbar element went from 13px to ~17px (rem unit
computation).

14px seems better than previous 13px as the frontend content size is
higher than the backend one. Thus, 13px looks too small in contrast with the
frontend page content.

[FIX] website_crm_partner_assign, website_customer, website_membership: fix layout

This commit fixes multiple layout issues, mainly by aligning code of the 3
modules:
  - Add margin right to avoid text to be against image
  - Using image_medium everywhere
  - Fixing search input width

publish toggle red + odoo primary is weird -> gray
navbar now has a background & float-right not working since flex
-> remove navbar class, use d-flex and ml-auto so the right element will be floating since using all available width

task-1878150
2018-08-31 16:37:45 +02:00
Jeremy Kersten 9b1d1d5728 [FIX] website: allow to switch from company from the front end
In some case, you can be on website 2 (where company_id = 2) with your user into the company 1.
In this case, you will not see the product on ecommerce from company 2 while you stay in company 1.
2018-08-31 16:37:45 +02:00
qsm-odoo 7ce1e60be4 [FIX] website: properly show theme colors in customize dialog 2018-08-31 16:00:10 +02:00
Sanjay Jamod 2b51fefa5e [FIX] *: BS4, adapt page-header class
Closes https://github.com/odoo/odoo/pull/26420
2018-08-31 12:01:36 +02:00
qsm-odoo aa24a2cad4 [FIX] website: use variables for boxed layout option
- More efficient
- Needed for theme migration
2018-08-30 11:10:56 +02:00
qsm-odoo 77402a4efc [REF] web_editor, *: review color theming system
* web, website

- Introduce gray color palettes (needed for themes migration)

- Synchronize BS4 color maps with individual variables (see comments
 about this in the code).

- Review alpha/primary, beta/secondary matching:

Before this commit, we decided that the common way to define a color
palette was defining primary, secondary, gamma, delta and epsilon.
alpha and beta were then forced to primary and secondary without other
possibility.
The new system makes more sense:
1) define alpha, beta, gamma, delta and epsilon
2) primary and secondary will automatically be set to your alpha and
  beta (allowing to style the default UI with BS4-independant
  variables)
3) if you are not happy with (2), you can define primary / secondary
  in your color palette so that they are not automatically set to
  alpha / beta

This commit also changes what classes the editor uses. Background colors
and text colors will now use alpha/beta/gamma/delta/epsilon (not primary
and secondary anymore). For buttons, all the possibilities are suggested
but color duplicates are hidden (so if your primary and alpha are equal,
only one button color is suggested).
2018-08-30 11:10:56 +02:00
qsm-odoo 6e33301693 [REF] website: simplify color preview system in theme dialog
Only one color palette is shown at a time, so no need for the extra
css rules.
2018-08-30 11:10:56 +02:00
Romain Derie 8c701f2c9b [FIX] website: move main_object_request event in website_root
`main_object_request` was added in the navbar widget.
It would not work with `PageManagement` widget as it is added in the
website_root widget and not the navbar.

Moving it to the website_root will make the event accessible when triggering up
the event.
2018-08-24 09:21:46 +02:00
Jeremy Kersten 5b0327f650 [IMP] website, website_forum: add a class modal_shown on modal once css animation is completed
Use this new class in website_forum to avoid that the tour click during
the animation and fail randomly.

https://getbootstrap.com/docs/4.0/components/modal/#events
2018-08-23 13:49:01 +02:00
qsm-odoo 5c9e3e0060 [FIX] website: separate main content from footer content
The edition dropzones for the bottom of the main content and the top of
the footer content are at the exact same locations.

Until commit https://github.com/odoo/odoo/commit/514722d783d504151b6b835375de036eda88279f,
when trying to drop a snippet there, there were two cases:
- The user drops a snippet above/below the location -> the snippet
  is added to the main content (as the code searches for the nearest
  dropzone, and always return the first one in the DOM if several are
  found).
- The user drops a snippet around the location, seeing a snippet preview
  -> the snippet is added to the footer content

With the mentioned commit, the second case changed: the snippet is now
also dropped in the main content. While this is more logic, there is
no way to drop a snippet in the footer anymore. Adding a border on top
of the footer content solves the problem for now (as the dropzone will
now be at 1px different location).
2018-08-22 16:52:48 +02:00
XavierDo a4dfa6e354 [FIX] web, website: fix tests giving 404 error
-Some tests where moved without addapting the path to them:
path is now update and tests fixed.

-A picture was removed in commit 4dce6cc98b but
still referenced in template website_twitter_snippet.

-A test was missing a data leading to the wrong path to image beeing loaded
2018-08-22 14:41:02 +02:00
Kishan Gajjar 156955de6b [ADD] website: Added a feature to set opengraph/twitter meta image from SEO dialog.
With this commit now user can set custom meta image from the seo dialog. If the
user sets such image then it will be displayed when the user shares that URL in
social sites.

By default, it will show the list of images used in the current page.
Alternatively, user can use media dialog to select/upload images. By default, it
will take the company logo as a meta-image.

We also improved how custom meta tags are handled for different pages, Now we can
set custom meta tags based on the model and we can override '_default_website_meta'
method in case you want to change default meta values from the specific model.
e.g. For products displayed on the shop, if we want to change the value of
og:image to product specific images instead of default logo

In future, it will be used to add model specific metas like og:price, og:currency

We passed 'website_company_id' in frontend session info because we display
company logo in dialog for all pages. We can't use /logo.png as it is not
updating in multicompany and multiwebsite.

task id: 1835370
Closes: #25430
2018-08-22 14:01:32 +02:00
qsm-odoo 66a46c3e3a [FIX] website: border-width of inputs was raised for no good reasons 2018-08-20 17:46:46 +02:00
qsm-odoo 604a6673a6 [FIX] website, portal: BS4, force list-group-item colors
Placing a list-group inside an element whose text color is forced is
buggy as the background of list-group items is forced to white and
the text color left untouched.
2018-08-20 17:46:46 +02:00
qsm-odoo 7e73a4b1c9 [FIX] website: BS4, smaller btn-sm buttons
Before BS4 migration, Odoo was not very consistent and used mainly
btn-sm buttons and btn-xs buttons. We took advantage of the fact
BS4 removed the btn-xs class to convert our btn-sm to standard btn
and our btn-xs to standard btn-sm.

While this is perfect in theory, the new btn-sm class does not
generated small enough design for us. This commit changes the BS4
standard style for our website, making btn-sm smaller.
2018-08-19 16:57:14 +02:00
qsm-odoo 3bf3a40606 [FIX] website: BS4, restore facebook snippet UI
+ solve JS error introduced by a recent commit

Thanks to @kig-odoo for original fix
2018-08-17 12:46:14 +02:00
Jeremy KerstenandDerie Romain 066cfc9598 [IMP] website_[blog|event|forum|sale|slide]: make website specific
Set up env & tools for module website multiwebsite (blog, event, sale..)
website_id in modelConverter and ir_rule

add _compute_domain_keys to have a different cache per website
  or rules would not be correctly website_dependant
  eg: blog 1 on website 1, blog 2 on website 2
      access blog 1 from website 1 => can access -> normal
      access blog 1 from website 2 => can access -> should crash because (ir rule)

split mixing website.published.mixin and website.published.multi.mixin to have
website_id only on last one.
 multi mixing will:
     - override website_published compute to take current_website into account (not in backend)
     - force website when clicking on published in backend

- website blog, website_sale, website_event, website_forum, website_slides are now multi website

Co-authored-by: Derie Romain <rde@odoo.com>
Co-authored-by: Kersten Jérémy <jke@odoo.com>
2018-08-13 20:16:34 +02:00
Jeremy KerstenandDerie Romain 8300155cd6 [IMP] website: res_config_setting make most key website specific
google analytics, google map api key, ... can be set by website

Remove useless duplicated label

Co-authored-by: Derie Romain <rde@odoo.com>
Co-authored-by: Kersten Jérémy <jke@odoo.com>
2018-08-13 20:16:34 +02:00
Jeremy KerstenandDerie Romain 602807acdf [FIX] website: improve/fix menu, copy on unlink, clone page, unique_path, sale_report, ...
Fix bug from the initial poc of JOV

Fix menu creation
   - creating a menu would create a 'container' menu in the DB (.create is call without website_id)
   then writing on it would copy (if condition to cow) the menu with a website_id leaving the first
   one as a menu container unused.
   - website_menu should always have a website_id
     we dont want to support the multiwebsite system that allow to have generic/specific menu
     unlink/write is useless now since we always have a website_id

Make unique_path website dependent, 2 distinct website can have a page with same name

Make Sale report multiwebsite compliant

Make website_id on sale_order / account.invoice as a related stored from partner_id.

Co-authored-by: Derie Romain <rde@odoo.com>
Co-authored-by: Kersten Jérémy <jke@odoo.com>
2018-08-13 20:16:34 +02:00
Jeremy KerstenandDerie Romain a45bb90fac [IMP] website: improve pagemanager to be multi website compliant
Now we can see which specific page override wich page when page are sorted by url.

Co-authored-by: Derie Romain <rde@odoo.com>
Co-authored-by: Kersten Jérémy <jke@odoo.com>
2018-08-13 19:51:32 +02:00
Jeremy KerstenandDerie Romain ff26b20a48 [REF] website: small diff pep, renaming, make generic function
This commit should not change the behaviour in most cases.

Co-authored-by: Derie Romain <rde@odoo.com>
Co-authored-by: Kersten Jérémy <jke@odoo.com>
2018-08-13 19:51:17 +02:00
Joren Van Onder 4f6ec1cd2a [IMP] website,*: support multiple websites
This implements support to administer multiple websites. Although the
core functionality already existed, managing multiple websites was
fairly technical.

In the interest of database updates and migration this attempts to
keep duplicated data to a minimum. To do this the usual generic
records are rendered unless some website-specific record exists that
replaces it. Copy-on-write (COW) is used to create these
website-specific records. Through this mechanism creating a
website-specific record is delayed until necessary. A COW mechanism
has been implemented on 4 models: ir.ui.view, website.page,
website.menu and ir.attachment. These COW mechanisms are activated
when editing data through the website (aka frontend). These frontend
edits (e.g. with web_editor) will be website-specific, possibly
creating a website-specific record when necessary. When editing data
in the backend nothing special will happen, even when editing a
generic record. Note that because of this mechanism also facilitates
the ability to create new, uncustomized websites because the generic
data is kept.

Support is provided for a website to have any theme. Themes are fairly
complex to handle. Standalone themes can depend on other standalone
themes (e.g. theme_beauty depends on theme_loftspace) and themes
usually modify some data of the themes they depend on. Because a theme
can be installed on multiple websites, using website_id m2o fields
does not work well. It would require duplicate data, making updates
and migration harder. Because of this, data for themes (ir.ui.view and
ir.attachment specifically) have a theme_id m2o. website has a
theme_ids m2m that identifies all theme modules currently installed on
it. Through these fields we figure out what to render. A theme is only
fully uninstalled when it's no longer active on any website. The
advantage of this approach is that upgrading or migrating theme data
is no different from the single-website case.

The website.published.mixin class was modified to handle multiple
websites. A wizard was added in the backend to easily manage this for
multiple website.

Although not used anywhere in this commit, a 'website_id' variable has
been added in the evaluation context of ir.rule. It allows to easily
make any model multi-website aware, all that's needed is a custom
website_id m2o field on a model and a custom record rule.
2018-08-13 19:51:10 +02:00
qsm-odoo 15df14b9e1 [IMP] website, *: add header overlay and color options
* web_editor, portal

This commit introduces the first page options: header overlay and color.
The website builder is improved to allow the management of those. With
this commit, users can now click on the website header to make it go on
top of the first snippet, with a chosen transparent color. This is a
configuration that can be done on each page individually (as the feature
is very dependent of the first snippet on the page, this is typically an
option for homepages).

task-32155
2018-08-13 18:58:06 +02:00
qsm-odoo b56e647f2c [REF] web_editor, website: improve animations' restart
- Before this commit, when we asked to (re)start animations on an
  element, we checked the animations to be started on the element
  and started them after destroying the animations with the same
  name which were already running on that element. This is in fact
  not correct. Indeed, if an animation was running on element but
  that the conditions that made the animation start are now gone,
  asking to restart the animations on that element should destroy
  the deprecated ones. (e.g. an animation "A" is to be started on
  all elements which have a class "a", if we remove the class "a"
  on an element then restart animations, the animation "A" should
  be destroy). The implementation is in fact even simpler: when
  asking a restart, a full stop is performed then a simple start.

  Note: this does not need to be a fix as multiple animations on
  a same element was recently introduced and the described case
  never occurs with current features.

- When stopping the animations on an element, stops the animations
  of all its descendants too.

- Add an helper method in the `SnippetOption` class to restart the
  animations running on the `$target` element.
2018-08-13 18:42:52 +02:00
Cocographique 4dce6cc98b [IMP] website, *: review snippets and colors
* web, web_editor, website_hr_recruitment, website_mail_channel,
  website_mass_mailing

- Review all snippets and add new ones
- Add lots of new options
- Use odoo colors as default theme colors

task-38878
2018-08-13 18:30:01 +02:00
qsm-odoo 22c4311e28 [IMP] *: make customize dialog generic and improve options
* web, web_editor, website, website_theme_install, portal,
  theme_default, theme_bootswatch

The purpose of this task is to make the customize dialog as generic as
possible, that is theme-independant:

1) The design is now totally generic (Odoo visuals)
2) The XML definition is form-view like. This allows themes to extend
   the dialog without any risk of breaking the style and also allows to
   not care about lots of technical details.
3) New options have been included. Those were themes options that are
   now generic and which themes can simply adapt without touching the
   customize modal (navbar colors, footer color, navbar layout, fonts,
   body background, ...).

The color palette can now also be customized with user colors.

Using sass functionnalities, color palettes and fonts integration is now
a lot better.

Thanks to @qha-odoo for the original design.

task-31677
2018-08-10 16:49:29 +02:00
qsm-odoo bcbfd96740 [REF] website: review customize dialog JS 2018-08-10 16:47:53 +02:00
Martin Trigaux f7130556bb [REF] *: add support for RTL languages
מזל טוב

The direction parameter will now have a real impact on the web interface and
completly switch the direction of the interface.
Add the dependency rtlcss to switch the direction with a css postprocessor.

Two different assets will be generated for ltr or rtl
/web/content/<...>/web.assets_backend.0.css
and
/web/content/<...>/rtl/web.assets_backend.0.css
to be able to differentiate it easily

Adapt the css and views to be easier to switch direction

Render graph as it is, do not move y-axis right side, as per mathematical rule
value goes left from origin are considered negative, so keep graph as it is
for right to left language

add test cases for language direction specific assets bundle
if language direction is rtl then we also store css files in assets bundle
now we store two assets bundle, one for ltr and one for rtl language direction
test two assets bundles generated, also test two assets bundle generated for en_US and ar_SY
2018-08-10 16:32:50 +02:00
qsm-odoo 42b47a7104 [REF] web_editor, *: improve transparent grays definition
* website
2018-08-10 15:43:07 +02:00
qsm-odoo 768e3849c7 [FIX] website: BS4, adapt affix top menu to ID targeting 2018-08-10 15:43:07 +02:00
stefanorigano 1d9208c4fa [REF] *: improve app icons, add SVG version
- Uniform colors and design
- Replace duplicated icons (eg. sale / sale_management)
- Improve misleading icons (eg. POS)
- Add icons for new apps

Add SVG versions to lossless future editing and print/marketing use.

task-54681
2018-08-09 15:46:06 +02:00
sed-odoo d81e1b7341 [IMP] website_*: Improve menus and configuration
Purpose
=======

Clean menus structure in website frontend and backend, for an easier navigation.

Specification
=============

Website
-------

- Restructure menu
- Enterprise: Keep google analytics view in a dedicated menu item when ecommerce is
  installed:
    - Sales Dashboard(ecommerce dashboard)
    - Analytics (google analytics)
- Community: Keep both sales orders and google analytic dashboard on the same
  dashboard view
- Restore google analytics api option in website settings when ecommerce
  is installed

E-Commerce
----------

- Website > orders > orders: add default filter "from website" and remove it in
  the action. That way if you create an order manually there is still a way
  to find it from the menu (the salesteam is different)
- Default filter for abandoned cart menu
- Improve setting text and tooltip. It's not obvious that recovery emails must
  be sent manually. Replace with:
    - Title: Abandoned Carts
    - Subtitle: Send a recovery email when a cart is abandoned
    - Tooltip: Abandoned carts are all carts for which no transaction has
               been confirmed while the customer has filled in their address.
               You can find them in *Website > Orders > Abandoned Carts*.
               From there you can send a recovery email to stimulate the
               customers to resume their order.
    - Tooltip email template: This email template is suggested by default
                              when you send a recovery email.
    - Tooltip hours: Carts are flagged as abandoned after this delay.
    - Hour label: Cart is abandoned after .... hour(s).

Task ID: 1859170
2018-08-09 11:58:35 +02:00