Commit Graph
6920 Commits
Author SHA1 Message Date
Pierre Masereel 8e65b57df7 [FIX] web, web-kanban: update dataset size at record's drop in a column
When we drag and drop a record in a folded column, the number of elements
in this column displayed  in the column title is not updated.
This issue is present because when a record is droped in a column
its id is not added to the dataset of its new column.

To fix this, we had to add the id of the record in the dataset, and
override the method 'add_ids' in 'DataSetSearch' to have the size
of the dataset equal to the number of ids in it. We have replicated
the behaviour of the function 'remove_ids' in the new function 'add_ids'.
2016-09-06 17:15:44 +02:00
Nicolas Martinelli 1bcbca4be3 [FIX] web: statusbar click
When the statusbar is clicked, a `debounce` function prevents a
doucle-click, and therefore making several `write` calls. In debug
mode, the click doesn't work anymore.

For some mysterious reason, the event is propagated to the parent. The
`currentTarget` is not the `li` element, but the parent `ul`. By
setting the `immediate` argument to `true` (execute the first function
instead of the last), this solves the issue.
2016-09-02 12:46:10 +02:00
Nicolas Lempereur 40ceda20eb [IMP] web: pivot don't repeat total header 2 times
opw-687243
2016-08-31 15:56:34 +02:00
Denis Ledoux 8787476b50 [FIX] web: fix DataSetSearch to avoid race conditions
This is a following of revision
ab8a93c852

This revision solves a new case:
when quickly performing a second search
after one which has not been resolved yet in a kanban view, and the second
search is resolved before the first, it was not possible to load the form
by clicking the card of the kanban, it leaded to a
`Could not find id in dataset` web client error

This was because the ids of the dataset were altered with
the ids of the first search (the one that lasted longer), while
the records displayed were the ones of the second search
(the one that finished first)

opw-682362
2016-08-17 12:26:16 +02:00
Nicolas Martinelli 0350ab81b8 [FIX] web: prevent double-click on statusbar
When double-clicking on the statusbar widget, two calls to write are
performed. This can cause unwanted behavior, and when the `write` method
takes a lot of time to process, it's not possible to prevent it
server-side.

Courtesy of @gurneyalex and @aab-odoo

Closes #13135
opw-686025
2016-08-16 13:06:03 +02:00
Goffin Simon 414ad99a92 [FIX] web: unchecked radio button
Before rendering the radio button, the radio button must be unchecked
to ensure to take the last value checked.

Step to reproduce:

-From main menu, click on 'Contacts'
-Click on 'Create'
-Select 'Company' value on company_type field
-Save or not the contact
-Return in the main contact view (click on breadcrumbs)
-Click on 'Create'

Bug:

The default value on company_type field is 'Company'
but the fields that should be hidden are visible (example : parent_id field)

After the fix:

The value of company_type field is 'individual'

opw:684847
2016-08-10 11:37:52 +02:00
Nicolas Martinelli c819b88063 [FIX] web: FieldCharDomain value
An issue occurs in the following use case:
- Create an automated action
- Choose a Related Document Model
- Select records to filter (click on "Select Records")
- Do not save, but cancel instead
- Create an automated action once again

The filter domain keeps the same value than previously, forcing the user
to refresh the page to get rid of it.

opw-683214
2016-08-10 08:31:01 +02:00
Simon Lejeune cadb481e20 [FIX] web: oe-view-manager-content display issue on ie11
This tries to be the smallest patch possible in order to avoid triggering
another display issues, so we only patch in the ms-hight-contrast section
which only applies on ie 10/11.

* The view-manager weren't displayed correctly; they didn't fit 100% of
  the screen width. This is fixed by explicitely seting the top, right,
  left, bottom attributes.

* The modals content were not displayed. This was due to 2 issues:
  * The rule that we patch in the first point set the position of
    `oe-view-manager` as absolute with an importang flag. Because of
    this important, the rule that reset the position of the
    `oe-view-manager` as static in modals.less was not honored. So
    we also patch this rule with an important flag inside the same
    file (so that all the fixes related to ie10/11 are in the same
    place).
  * Now that the modals are displayed, they do not fit 100% of the
    screen. It's because the `max-height: 100%` of `.modal-content`
    set in modals.less does not work in ie10/11, due to some bug
    with the flex displays. We set the height to 450px so that the
    modals are kind of correctly displayed on a 1366x768 screen
    (their content are still scrollable).

related to rev 1ccd87a037
closes #12929
2016-08-03 14:39:19 +02:00
Fabien Pinckaers 3888301a2e [IMP] web: Quantity is very misleading in reporting views --> e.g. SO Line Quantity is perceived as Quantity of products, whereas it's the count of SO Lines. Renaming to Count 2016-07-07 12:28:57 +02:00
Denis Ledoux 489ea42859 [FIX] web: parsing of date with abbreviated month/day
When using the abbreviated month in the language
date format (`%b`),
e.g. `%d %b %Y`
in some languages, the parsing of the date
from this format to the database format (YYYY-mm-dd)
failed because of a dot `.` added from time to time
to the end of the abbreviated name
e.g., in French, `5 juil. 2016`

This is a bug of `moment.js` < 2.13.0,
handling badly this dot.
This is solved from `moment.js` 2.13.0,
thanks to the below revision
moment/moment@41fdb58572
moment/moment#3078

Unfortunately, we cannot update this library to its latest
release in stable release of Odoo (e.g. 9.0),
as this is seen as an unstable change
(if some API changes occured in the given library)

Instead, if the parsing of the date fails with the
strict mode (meaning the date must respect the format
exactly), we perform a second pass without the strict mode,
so this dot will be ignored,
and the date can be correctly parsed.

The issue can be reproduced by loading the French language,
and setting `%d %b %Y` as date format, and then performing
an advanced search on a date field. The value of the date
in the advanced search will be empty without this revision
(for the months having more than 4 chars,
other than `mars`, `mai`, `juin`, `aout`).

Fixes #11854
opw-682534
2016-07-05 18:04:22 +02:00
Denis Ledoux 6c85d925c3 [FIX] web: dialog close with a reason
In the below revision:
c0db6aec56

The dialog close `reason` was introduced
to not reload the current form if the dialog
has been closed for a reason
(e.g. a window action was returned by the server).

This is to prevent the record reload, which:
 - Is useless, as another action has been launched
   and the user therefore redirected elsewhere
 - Can fail, in the case the initial action deleted
   the current record
   (e.g. when merging a lead in an opportunity, the
   lead is removed, and therefore this is not possible to reload
   it).

 opw-680180
2016-07-04 18:40:15 +02:00
Christophe Simonis 10550aa5a5 [MERGE] forward port of branch saas-6 up to e68ed41 2016-06-28 13:11:35 +02:00
Denis Ledoux 9062c01c02 [FIX] web: pager page on next/previous record
When browsing a form with a one2many / many2many field
with several pages, the one2many pager page was not reset
when going to the previous/next record, while the next/previous
record could not have multiple pages on its one2many/many2many,
and the page on which the user was on the former record could
not exist in the newly displayed record.

Besides, even if the page does exist, there is no reason
to display this new record X2many value from its first page.

It's the case anyway when you edit/save, it comes back to the first page.

opw-679092
2016-06-27 16:50:47 +02:00
Martin Trigaux 5abcbf0eb2 [FIX] js: translations and string substitutions
_('foo '+bar) does not work as `bar` is a variable with undefinied content
during translation export (and variable content during evaluation) so a match
will not be found.
Also trailing spaces are stripped during synchronisation with transifex.

The proper syntax would be
_.str.sprintf(_t("foo %s"), bar)
but to avoid breaking existing translations (need to reexport .pot)
use the syntax
_("foo ") + " " + bar
that is more stable friendly.

The 'No value found for the field...' string is not possible to be fixed without
breaking the translations should be split at least twice.
Write it the propre way directly.
2016-06-27 12:05:36 +02:00
Christophe Simonis 4030f2fd32 [MERGE] forward port of branch 8.0 up to 297bbff 2016-06-23 16:21:28 +02:00
Christophe Matthieu 025263d3bf Revert "[FIX] web_editor: test jinja content to load editor in codeview"
This reverts commit f38f8930f0.

Revert for internal choice. Odoo want to use qweb in template and remove jinja support on next version.
If users want to use jinja they can change the view to use text widget instead of html widget.
2016-06-23 11:45:17 +02:00
Denis Ledoux b630c199a5 [FIX] web: 2many race condition on fast click on Save / Edit
For `this.viewmanager.active_view` to be set, the view manager
switch mode must be completed, meaning the deferred returned by
the function `switch_mode` must be resolved
(see `this.active_view = view;` in `view_manager.js`, line 146)

In a 2many field, the view manager `switch_mode` deferred is resolved
when `is_loaded` of this field is as well resolved.

Before this revision, clicking fast on Save then Edit
of a vendor bills resulted to a JS error due to a race condition,
because `this.viewmanager.active_view` was undefined when
the field was not loaded / the view manager switch mode not completed.

opw-678097
2016-06-22 18:11:20 +02:00
Christophe Matthieu f38f8930f0 [FIX] web_editor: test jinja content to load editor in codeview
The preview change the content because the browser try to fix the dom.
If a user use jinja and activate the preview, the jinja code is (re)moved by the browser and broke the template.
2016-06-22 14:26:42 +02:00
Christophe Matthieu a9fac2ea2d [FIX] web: required attribute on one2many field
Require One2many field without any line must show an error like many2many fields.

issue 11782
2016-06-22 09:16:07 +02:00
Christophe Simonis 0a2317d303 [FIX] test_new_api,web: tests 9.0 adjustments
Rev e37ba61 forward-ported 8.0 revision f02b230 from PR #12379.
This patch introduces extra tests and views for o2m onchange behavior,
including new fields in the test models.

In 9.0 a new convert_to_onchange() mechanism had been
introduced at 9f81c6d

The combination of both requires some adaptation to the
expected results of the new tests and adaptation of existing tests.

The test models in `test_new_api` have an implicit depencies between
models which cannot be express on ORM:
    messages depends on participants of their discussion.

So, when editing a discussion, the field `participants` should be
processed before field `messages`. This is not always done because
field processing order depends of the iteration order of a `dict` (which
is undefined in python).
The testing tour `widget_x2many` worked by chance until now.
Adapt the tour to save the participants before the messages.
2016-06-21 11:23:18 +02:00
Nicolas Martinelli e0c4ec54ca [FIX] web: new record on editable list
On an editable list view, an issue occurs with the following procedure:
- Click "Add an item", write something
- Press "Enter" key --> a new item is added, write something
- Click outside of the list, then click on the last item created
- Press "Enter" key --> the cursor is set at the beginning of the list

This is an issue for two reasons. First, the behavior is not the same if
we have clicked outside of the list before pressing "Enter", which is
not logical. Then, in some undetermined cases, the focus can be lost
then retrieved on the last record. It means that suddenly, the cursor
goes back at the beginning of the list without notice.

The latter issue is problematic when batch-encoding data, for example
encoding the lot numbers of incoming products thanks to a scanner.

opw-680758
2016-06-14 12:39:11 +02:00
Denis Ledoux 4601b044a6 [FIX] web: prevent search dropdowns to close on click inside
In the Filters, Group By and Favorites dropdowns,
when clicking outside the `li` elements but still
inside the dropdown menu itself
(like on the dividers,
or next to the advanced search `Apply` button),
the dropdowns was closed.

This behavior was annoying when doing an advanced search
with a field using the datetime picker, as, to close the datetime
picker, you have to click outside it, and when you did, it closed
automatically the filter dropdown... So you had to open it again to
finally apply the filter.

opw-674310
2016-06-07 16:48:58 +02:00
Christophe Simonis 928bc262a6 [MERGE] forward port of branch saas-6 up to 589751c 2016-06-02 14:26:19 +02:00
Nicolas Martinelli 82b9d7d511 [FIX] web: minimum margin
Make sure to define a minimum margin large enough.

opw-678645
2016-05-27 12:29:29 +02:00
Nicolas Martinelli 344ff461e5 [FIX] web: graph numbers
Backport of commit 68b127797e

opw-678645
2016-05-26 13:54:39 +02:00
Christophe Simonis aa220a5e03 [MERGE] forward port of branch 8.0 up to 6622196 2016-05-26 12:27:56 +02:00
Jeremy Kersten 9772bbef07 [FIX] web: fix backport #4c7a9bd 2016-05-25 23:38:28 +02:00
Goffin Simon 4c7a9bdac4 [FIX] web: raise a warning for bad domain
When a user wrote a wrong value in char_domain field it should raise a warning
message instead of a traceback.

Backport of b3a88b6ed8

opw:676783
2016-05-25 15:52:59 +02:00
Jeremy Kersten 3ed55c540f [FIX] web: chardomain, don't allow to edit the input when not in edit mode. 2016-05-25 14:39:38 +02:00
Nicolas Lempereur 3b234a23cb [FIX] web: download file and editor firefox bug
When we download a file (as can be done with attachments in Odoo),
firefox is opening the link in current window but cancel the action once
it is aware the resource is to be downloaded.

But this get firefox into a corrupt state for some contenteditable
features, for example document.queryCommandState which is needed for the
editor will after downloading a file throw an error consistently instead
of working as expected.

It can be reproduced on firefox (at least from version 32 to 46) with
the following snippet:
 https://jsfiddle.net/s246u3ay/3/

The issue is probably linked to the following reported issue since 2005:
 https://bugzilla.mozilla.org/show_bug.cgi?id=297494

This commit avoid the bug by opening attachments download links in a new
window instead of the current one.

closes #12109
opw-676918
2016-05-19 14:49:52 +02:00
Nicolas Martinelli 68b127797e [FIX] web: left margin of graph
The left margin of the graph doesn't take into account the width of the
maximum Y-axis value. In case the values are high (> 10^7), they are
cropped.

The fix is to adapt the left margin as a function of the size of the
maximum value.

opw-676538
2016-05-17 16:38:28 +02:00
Nicolas Martinelli cab2dce0d2 [FIX] web: Y-axis formatting
In case of a line graph, the values of the Y axis are not formatted as
numbers, although they are on the bar graph.
2016-05-17 16:38:28 +02:00
Stanislav Sokolko 0632a40b80 [FIX] web: update compatibility layer
this commit adds better support in the compatibility layer of the
js framework.  This is necessary if one wants to follow the
official tutorial.
2016-05-17 10:47:26 +02:00
Géry Debongnie 65192ea943 [FIX] web: remove useless line
the enable_button call should have been removed...
2016-05-17 10:26:24 +02:00
Géry Debongnie 95cbee6243 [FIX] web: fix duplicate changes in form view
Before this commit, in some cases, clicking on 'save' button, then on
other buttons (like 'validate' in invoices) had the unfortunate effect
of applying twice the changes in some cases.

More specifically the problem appears when:
1. an onchange is triggered (for example, taxes in invoices)
2. the user clicks on 'save', buttons are disabled
3. the 'save' actions is completed, the buttons are enabled, but
   the on_button_save still does some work: triggering event, and
   reloading the view
4. the user clicks on 'validate'
5. the onchange completes, this triggers some more work

Our only protection against such interactions is right now the fact that
buttons are disabled/enabled.  In my opinion, there should be a way
to guarantee that actions are properly serialized (that is actually what
a mutex is for... just saying). But the code of the form view/list view is
too coupled, and such changes are quite dangerous.  A real refactoring
of those is needed at some point in the future.
2016-05-17 10:24:47 +02:00
Christophe Simonis 2f374c4cba [MERGE] forward port of branch 8.0 up to 3a32021 2016-05-12 12:38:02 +02:00
Nicolas Martinelli 50b94ef079 [FIX] web: search input of date
When the user searches for date (or a datetime) in the search bar, the
suggested date can become completely wrong. For example, in the French
localization where the date format is DD/MM/YYYY, the system will search
for the date MM/DD/YYYY. This is even worse when the date is not fully
written: DD/MM could be converted to MM/DD/0000, which doesn't make any
sense. This is related to the moment issue
https://github.com/moment/moment/issues/1407.

The fix is to make sure that the input date has a correct format thanks
to `parse_value`. The latter converts the date into a fixed format.

Fixes #11876
opw-676604
2016-05-10 11:19:22 +02:00
Nicolas Lempereur dd714ace55 [IMP] web: multi-click on save on view form (no fp)
When clicking on save several time when editing a view form it can be
saved several times which can be an issue for one to many.

The normal happenstance when saving should be as follow:

-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

But when clicking several time, it could become:

-> save (click)
-> wait write result
-> received write result
-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

This commit only reinstate the saving feature once the form is reloaded.

closes #11926
opw-671793

note: no need to forward-port
2016-05-09 10:54:16 +02:00
Goffin Simon b3a88b6ed8 [FIX] web: raise a warning for bad domain
When a user wrote a wrong value in char_domain field it should raise a warning
message instead of a traceback.

opw:676783
2016-05-09 09:35:13 +02:00
qsm-odoo 324dbcde57 [FIX] web: editable list, up/down navigation on m2o
The current behavior was allowing going on the previous row if the
user is at the start of an editable element and on the next row if the
user is at the end of an editable element. The problem was, we did not
want this behavior when the editable element is a select or m2o (as
the up and down input should open the select/m2o dropdown instead).
2016-04-27 17:01:16 +02:00
Géry Debongnie ab8a93c852 [FIX] web: fix dataset to avoid race conditions
The read_slice method in dataset is problematic, because it alters the
dataset ids.  So, if 2 consecutive read_slice are started, but the first
one ends after the second one, we don't have the correct ids in the
dataset.

This commit just make sure that previous read_slice do not alter the ids
of the next read_slice.
2016-04-20 17:20:25 +02:00
Olivier Dony 7f6bd2dc66 [FIX] web: fix layout issue in Chrome 50 (again)
Makes the fix in f992c8ee19
specific to the view manager of the main oe_application
container, in order to avoid disrupting other view manager
occurrences (such as the ones in modal windows or x2many
list views).

Fixes #11629 (again)

Note: Hopefully the Blink team will fix Chrome so we can
get rid of this hack in the future:
  https://bugs.chromium.org/p/chromium/issues/detail?id=603507
2016-04-19 17:44:24 +02:00
fossoult 17d0117edc [FIX] web: expose list view Column widget
The list view Column widget should be exposed, so it can be extended.
This is required to allow the creation of other kind of list widgets.
The _format method is not extendable if we don't add this line.

(comment from ged) The file list_view.js should be split in two, and
reorganized, but this should not be done in 9.0.
2016-04-19 16:14:28 +02:00
Joren Van Onder e18660c330 [FIX] web: fix iOS file downloading
e8a00bc50d moved the get_file function
from web.session to web.ajax. The issue is that get_file uses
session.url() for iOS devices. Also, in order to prevent an infinite
spinner options.complete() is called before actually opening up the new
window. Although this resolves the issue it still requires the user to
configure Safari to allow pop-ups, otherwise they are silently ignored.

opw-672882
2016-04-19 13:26:01 +02:00
Christophe Simonis 7033a97f77 Revert "[FIX] web: fix layout issue in Chrome 50"
This reverts commit f992c8ee19 which
should not be forward-ported.
2016-04-19 11:44:48 +02:00
Christophe Simonis 76d1116a25 [MERGE] forward port of branch 8.0 up to 9fa53b7 2016-04-19 11:33:17 +02:00
Simon Lejeune f992c8ee19 [FIX] web: fix layout issue in Chrome 50
A 100% height is not distributed anymore to the children of a table-row
if they are not themselves table-cell in Chrome 50. This breaks the
indenpendent scrolling of the menu and the view manager.

However, setting the `table-cell` display breaks the layout in Internet
Explorer.

When the webclient is loaded by Chrome 50, we load a stylesheet
forcing a `table-cell` for display.

Seems to be related to https://bugs.chromium.org/p/chromium/issues/detail?id=353580
and https://chromium.googlesource.com/chromium/src.git/+/8876584335b48c99cf8df552ef4d8efebb131041

Related to e1a99192bd
Fixes #11629
2016-04-18 14:43:50 +02:00
Jeremy Kersten 8aee655825 [FIX] web: don't display view metadata for new record
Close #11584
2016-04-15 17:07:29 +02:00
Simon Lejeune e1a99192bd Revert "[FIX] web: fix layout issue in Chrome 50"
or how to break every internet explorer releases while
attempting to fix chrome 50
2016-04-15 12:12:26 +02:00
Simon Lejeune 00ead29c7c [FIX] web: fix layout issue in Chrome 50
The height was not distributed anymore to the children of a `table-row`
element if they are not themselves `table-cell` elements.

Fixes #11629
2016-04-14 14:31:12 +02:00