Commit Graph
2270 Commits
Author SHA1 Message Date
qsm-odoo 240b338dd9 [FIX] mail: BS4, restore activity popover
Adapt SCSS which was BS3-specific and remove misuses of the
dropdown-item class.

Closes https://github.com/odoo/odoo/pull/24419
2018-08-07 14:50:06 +02:00
qsm-odoo 57400c1560 [FIX] mail: BS4, properly style followers list
Thanks to @hbh-odoo
2018-08-07 10:03:59 +02:00
Thibault Delavallée 027b3a35d7 [IMP] mail: improve use of templates linked to activities
Purpose: Give the ability to people to directly sign (sic) an email template
without opening the mail composer.

Specifications
 * do not display 'email' in activity view: either there are emails and new
   display applies, either there aren't any and do not dispaly anything;
 * update display of template choice: https://www.awesomescreenshot.com/image/3531694/7f6ac0250009599089ec62b6951a88b4;
 * add an "mt 16" between activity and first mail template;

Tests have been updated to new specifications.

This commit is linked to task ID 1872169 and PR #26185.
2018-08-06 16:24:43 +02:00
Priyanka KakadiyaandNimesh Jethva c7eae6552e [REM] various: remove index.html for apps.
Several applications have an index.html file that is used to fill the html
description of the module. However those descriptions are generally not
up to date: they contain outdated screenshots, feature descriptions are
not maintained, ...

Instead we just rely on the discover button that redirects on the application
website. It has more chance being up to date. Moreover updating a website
is easier than updating the index.html of a module.

This commit is related to task ID 47179 and 1861544. Related PR are #22689
and #25556. First one is about classic applications while second one is about
website applications.

Co-Authored-By: Nimesh Jethva <nje@odoo.com>
2018-08-03 14:54:42 +02:00
qsm-odoo f63a36e184 [FIX] mail: BS4, restore followers dropdown style 2018-08-02 09:55:20 +02:00
XavierDo abbba35598 [IMP] mail: add mail templates on activity
This commit allows the user to link some mail template to activity type
with res_model.

When a activity has template, buttons appears in activity, allowing the user
to send mail based on templates.

Task: #1844563
PR: #25620
2018-08-01 15:26:30 +02:00
qsm-odoo 458bf6b9d9 [FIX] mail: BS4, restore follower subtype style
Behavior is still broken and will be fixed in a future update.
2018-08-01 09:46:32 +02:00
qsm-odoo 582933ac01 [REF] *: BS4, replace 'btn-xs' by 'btn-sm'
In a previous commit, we removed the use of the 'btn-sm' classes as we
used it everywhere for default-size buttons instead of customizing the
size of those default-size buttons directly.

This commit proves it was even more necessary as the 'btn-xs' class does
not exist anymore in BS4 and we so can use the 'btn-sm' class instead.
2018-07-27 12:36:54 +02:00
qsm-odoo ee65b44d9e [REF] *: BS4, adapt the label component structure
The '.label' elements have been replaced by '.badge' elements without
the 'badge-pill' class.
2018-07-27 12:36:54 +02:00
qsm-odoo d48b8593dd [REF] *: BS4, 'pull-left/right' -> 'float-left/right' 2018-07-27 12:36:54 +02:00
qsm-odoo 7285e152c1 [REF] *: BS4, adapt the badge component structure
The '.badge' elements must now also use the 'badge-pill' class to get
the same style as before as '.badge' elements without it are meant to
replace the old 'label' component.
2018-07-27 12:36:54 +02:00
qsm-odoo f4fbaf1efa [REF] web, *: BS4, use custom BS4 checkbox everywhere
Before this commit, Odoo used checkboxes in three different ways:

- A simple <input type="checkbox"/>, mainly in the frontend. The style
  is browser dependant.

- Same as above but with the BS3, checkbox structure. The style is still
  the same, but the alignement is supposed to be better (which is not
  always the case).

- The Odoo official structure:
	```
	<div class="o_checkbox">
	    <input type="checkbox"/>
	    <span/>
	</div>
	```
  which allows to have a cross-browser checkbox style and correct
  alignements.

The goal after this commit is to only use the BS4 *custom* checkbox
structure to achieve the same goal as our official structure (and
remove that one):

```
<div class="custom-control custom-checkbox">
  <input type="checkbox" class="custom-control-input" id="customCheck1">
  <label class="custom-control-label" for="customCheck1">...</label>
</div>
```

/!\ Labels are now required (use a zero-width space if necessary)
2018-07-27 12:36:54 +02:00
qsm-odoo 443735949e [REF] *: BS4, replace img-rounded/img-circle classes
'img-rounded' -> 'rounded'
'img-circle' -> 'rounded-circle'
2018-07-27 12:36:54 +02:00
qsm-odoo 59237ea819 [REF] *: BS4, review panel and well structure
Panels and wells were dropped and replaced by the "Card" component.
2018-07-27 12:36:54 +02:00
qsm-odoo 318b10cce4 [REF] *: use 'light' color and reset 'gray' palette
See previous commit for more explanation.
2018-07-27 12:36:54 +02:00
qsm-odoo d8c217a67d [REF] *: BS4, review color system
Odoo used to declare two main colors: primary and optional (which are
purple and turquoise in enterprise). Those were respectively assigned
to the 'primary' bootstrap variable and the 'btn-primary' bootstrap
variable.

BS4, however, does not allow to have a different primary color for
buttons. Instead, the 'primary' color is used for all 'primary' related
components and utility classes, same as for all other colors. So, if we
want to keep our enterprise buttons green, our 'optional' colors had to
become our 'primary' color. The old odoo primary is then renamed to the
'odoo' color.

The palette of grays is now larger by default and is numbered from 100 to
900 alongside the $black and $white variables. The equivalence for older
variables and the way we used them is:

$gray-darker          ->  gray 900 (unused before)
$gray-dark            ->  gray 900
$gray                 ->  gray 700
$gray-light           ->  gray 600
$gray-lighter-darker  ->  gray 400 (the old variable was created by us)
$gray-lighter-dark    ->  gray 300 (the old variable was created by us)
$gray-lighter         ->  gray 200

Fortunately, the 'lighter' variations we created fit well in the default
BS4 system ! Unfortunately, our $gray-lighter which carried the same
function as $gray-200 (see above) is very close to the new default
$gray-100 and quite distant from the new $gray-200. This will be handled
in the next commit.
2018-07-27 12:36:54 +02:00
qsm-odoo cba48da727 [REF] *: BS4, rename border-radius related variables
$border-radius-base -> $border-radius
$border-radius-large -> $border-radius-lg
$border-radius-small -> $border-radius-sm
2018-07-27 12:36:54 +02:00
qsm-odoo 09f40036b9 [REF] *: BS4, review the 'nav' and 'navbar' components
Now the nav structure is more declarative: the 'nav-item' and 'nav-link'
classes have to be put on related nav item and links. Also, the 'active'
class has to be put on links instead of items.

Same as for the navbar component:
- The navbar structure was simplified and meant to be more declarative.
- The navbar colors are also now handled by a different set of classes.

The 'nav-stacked' class was removed and replaced by flex utilities.

The set of classes for colors and nav styles also changed.
2018-07-27 12:36:54 +02:00
qsm-odoo 3467a90c00 [REF] *: BS4, the $text-color variable was renamed to $body-color 2018-07-27 12:36:54 +02:00
qsm-odoo 4ac446e328 [REF] *: BS4, adapt font-size and padding variables
BS variables were renamed or changed and all (most) variables now
use 'rem' units instead of 'px' unit.
2018-07-27 12:36:54 +02:00
qsm-odoo 1c1c0897e8 [REF] *: BS4, adapt dropdowns and carets
- The dropdown structure was simplified, allowing to get rid of the
  3-levels structure induced by <ul/> elements and dropdowns can now
  contain anything. The class 'dropdown-item' is now mandatory for
  each dropdown clickable element. The class 'dropdown-item-text' can
  be used to add same padding and style but without making the element
  have a clickable look.

- Dividers now use the class 'dropdown-divider'

- The way dropdowns are opened and hidden also changed (before the
  'open' class was added on the `.dropdown-menu` parent, now the
  'show' class is added on both the `.dropdown-menu` parent and the
  `.dropdown-menu` itself).

- JS-wise, no click event handlers can be put on `.dropdown-toggle`
  elements anymore (instead, use handlers for dropdown events).

- Carets are automatically put on `.dropdown-toggle` elements, so this
  commit replaces the `.caret` elements with this. This feature was
  possible to disable but would prevent us from adding a caret with
  scss. Also, this simplifies the DOM. The 'o-no-caret' class was also
  introduced to allow using the 'dropdown-toggle' class on non-caret
  elements.

- Also adapt the scss to use $caret-width instead of $caret-width-base
2018-07-27 12:36:54 +02:00
qsm-odoo 220e49f9d6 [REF] web, mail: get rid of the btn-icon class
That was pretty useless, better use the btn-secondary class and add
particular rules to `.btn.fa` if necessary.
2018-07-27 12:36:54 +02:00
qsm-odoo c59380bac5 [REF] *: BS4, rename btn-default to btn-secondary
BS4 "btn-default" class was replaced with "btn-secondary", which makes
more sense.
2018-07-27 12:36:54 +02:00
qsm-odoo 81f359c81c [REF] *: BS4, remove the use of btn-sm
Odoo made the bad choice of using the 'btn-sm' class for every button
instead of configuring the padding for default 'btn' to be smaller.
In BS4, the style of btn-sm is actually more complex, lowering the
font-size too. Also, btn-xs was removed so we would not have the
possibility to display smaller button than our default ones.

This commit removes btn-sm wherever it was used. Unfortunately, this
might remove it at some places where it made sense but this can be
restored in a second time.
2018-07-27 12:36:54 +02:00
qsm-odoo 7f10b55a50 [REF] *: BS4, adapt display classes
The system completely changed. I also had to adapt classes to new
screen breakpoints.

hidden/hide -> d-none
show -> d-block
hidden-xs -> d-none d-md-(block/inline/...)
hidden-sm -> d-md-none d-lg-(block/inline/...)
hidden-md -> d-lg-none d-xl-(block/inline/...)
hidden-lg -> d-xl-none
visible-xs-* -> d-* d-md-none
visible-sm-* -> d-none d-md-* d-lg-none
visible-md-* -> d-none d-lg-* d-xl-none
visible-lg-* -> d-none d-xl-*
hidden-print -> d-print-none
visible-print-* -> d-none d-print-*
...
and all possible combination of those had to be handled too.
2018-07-27 12:36:54 +02:00
qsm-odoo ea7c3f4a69 [REF] *: BS4, get rid of the removed 'square' mixin 2018-07-27 12:36:54 +02:00
qsm-odoo 0ca6d39777 [REF] *: BS4, adapt media queries
media queries that target a specific screen size handled by bootstrap
have now a more convenient way to be defined:

```
@​media (min-width: $screen-sm-min) { ... }
->
@​include media-breakpoint-up(sm) { ... }
```

```
@​media (max-width: $screen-sm-max) { ... }
->
@​include media-breakpoint-down(sm) { ... }
```

```
@​media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) { ... }
->
@​include media-breakpoint-only(sm) { ... }
```

```
@​media (min-width: $screen-sm-min) and (max-width: $screen-md-max) { ... }
->
@​include media-breakpoint-between(sm, md) { ... }
```

Also, bootstrap has changed the values for its default screen sizes:

------------------
     | BS3 | BS4 |
------------------
0    | XS  | XS  | -> Portrait Mobile
576  | /   | SM  | -> Landscape Mobile
768  | SM  | MD  | -> Portrait Tablet
992  | MD  | LG  | -> Landscape Tablet / Small Desktop
1200 | LG  | XL  | -> Desktop
------------------

While it is possible to configure BS variables to behave as BS3, we took
the decision to keep the BS4 variables untouched. BS4 system seems
indeed better and having the purest bootstrap possible is better for
Odoo to be used as a framework.
2018-07-27 12:36:54 +02:00
qsm-odoo 2d5595fcba [REF] web, *: BS4, adapt use of tooltip/popover.js 2018-07-27 12:36:54 +02:00
qsm-odoo 770aec399c [REF] *: get rid of vendor prefixes
BS4 do not provide vendor prefixes scss mixins anymore as it is meant
to be used with the 'autoprefixer' library. As we only support the last
version of every major browsers in Odoo, we took the decision to not
use the library as it was also complex to integrate in Odoo. We decided
to do the library's work by hand if it ever become necessary.
2018-07-27 12:36:54 +02:00
jpr-odoo ad3e567dc6 [IMP] mail: draft activity feedback popup from the Chatter
Before this commit, when we were writing a feedback on an activity marked as
done, and then clicked somewhere else by mistake, the popup would disappear
and the content was lost.

With this commit, we do not lost what we have written in the feedback popover
in the case above: a temporary draft is made, so that reopening the feedback
popup restores its previous content.

Note that the draft is kept in JS, so it will be lost on new page or page
reload. Also, there is no test, because of `$.popover`. In particular,
animations cannot be disabled with `$.support.transition=false`, and there
is not way to detect when transitions end (delays in test is a very bad idea
for obvious reasons).

Task-ID 1832491
2018-07-25 22:23:26 +02:00
Alexandre Kühn 81287c0a25 [FIX] mail: post message with emojis x'D (😂)
Before this commit, when posting a message with some emoji sources (e.g. "x'D"),
sometimes it was not transformed into the corresponding unicode representation
(e.g. "😂").

The emojis with this issue have different escaped and unescaped source
representations:

  - (unescaped) "x'D"
  - (escaped) "x&#x27;D".

The emoji converter was mistakenly using the escaped representation, instead of
the unescaped one.

Task-ID 1868892
2018-07-25 14:04:23 +02:00
Shubham Johar 64dc1de744 [IMP] mail: Dialog confirmation on channel administrator unsubscribe
Before this commit, the administrator of a channel may easily unsubscribe
by accident from the channel.

With this commit, there is a confirmation dialog for the administrator of
the channel when he leaves it. This should prevent most accidental leaves
from the administrator.

Task-ID 1835641
2018-07-24 18:00:06 +02:00
Kirti Choudhary 64231863d4 [FIX] mail: auto-focus input on open composer in Chatter (touch and non-mobile devices).
Before this commit, when opening the composer in chatter with "Send Message"
or "Log note" with a touch and non-moble device (e.g. laptop with touchscreen),
the focus was not set on the input automatically.

The intent behaviour is to auto-set the focus on non-mobile device, including
touch devices. This commit fixes this issue for touch and non-mobile devices.

Task-ID 1824035
2018-07-24 13:30:01 +02:00
Priyanka Kakadiya 66b44a5d8a [FIX] mail: auto-focus input on open thread in Discuss (touch and non-mobile devices).
Before this commit, when opening a discuss thread with a touch device that is
not mobile (e.g. laptop with a touchscreen), the focus was not set on the input
automatically.

The intent behaviour is to auto-set the focus on non-mobile device including
touch devices. This commit fixes this issue for touch and non-mobile devices.

Task-ID 1838244
2018-07-24 13:10:48 +02:00
Xavier Morel a56372a4ca [FIX] various broken JS docstrings
Resulting in sphinx warnings or ill-formatted doc all the way to the
doc not building at all.
2018-07-24 12:06:13 +02:00
Prakash Prajapati 6391e0044e [FIX] mail: expand/collapse planned activities in chatter
Before this commit, when the user clicks on the chatter category
"Planned activities", the user is redirected to the home menu.

The "Planned activities" category in the chatter is only visible when
there is at least one planned activity on the record.

The intended behaviour is to expand/collapse the planned activites on
the chatter. This commit fixes this issue.

Task-ID 1864452
2018-07-23 10:34:21 +02:00
Thibault Delavallée 624d75ca94 [IMP] mail: store activity creator on activity record
Currently due to technical reasons all activities are created using the
superuser. It means we have no idea who created an activity. This
commit fixes that by adding a field used to store the activity creator.
It is also displayed in the vignette displayed in chatter giving details
on the activity.

This commit is related to task ID 1865557. Closes PR #25842.
2018-07-19 17:22:18 +02:00
Alexandre Kühn d7741c7c55 [FIX] im_support, mail: correct style and classname
The style for preview info in the systray were incorrect.
Also, mailbox had the old classname ('o_channel_name'), instead of the new one ('o_thread_name')
2018-07-19 14:01:58 +02:00
Alexandre Kühn a5be128bb1 [REMOVE] mail: fix from forward-port
`documentModel` is already declared and assigned the same value, so this
part is not necessary inside this conditional branch.
2018-07-19 14:01:58 +02:00
Alexandre Kühn 4bcfcb9aa4 [FIX] mail: unescape channel name in discuss sidebar
When the user creates a channel by providing a name, the name is escaped
in order to avoid XSS attacks. As a result, the logic make use of escaped
string, which may be different from the provided string by the user.

As a result, if we do not unescape the string when necessary, the user may
see the escaped version. For instance, if we creates a channel named 'R&D',
it may display 'R&amp;D' to the user.

This commit plays safe by still keeping the handling of channel names in
their escaped form, but unescape it just before displaying it on the sidebar
of the Discuss app to the user.
2018-07-19 14:01:58 +02:00
Alexandre Kühn 04c98eeb48 [FIX] mail: replace _lt to _t for mailboxes' name
Since mailboxes are added after the rpc 'mail/init_message', the translations
are loaded. Therefore it is not necessary to lazily load the translations.
2018-07-19 14:01:58 +02:00
Alexandre Kühn 0f65c4ab3b [FIX] mail: group mail failures of channels
Before this commit, mail failures were correctly grouped in the
systray messaging menu, except for mail failures coming from channels.

This commit fixes grouping for mail failures from channel.
2018-07-19 14:01:58 +02:00
Alexandre Kühn 68c30ef4b3 [FIX] mail: detach chat threads on receiving a new message only if thread is detached
When a new message is received and discuss is not open, any chat thread
containing this message is detached. However, if the thread is already
detached, it should not be detached again.
2018-07-19 14:01:58 +02:00
Alexandre Kühn a203b4a2d1 [REMOVE] mail: remove unused style for 'o_chat_help_message'
This classname is not used anymore, so the corresponding style
should also be removed.
2018-07-19 14:01:58 +02:00
Alexandre Kühn f1ae9369ae [FIX] mail: re-render thread once on newly added message
When we add a new message, it should re-render the thread only once.

The `addMessage` function must handles new messages and updated messages.
Some code for updated messages should not be executed for new messages,
which is what this commit does.
2018-07-19 14:01:58 +02:00
Alexandre Kühn c040994357 [FIX] mail: remove unused LOC
Revision on https://github.com/odoo/odoo/commit/cd34f6de727d5b3858420cff3c9d3c5995c4e75c

The `content_subtype` field has been recently removed, but the commit above mistakenly
added it back on this line.
2018-07-19 14:01:58 +02:00
Alexandre Kühn 55fc06c867 [FIX] mail: clean docstring
- updated docstring
- move function to abstract thread (generalization behaviour for all threads)
- simplify code
2018-07-19 13:58:34 +02:00
Alexandre Kühn 99756a62d7 [FIX] mail: fix small error discuss docstring
The type parameter is optional.
2018-07-19 13:58:34 +02:00
Alexandre Kühn e5039ad7d1 [FIX] im_livechat,mail: clean thread models and windows
- Cleaning website livechat window so that some behaviour are in website livechat instead.
- More shared code in abstract thread / abstract thread windows, thanks to the
introduction of website_livechat model.
2018-07-19 13:58:34 +02:00
Alexandre Kühn 68c5ebbbea [IMP] im_livechat, mail: website livechat model
Make use of a website livechat model, so that im_livechat can make use of this model.
This provides an almost similar model for threads in the backend and in the frontend.

As a consequence, im_livechat and website livechat windows have been adapted to handle
a website livechat model.
2018-07-19 13:58:34 +02:00