Commit Graph
158 Commits
Author SHA1 Message Date
qsm-odoo 8924abc0f1 [IMP] web, web_editor, website: add meaningful bundle names
As the user will be able to customize the bundles thanks to the LESS
editor, this commit give them meaningful names.
2017-02-14 16:31:51 +01:00
Christophe Simonis a282d4ae7f [MERGE] forward port branch saas-14 up to be9dfb331f 2017-02-10 18:41:06 +01:00
Christophe Simonis 6a942a9e96 [MERGE] forward port branch 10.0 up to 8a0151b4bc 2017-02-02 12:42:51 +01:00
fwi-odoo ad6fd5f838 [REF] web: update bootstrap-datetimepicker lib and adapt datepicker widget
from 3.0.3 to 4.17.42
2017-01-30 10:29:27 +01:00
Christophe Simonis ba8a1c7ec2 [MERGE] forward port branch saas-11 up to e86983112e 2017-01-27 18:20:28 +01:00
Christophe Simonis 047efcbd58 [MERGE] forward port branch 9.0 up to 838beb12de 2017-01-27 16:21:51 +01:00
Olivier Dony 6edb749534 [FIX] web: provide correct autofill browser hints
Modern browser implement the autofill specs as described at
 https://html.spec.whatwg.org/multipage/forms.html#autofill

This means that there is now a way to tell the browser when a password
field is supposed to be filled with the user's own password (e.g. on a
login field), and when it's supposed to be used to input a new secret
value (e.g. when changing someone else's password).

This can be distinguished by setting the autocomplete attribute
to `current-password` or `new-password`.

In addition, many browsers have decided to entirely disregard the
autocomplete='off' attribute value, because it is felt that using
a secure password manager (as provided by those browsers) is a net
gain for security, allowing users to pick stron passwords.
See also https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

Based on this, the framework should generally consider that
password fields in the backend are meant to be used for *setting*
new values (autocomplete="new-password", i.e. no autocompletion!),
whereas the password field on the login page can indeed be autofilled
with the user's current password (autocomplete="current-password").

In addition to making the above changes, this patch also
lets developer specify their own `autocomplete` attribute on
text input fields.
2017-01-27 14:44:36 +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
Christophe Simonis 70f86ce4e8 [MERGE] forward port branch 9.0 up to 16fa61b34f 2017-01-17 18:04:57 +01:00
Nicolas Martinelli ea4c231130 [FIX] web: limit password size
If the user writes a password larger than 4096 characters at the login
screen, it causes a crash instead of displaying the "Wrong
login/password" message.

The Python library used to hash password (passlib) is by default limited
to 4096 characters. Above this limit, it raises an error (source:
https://pythonhosted.org/passlib/lib/passlib.exc.html).

Allowing a password larger than 4096 is not necessary, we just limit the
field maximum length since such a situation should happen because of an
incorrect copy/paste.

opw-704110
2017-01-11 15:18:40 +01:00
qsm-odoo 20b109fac9 [IMP] web: add new DomainSelectorDialog dialog widget
The DomainSelectorDialog widget allows the use of a DomainSelector
widget inside a modal.
2017-01-06 16:03:09 +01:00
qsm-odoo b8eb821f13 [IMP] web: allow DomainSelector widget to be instanciated with a string
Before this commit, the DomainSelector had to be instanciated with an
array-typed value which forced the user to use (and import) the pyeval
module. Now, the conversion to array is done in the DomainSelector.

This commit introduces a web.domainUtils module allowing to do the
convertion array -> string and string -> array of a domain.
2017-01-06 16:03:09 +01:00
qsm-odoo e3f99885ca [IMP] web, *: add new Domain and Field selection widgets
* base_action_rule, gamification, mass_mailing

1) Create the independant DomainSelector widget

- Allow to build a prefix char domain

2) Replace old FieldCharDomain with a new FieldDomain which uses the
   new DomainSelector widget

3) Create the independant ModelFieldSelector widget

- Allow to build a valid field chain for a specific model
  (e.g 'partner_id.name' for a 'res.users')
- Used by DomainSelector widget

---

The DomainSelector widget uses a tree-like representation with
user-friendly buttons (ALL/ANY/+/-/...). Any domain can be built,
except those containing the "!" (not) operator or some operators
like "like", "child_of" (@see DomainSelector). However, if the
user enters these in the debug input, the widget can handle them.

Note: these widgets had to do unusual stuff the widget API does not
allow to handle efficiently right now but it will be adapted to the
new widget/field API in a further update.

Note2: the widgets also have possibility of other improvements like
supporting m2o input instantiation in DomainLeaf, etc.

---

This work is an adaptation of the original code made by @pga-odoo.
2017-01-03 18:38:03 +01:00
qsm-odoo dd560377e2 [IMP] web: improve traceback reporting
* Do not assault the user with a full traceback on bug, but indicates
an error occured and allow him to toggle the traceback
* Automatically scroll the traceback to the end (better for python
errors)
* Propose the user to report the traceback by using a new "Copy"
button which correctly copies the full error + traceback
2016-11-02 13:26:00 +01:00
qsm-odoo d83f7587aa [MOV] web, website(_slides): move PDFjs lib to web
website_sign is now a backend-only module in enterprise, so it should
not use a website library (even in a static way).
2016-09-13 14:18:31 +02:00
qsm-odoo 5a1db6cde2 [DEL] web: remove old tour system 2016-09-02 18:09:07 +01:00
Adrien Dieudonne 3029857bad [REF] web, website: move jQuery UI Nested Sortable lib
As this lib will be used in the backend, it is moved to assets common.
2016-09-01 14:06:21 +02:00
qsm-odoo b4a159d261 [IMP] web, website(_*): use web.layout for every web page
The web modules defines a "layout" template which is only used by the
login default page. Now the backend template "web.webclient_bootstrap"
and the frontend template "website.layout" both use the "web.layout"
template as base.

Some parameters can be passed to customize the default "web.layout"
template:
- "head": content will be placed at the end of the <head> tag of the
page
- "title": to set the title of the page (the <title> tag should not be
placed "by hand")
- "x_icon": the url for the page icon
- "html_data": dictionnary whose key-value pairs will be placed as
attribute-value for the <html> tag
- "body_classname": the classname to set on the <body> tag

Note: xpath expression on the website.layout template can now only find
the #wrapwrap element and its children. An expression "//body" will not
have any result. If something has to be added in the body element but
not in the #wrapwrap element, simply change the xpath
<xpath expr="//body" position="inside"> with
<xpath expr="//div[@​id='wrapwrap']" position="after">
2016-08-30 13:57:32 +02:00
Christophe Matthieu 4302dda5a4 [IMP] web/test_new_api: move widget_x2many tour into test_new_api 2016-08-26 13:50:38 +02:00
Christophe Simonis 53015e11a9 [MERGE] forward port branch saas-11 up to eb83ab2 2016-08-03 16:16:30 +02:00
qsm-odoo b907c9654f [FIX] web: restore missing groups since web refactoring
Commit 977db823c7 refactored the web module so that it gathers
common features of community and enterprise. The problem is that the
web.webclient_bootstrap template content lost its groups attributes.

This had the effect to make the client crash when accessing the
template for calendar invitation for example, as the template was
trying to render menus without menu data.
2016-08-03 10:41:12 +02:00
Géry Debongnie 00120a9271 [REF] web: refactor and simplify web.core 2016-06-17 13:32:37 +02:00
Géry Debongnie 2254abbde7 [REF] web: move Bus class to web.Bus 2016-06-17 13:32:37 +02:00
Géry Debongnie d56b35e26e [REF] web, *: move QWeb odoo init to web.QWeb
this js module centralizes all odoo initialization
2016-06-17 13:27:18 +02:00
Aaron Bohy 38bb6a7f81 [ADD] openerp,web,web_tour: new web_tour addon
Join work with ged
2016-06-16 14:59:40 +02:00
Adrien Dieudonne 8580636bad [ADD] web: js module to communicate with localStorage
Private browsing in Safari doesn't allow to store anything in the localStorage,
and it throws an error when you try to do so. This new JS module is a connector
to the browser's localStorage if it is enabled, and if not, it simply keeps its
own storage in RAM.
2016-06-16 13:48:18 +02:00
Christophe Matthieu 710a7cee14 [FIX] website: t-att-*** display empty string attribute
Remove attribute only if the result is False or None
2016-06-14 09:46:26 +02:00
Christophe Simonis 7306e888a6 [MERGE] forward port of branch saas-11 up to ac50230 2016-06-08 12:28:16 +02:00
Christophe Simonis ac5023060c [MERGE] forward port of branch saas-10 up to 2f948c7 2016-06-08 12:19:23 +02:00
Christophe Simonis 2f948c76aa [MERGE] forward port of branch saas-9 up to 3ed483c 2016-06-07 19:45:02 +02:00
Christophe Simonis 7889d7e0ff [FIX] web,auth_signup: prevent login autocapitalization
Mobile virtual keyboards will often capitalize the first letter of
an input text field, which is annoying as odoo logins are case-sensitive.
This will no longer happen thanks to this new attribute.

X-port of commit odoo/enterprise@b8632f8bb6
2016-06-07 16:15:47 +02:00
Géry Debongnie f3fb0bfe29 [IMP] web_analytics: remove rpc to version_info
and put it serverside, in the session info.  This saves 1 rpc for every
connections.
2016-05-30 11:43:06 +02:00
Géry Debongnie 9c68bc7482 [REF] point_of_sale,web(site): move session info into page source
This commit introduces a mechanism to add information into the session
from a different module, without having to fetch it manually with a rpc.
This is intended to be used with small pieces of info required at the
start of the web client, such as currency informations.

To add information to the session, one can simply inherit from ir.http
and modify the session_info method.
2016-05-30 09:23:07 +02:00
Géry Debongnie 4828a00f9e [REF] web: move dom_utils to its own file 2016-05-27 16:08:50 +02:00
Géry Debongnie b107b14e6b [REF] report,web(_editor): services extracted in their own files
session_instance.js moved from framework/ to services/ and renamed into
session.js, which required to change the bundles in report and web_editor
addons.
2016-05-27 16:08:41 +02:00
qsm-odoo e503fc80df [FIX] web, pos: Lato font assets
A fonts.less file which contains the definition of Lato was created
in saas-11 and placed in the backend assets. It should have replaced
the lato/stylesheet.css in the common assets.

Also adapt point_of_sale assets to use the same file.
2016-05-19 14:36:28 +02:00
Yannick Tivisse f321466a69 [ADD] web: Library to make fuzzy searches
https://github.com/mattyork/fuzzy
2016-04-27 14:14:54 +02:00
Aaron Bohy 977db823c7 [REF] web: stop duplicating web
Avoid duplicating web addon in enterprise by extracting a common basis.
Enterprise features stay in enterprise, but use that common basis.

Mainly:
 - JS refactoring and linting
 - Conversion of .sass into .less split into multiple files
 - Templates cleaning and DOM simplification
 - Re-generation of web.pot, and update of .po files
2016-04-21 15:21:39 +02:00
Aaron Bohy 6c57935443 [IMP] openerp,web: cache of actions, fields(_views) and filters
Introduction of 'data_manager' service which handles meta-data related to
actions and views (fields_views, fields and filters). Ideally, all RPCs to
get that kind of information should go through data_manager, as it holds an
internal cache.
2016-03-18 10:44:52 +01:00
qsm-odoo 5a099117c4 [FIX] web(_editor): qunit tests
* Correct qunit template assets
* Delete useless template which broke qunit qweb inheritance
2016-02-25 14:45:34 +01:00
qsm-odoo 58c5ff1d4f [REF] website*: frontend user navbar
* Remove use of bootstrap navbar
* Add navbar.less file for compatibility with enterprise
* Modify the location of the "new page/product/..." elements
2016-02-24 13:47:36 +01:00
qsm-odoo 88c2b6843a [REF] web,web_editor,website(_*),report,pos,mass_mailing: assets
* Remove recursive assets inclusions (i.e. assets_editor was including
assets_common, summernote, ...)
* Better construct the assets (link, then script + type attribute)
* Better include the assets (split js / css, always use t-call-assets)
* Simplifies the number of assets
* Move bootstrap js to assets common
* assets_frontend is now created by web module to allow using it on the
connexion page but also in the web_editor, where colors have to be
bootstrap/theme ones. Note: if a module depends on website, then keep
using the inherit_id="WEBSITE.assets_frontend"
2016-02-24 13:47:06 +01:00
Christophe Matthieu 831246fc9d [IMP] web: remove spin lib and replace by an image with css to spin 2016-02-17 09:47:46 +01:00
Christophe Matthieu 0208b91def [IMP] web: remove useless jquery.validate lib 2016-02-17 09:47:46 +01:00
Christophe Matthieu 1c02be8974 [IMP] web: remove useless jquery.notify lib 2016-02-17 09:47:46 +01:00
Christophe Matthieu 1a2b1e69dd [IMP] web: remove useless jQuery.timeago lib
Replace call by moment(date).fromNow()
2016-02-17 09:47:45 +01:00
Christophe Matthieu 8d90abc66a [IMP] web: remove useless jquery.textext lib 2016-02-17 09:47:45 +01:00
Yannick Tivisse 09659cca30 [ADD] web: Company swicher button on systray
If the user has multicompany rights and more than one allowed
companies, the full company name is displayed in the  topbar. When you
click on it, there is a dropdown with the name of the other companies.

Clicking on another company name makes you switch on it and reload the page
2016-02-08 09:08:11 +01:00
Géry Debongnie 12f381d2be [FIX] web: remove autosize.js from assets
I forgot to remove it from the bundle, after removing the files.  Why
did noone stop me?
2016-01-25 14:44:15 +01:00