Commit Graph
98 Commits
Author SHA1 Message Date
asa-odoo 1d1fd8219c [FIX] website: fix design of mobile preview close icon
The broken design prevented to click on the close button.

task-1817880
2018-04-19 13:00:21 +02:00
Romain Derie 5c2b42bbf7 [FIX] website: remove ribbon on unpublished pages (new specs)
This commit reverts part of f5912cb since the spec changed afterwards.

Unpublished page will have a red toggle, which even if it is small should be
enough to draw user attention, and not a ribbon anymore.

Task-44005
2018-03-29 13:08:57 +02:00
Romain Derie f5912cbcb3 [IMP] website: make it more noticeable when a page is unpublished
Before this commit, 2 usability issues were reported:
1. Some people would get stuck with unpublished content without even knowing it
   since they would not understand the page is unpublished.
2. People would have a hard time finding the publish button (small toggle on
   the navbar).

Now:
1. We now display a red ribbon on the top right corner specifying the page is
   unpublished. Hopefully it can't be missed.
2. This publish button will be more visible for unpublished content since it
   will be red (danger) color. Hopefully people will notice it at first look.
   Note: It is implemented in a generic way so any 'o_switch' can be turned
   into this version by simply adding the 'o_switch_danger' class to it.

task-44005
Closes #23282
2018-03-22 16:32:51 +01:00
Jeremy Kersten 6709118525 [FIX] website: apply padding on dashboard even if no data 2017-10-20 16:51:52 +02:00
rde a91a3a5633 [IMP] website: warn user about key change when editing special file name
The idea is to warn user if he created a special file (website.page with
supported extension) and he wants to change the file's name, which will at the
end also change the key).
If this special file has been t-called elsewhere, they t-call wont work anymore
This is why warning user is needed.

Note that this is different than the already existing page_search_dependencies
that is just checking if the URL is present in menus, templates, blog or pages.
This is about checking if the key is present somewhere. (we assume that if the
key is present, it is surely about a t-call.

Technically, the flow is:
1. Get supported extension
2. Get key dependencies
3. Check if user modify name
4. If name changed and it is/was a supported extension (special file) and it
   has dependencies (surely t-call) then warn user these call wont work anymore

--

search_page_dependencies is also improved by returning links to be clickable
(on delete dialog eg) and splitting template/page results.

it also refactor dependencies warning that was creating HTML in javascript into
using XML template
2017-10-12 16:20:42 +02:00
Prakash Prajapati 0b6c9c60d4 [FIX] website: remove left & right margins around todo buttons 2017-09-30 12:21:27 +02:00
kap-odoo 230e88264a [FIX] website: removed padding in todo buttons of dashboard.
closes #19733
2017-09-28 09:49:44 +02:00
rde acd0b6da14 [IMP] website: pageManagement - improvements according to first feedbacks
- labelling and screen redesign (update labels, hide labels, hide fields, ...)
 - make UI more mobile friendly (icon biggest, color using less variables,...)
 - Page & Redirection menu are for visible only in debug mode
 - Add meta noindex for website.page not shown in sitemap
 - Add mechanism to be able to edit in backend a broken view
	(Needed for - Internal Error 500, css, js file, ...)
 - website pagemanager dedicated to website_publisher only
2017-09-25 10:53:28 +02:00
Kirti Choudhary d797628779 [IMP] website_sale:set background-repeat property of image to no-repeat so it will not repeat. 2017-09-22 11:41:08 +02:00
Christophe Monniez bfa85c84a6 [IMP] website_sale: manage abandoned cart
Purpose: Add button to see the number of
abandoned carts and the ability to send
a recovery email to those customers.

On the abandoned carts menu, you can see
the SO from the website where no reminder
email has been sent.
By selecting them, you can send an email
to the customer to tell him there is still
a cart waiting.
Clicking on the link, he can reuse his old
cart or merge it with his current one.

An abandoned cart is a SO from a website
sales team, and created after a treshold
parametered by a 'delay' settings (number
of hours to be considered as abandoned).
2017-09-15 16:55:17 +02:00
rde 4ecbacaf59 [ADD] website: add new page management
website.page = old ir.ui.view with page=True
website.redirect is a new mechanism to replace in the futur the ir.attachment
mechanism of redirect.

From now, we don't have a specific /page controller to serve 'page'.

We use a new model website.page which is rendered if none route matches the url
 and that the field 'url' on website.page matches the request.httprequest.path.

The order to serve a path is:
    - Routes defines in controllers (/shop, /blog, ...)
    - ir.attachment with name matching the path
    - website.page with url matching the path
    - website.redirect with url_from matching the path
    - 404

To improve:
    - allow regexp in website.redirect model
    - allow to edit the view_arch from the page.management via redirect backend
      (needed when traceback in the page, or when modifying a js/css/less/...)
2017-09-15 15:29:37 +02:00
qsm-odoo f997c128c7 [REF] web, website: share modal.less file
Following https://github.com/odoo/odoo/commit/5658e337c3e0385d3d116e34404ef4086b3e94f0:
The modal.less file is now in the common assets so that the
dialogs' style is shared instead of duplicated.
2017-08-22 13:02:12 +02:00
qsm-odoo 2972976962 [REF] web_editor, website, *: complete refactoring
* mass_mailing, payment, point_of_sale, portal, survey, web, web_tour,
  website_blog, website_crm_partner_assign, website_event,
  website_event_questions, website_form, website_forum, website_gengo,
  website_hr_recruitment, website_links, website_mail,
  website_mail_channel, website_mass_mailing, website_quote,
  website_sale, website_sale_options, website_slides, website_twitter

This commit reviews the whole "JS side" of the web_editor and website
apps. This is a first step to be able to improve them with new and
better functionnalities; this commit is not supposed to change any
visual behavior.

The main goal was to achieve a structure similar to the backend one.
Now, the frontend side also has a root widget (like the WebClient)
and all other widgets are attached to it one way or another. This allows
the benefits of using the 'trigger_up' functionnality for example.

As RPC are now mainly done with the `this._rpc` functionnality (being
possible thanks to the parent hierarchy), the frontend will also be
possible to test thanks to QUnit in a future update (besides the "text"
editor side which still requires a refactoring to be able to do that).

---

Here are some of the changes:

(-) conventions and documentation

The code has been updated to follow JS conventions and a lot of code has
been commented (around +2000 lines of comment). This also means that
lots of functions have been renamed to use camelCase or simply to make
their name understandable.
See https://github.com/odoo/odoo/wiki/Javascript-coding-guidelines.

(-) deprecated: web_editor.base

The "web_editor.base" module has been split and does not force the
modules which require it to wait for DOM ready anymore. This was indeed
slowing loading times, but also prevented to use some modules in some
contexts (see the LESS editor use in web_studio which is the subject of
another task).
Now the "editor context" can be got thanks to the "web_editor.context"
JS module with its "get" function.
The "web_editor.base" module should probably not be used anymore (see
its code and recent updates).

(-) new: web.dom_ready

If a JS module should wait for the DOM to be ready to be executed, a
new JS module has been created: "web.dom_ready". This should always
be used in a module which only want to instantiate stuff. Do not
extend (or worst, include) classes after DOM ready.

(-) website.website

The "website.website" module has been split. "website.website" does not
return anything useful anymore, it just initialize some miscellaneous
stuff, without waiting for the DOM to be ready. You might want to check
"website.utils", "website.content.compatibility" or `WebsiteRoot`. Also
`website.form` has been deleted (use `this._rpc`), so has been
`website.error`. `website.prompt` will be removed in a future update to
be replaced by `Dialog.prompt`.

(-) widgets are great

Many classes which were not widgets are now widgets. This allows them to
use the 'events', the 'xmlDependencies' and the 'this._rpc' features for
example. Here are some of the main ones:

- Snippet options: these were classes with a `$el` for the menu element
    and `$target` for the customized element. This is still the case
    but following standard `Widget` structure (one exception: using
    `this.$(...)` searches in the `$target` as before this update).

- Snippet animations: instead of class instances with a `$target`
    element which can be `start` and `stop`, these are now standard
    widgets which can be `start` and `destroy`. `this.$target` is
    an alias to `this.$el` for ease of compatibility.

- Snippet editors: instead of class instances in charge of an editor
    overlay, these are now widgets. Each "child" snippet editor is
    properly attached as a "child", which allows editors to communicate
    and to be properly destroyed.

(-) root widgets and website navbar

The frontend is different of the backend. In the backend, the page has
an empty <body/> element and all the components are instantiated from
parent to children (i.e. the `WebClient` is instantiated and is in
charge of instantiating the `ControlPanel`, etc). The frontend cannot
work like that on page loadings as they are way more frequent than in
the backend and we do not want them to flicker. A frontend page is
loaded as a <body/> element which already contains the website navbar
and its menus and the whole content page. JS code has to be "attached"
to these existing elements. This is possible thanks to the `RootWidget`
instances and the specialized `WebsiteRoot`, `IframeRoot` and
`WebsiteNavbar` (see code for details).

(-) lazy loading

No more (or at least a lot less) XML/JS has to be loaded on page
loading, thanks to the use of the `Widget.xmlDependencies` feature.
XML which have to be lazy loaded is loaded only on related Widget
instantiation if necessary, which allows to execute a lot of JS code
before the DOM is ready and to start many widgets on DOM ready (not
later). A visual benefit of this is clicking on the 'edit' button as
soon as it is possible: before this commit, this was sometimes not
doing anything as event handlers were not binded yet.

Still a possible exception: loading the session and locales. This may
be asynchronous stuff which is still required before widget
instantiations but this will be the subject of another task.

(-) deprecated code and code location

More than reviewing code and organizing it, many apparent dead code was
removed. More importantly, mislocated code was put in the right app.
This is the case for snippet animations which is a concept for website
apps but was defined in the web_editor app, or some translation concepts
which were part of website but should have been part of web_editor.

---

There are probably more things to say about this commit but I will let
the comments speak for those.
2017-08-16 11:04:14 +02:00
Kinjal Mehta 26786dba68 [IMP] website_sale: pimp the CSS of the dashboard
The "Best sellers" sections was displayed with hard-to-read colors
2017-08-09 16:11:40 +02:00
Thibault Delavallée da8d418ff0 [ADD] portal: add module for customer portal and sharing features
This module adds required base code for a fully integrated customer
portal. It contains the base controller class and base templates.
Business addons will add their specific templates and controllers
to extend the customer portal.

This module contains most code coming from odoo v10 website_portal.
Purpose of this module is to allow the display of a customer portal
without having a dependency towards website edition and customization
capabilities.

Some CSS files used in frontend assets are already moved to have a
working portal skeleton. A is_public method on users is also added
as it will be used in various portal code soon.
2017-08-08 14:23:58 +02:00
qsm-odoo 5658e337c3 [REF] web, website: o_website_modal -> o_technical_modal
Opening a modal in Odoo should be done thanks to the 'Dialog' class. In
the frontend, there can also be modals which are meant to be shown to
the unconnected frontend visitors and those should then get the style of
the website (bootstrap) and not the one of odoo. To manage this, the
website JS code was extending the Dialog class so that it adds the
'o_website_modal' class on modals which are opened thanks to the class.
The LESS code was then in charge of forcing the Odoo style on those.

This behavior is not the right one. "Visitors" modals should also be
able to be opened with the Dialog class. This commit is a first step
towards to the right behavior:
- The standard 'Dialog' adds the 'o_technical_modal' class on its root
  element by default and allows to not put it thanks to 'technical'
  options.
- 'o_website_modal' is then replaced by 'o_technical_modal'.

What should be done next is:
- Use the Dialog class when it is possible
- Move modal.less in the common assets and make it style only technical
  modals -> remove some forcing of the style on 'o_technical_modal' in
  the frontend

This behavior also allows future improvements, like building a
completely different structure for technical modals which would allow
better designing and the end of visitor/technical bootstrap conflicts
(and so LESS efficiency).
2017-08-03 10:50:55 +02:00
stefanorigano 330e0cccd4 [IMP] web_editor, website: preserve tabs in modals 2017-07-10 13:37:40 +02:00
stefanorigano 1a91a8f0a1 [IMP] web_editor: only uppercase main modal buttons
Uppercase style shouldn't be applied to all btns by default.
The usage should be set progressively, following an importance criteria.
If we design everything as important (uppercase), nothing will be
perceived as important anymore.
2017-07-10 13:37:40 +02:00
stefanorigano e37b708292 [IMP] website: hide menu '.divider' if not necessary 2017-07-10 13:37:40 +02:00
stefanorigano 72e0f8a056 [IMP] website: fix design of 'Edit Menu' modals 2017-07-10 13:37:40 +02:00
stefanorigano 4c6e4936de [IMP] website: improve design/UX of SEO modal 2017-07-10 13:37:40 +02:00
stefanorigano 95c7f65365 [IMP] website: add close icon mixin 2017-07-10 13:37:40 +02:00
stefanorigano 99b205949b [IMP] website: remove useless css rules
The entire .o_menu_systray is hidden in mobile, so no need for extra
mobile style.
2017-07-10 13:37:40 +02:00
Christophe Simonis 99c34c4119 [MERGE] forward port branch saas-16 up to 6f3eada2c3 2017-06-06 19:38:29 +02:00
Christophe Simonis 6f3eada2c3 [MERGE] forward port branch saas-15 up to f687a27b79 2017-06-06 19:23:03 +02:00
Christophe Simonis f687a27b79 [MERGE] forward port branch saas-14 up to c0e7f9b0b1 2017-06-06 18:57:56 +02:00
stefanorigano 3ac160aa09 [IMP] website: company logo sizing
Rather than use a fixed height, make the logo fill the navbar height.
2017-06-06 17:37:33 +02:00
Dharmraj Jhala 288a471a26 [IMP] website: improve snippets' design
- Feature grid snippet: enable copy and move of inner containers

- Accordion snippet:
    - add the ability to change box headers & background colors
    - improve the text contents

- Comparison snippet:
    - add ability to change header colors
    - prevent unwanted text color changes
2017-06-02 10:26:38 +02:00
Sagar Ahirrao 5d15bd76c6 [IMP] website: add "Company Team" snippet
Introduce a new snippet to show the company team.

This commit also introduces a new classe "s_no_resize_cols" to put
on a .row element to prevent the size and margins options to be used
on the .col-* children. This allows to build some complex layout without
having a deep hierarchy of snippet options.
2017-06-01 17:22:45 +02:00
Csaba Fazekas d18346a103 [IMP] website: fix gallery snippet paddings 2017-06-01 17:21:45 +02:00
Dharmraj Jhala 22745668cf [FIX] website: properly update parralax image
Fixed some issues with parralax image updates:

- Background updated without clicking
- Default wallpaper not coming back
- Background disappearring sometimes
2017-06-01 17:09:54 +02:00
Olivier Dony ba15df47cb [MERGE] Forward-port saas-15 up to 17b847c0f6 2017-06-01 01:10:29 +02:00
Olivier Dony 5dd2cc8e63 [MERGE] Forward-port saas-14 up to b9e2207267 2017-06-01 00:37:30 +02:00
Olivier Dony b9e2207267 [MERGE] Forward-port 10.0 up to 7e44444878 2017-06-01 00:15:27 +02:00
Cocographique 3dcc54ccf4 [FIX] website: Front-end apps dropdown doesn’t appear on mobile
This commit closes #15551
2017-05-30 18:28:22 +02:00
stefanorigano c3c98e937e [FIX] website: 'parallax', prevent parallax disappear
The inner ’.s_parallax_bg’ element has a negative z-index value to be
rendered behind any other inner content.
This may cause the element disappear, because z-index is evaluated on
the entire page.

This commit will restrict the ’s_parallax_bg’ behaviour at snippet
level, assigning a z-order to the container too.
2017-05-22 13:57:18 +02:00
Olivier Dony 5afe894f44 [MERGE] Forward-port saas-15 up to 878fbc75ff 2017-05-16 17:09:45 +02:00
Olivier Dony 61c2b8efd5 [MERGE] Forward-port of saas-14 up to 9b3ca1af23 2017-05-16 12:47:44 +02:00
Olivier Dony 9b3ca1af23 [MERGE] Forward-port 10.0 up to 1545995b39 2017-05-16 12:12:30 +02:00
qsm-odoo f83f9d702a [FIX] website: slideshow image gallery was not responsive
The slideshow image gallery code was quiet old and ugly. This commit
refactores it so that it works better, especially its responsiveness.

Before this commit, the number of thumbnail images was limited to 10.
If there were more images than 10, the user was able to navigate
between groups of 10 images thanks to arrow buttons. The problem is
obvious: on small devices, 10 images is too much. Now this "10" limit
is not fixed, it is determined according to the width of the browser
at the time the user loads the snippet.

Some animation and style was also wrong in some cases.
This commit was made as a 10.0 fix, the snippet should keep improving
in advanced versions.
2017-05-12 10:08:27 +02:00
Mehul Patel 1face40a57 [IMP] website: Remove margins around the todo bar in dashboard
Purpose
=======

todo bar shouldn't have margins around. It makes it look unaligned with the blocks below.
2017-04-21 15:45:18 +02:00
Kishan Gajjar 405e9551d7 [IMP] website: Display message to drag&drop snippet if no content in page
Purpose:
========

When you start designing a page, you get a weird empty page
it was better in v8 with a default message prompting the user to drop a snippet

Specification:
==============

When a user starts designing a page he/she should get a default message prompting to drop a snippet (like we had it in v8).
[The drag&drop icon must be adapted: now snippets stand in the left side (and not in the upper part)]
2017-03-27 15:08:25 +02:00
Rohan Patel 4d1cef1b1f [IMP] website: improve dashboard header to have a website-related dashboard
This header displays icons that proposes to install other website related
applications.
2017-03-03 16:57:06 +01:00
Rohan Patel 79597a2b84 [REF] website: merge Website and Website Admin menu items
This commit merge the two website menu items in order to ease user flow
inside Odoo. When clicking on the Website item a server action is called
that decides to redirect the user either to the dashboard if the user is
an admin or a website publisher, either to the website for other people.
Overriding this method allows to define a specific behavior. Future commit
will also redirect sales people to the website dashboard.

Dashboard itself is customized to add a header used to display a website
button. It will be used in future commits to add other new stuff to the
dashboard.
2017-03-03 16:57:06 +01:00
qsm-odoo ab78680d58 [IMP] web, web_editor, website: small refactoring of LESS files
This commit comments some LESS files to help the user to understand
for what their content is used (preparing the LESS editor feature).
2017-02-14 16:32:06 +01:00
Christophe Simonis 6c4389df41 [MERGE] forward port branch 10.0 up to 6804085b8c 2017-01-23 14:33:53 +01:00
Christophe Simonis 44276dfdc3 [MERGE] forward port branch saas-11 up to a0aca47fef 2017-01-17 19:12:20 +01:00
qsm-odoo 655a9bcd51 [FIX] website: allow "contain" option for s_banner background
Since saas-10, you can customize the background size and position
of snippets. The "contain" option was not working for the s_banner
components as overridden to "cover" by the snippet specific style.
2017-01-16 13:09:34 +01:00
Jeremy Kersten c61fbe36b8 [FIX] website,website_sale: add o_text_overflow in front end
And use it in right column from ecommerce (task-28865)
2017-01-11 11:12:47 +01:00
Dhawal Limbuwala 13e819f510 [FIX] website: Don't show links on website pages when pressing Ctrl+p 2016-12-05 14:22:06 +01:00