Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Available addons
addon | version | maintainers | summary
--- | --- | --- | ---
[web_calendar_slot_duration](web_calendar_slot_duration/) | 18.0.1.0.0 | <a href='https://github.com/Yajo'><img src='https://github.com/Yajo.png' width='32' height='32' style='border-radius:50%;' alt='Yajo'/></a> | Customizable calendar slot durations
[web_chatter_position](web_chatter_position/) | 18.0.1.0.1 | <a href='https://github.com/trisdoan'><img src='https://github.com/trisdoan.png' width='32' height='32' style='border-radius:50%;' alt='trisdoan'/></a> | Add an option to change the chatter position
[web_chatter_position](web_chatter_position/) | 18.0.1.1.0 | <a href='https://github.com/trisdoan'><img src='https://github.com/trisdoan.png' width='32' height='32' style='border-radius:50%;' alt='trisdoan'/></a> | Add an option to change the chatter position
[web_company_color](web_company_color/) | 18.0.1.0.7 | | Web Company Color
[web_copy_confirm](web_copy_confirm/) | 18.0.1.0.0 | | Show confirmation dialogue before copying records
[web_dark_mode](web_dark_mode/) | 18.0.1.0.0 | | Enabled Dark Mode for the Odoo Backend
Expand All @@ -39,7 +39,7 @@ addon | version | maintainers | summary
[web_group_expand](web_group_expand/) | 18.0.1.0.1 | | Group Expand Buttons
[web_ir_actions_act_multi](web_ir_actions_act_multi/) | 18.0.1.0.0 | | Enables triggering of more than one action on ActionManager
[web_ir_actions_act_window_message](web_ir_actions_act_window_message/) | 18.0.1.0.1 | | Show a message box to users
[web_m2x_options](web_m2x_options/) | 18.0.1.0.1 | | web_m2x_options
[web_m2x_options](web_m2x_options/) | 18.0.1.0.2 | | web_m2x_options
[web_m2x_options_manager](web_m2x_options_manager/) | 18.0.1.0.0 | | Adds an interface to manage the "Create" and "Create and Edit" options for specific models and fields.
[web_no_bubble](web_no_bubble/) | 18.0.1.0.0 | | Remove the bubbles from the web interface
[web_notify](web_notify/) | 18.0.1.1.1 | | Send notification messages to user
Expand All @@ -50,7 +50,7 @@ addon | version | maintainers | summary
[web_quick_start_screen](web_quick_start_screen/) | 18.0.1.0.0 | | Configurable start screen for quick actions
[web_refresher](web_refresher/) | 18.0.1.0.0 | | Web Refresher
[web_remember_tree_column_width](web_remember_tree_column_width/) | 18.0.1.0.2 | <a href='https://github.com/frahikLV'><img src='https://github.com/frahikLV.png' width='32' height='32' style='border-radius:50%;' alt='frahikLV'/></a> <a href='https://github.com/luisg123v'><img src='https://github.com/luisg123v.png' width='32' height='32' style='border-radius:50%;' alt='luisg123v'/></a> <a href='https://github.com/cuongnmtm'><img src='https://github.com/cuongnmtm.png' width='32' height='32' style='border-radius:50%;' alt='cuongnmtm'/></a> | Remember the tree columns' widths across sessions.
[web_responsive](web_responsive/) | 18.0.1.0.4 | <a href='https://github.com/Tardo'><img src='https://github.com/Tardo.png' width='32' height='32' style='border-radius:50%;' alt='Tardo'/></a> <a href='https://github.com/SplashS'><img src='https://github.com/SplashS.png' width='32' height='32' style='border-radius:50%;' alt='SplashS'/></a> | Responsive web client, community-supported
[web_responsive](web_responsive/) | 18.0.1.0.5 | <a href='https://github.com/Tardo'><img src='https://github.com/Tardo.png' width='32' height='32' style='border-radius:50%;' alt='Tardo'/></a> <a href='https://github.com/SplashS'><img src='https://github.com/SplashS.png' width='32' height='32' style='border-radius:50%;' alt='SplashS'/></a> | Responsive web client, community-supported
[web_save_discard_button](web_save_discard_button/) | 18.0.1.0.1 | <a href='https://github.com/synconics'><img src='https://github.com/synconics.png' width='32' height='32' style='border-radius:50%;' alt='synconics'/></a> | Save & Discard Buttons
[web_search_with_and](web_search_with_and/) | 18.0.1.0.1 | | Use AND conditions on omnibar search
[web_send_message_popup](web_send_message_popup/) | 18.0.1.0.0 | | Web Send Message as Popup
Expand Down
6 changes: 5 additions & 1 deletion web_chatter_position/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Chatter Position
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:ccac0e3a4242c9fd1a94fa26f6bfce9a021115c4743c66a450bce993bc76f515
!! source digest: sha256:f0de4c200329e3f762e62dc49f8c31ed4dba8baea0443ce1ed283adaeb478b32
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
Expand Down Expand Up @@ -87,6 +87,10 @@ Contributors

- Tris Doan <tridm@trobz.com>

- `ForgeFlow <https://www.forgeflow.com>`__

- Joan Sisquella <joan.sisquella@forgeflow.com>

Maintainers
-----------

Expand Down
8 changes: 7 additions & 1 deletion web_chatter_position/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# Copyright 2022 Hynsys Technologies
# Copyright 2024 Alitec Pte Ltd
# Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com)
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).

{
"name": "Chatter Position",
"summary": "Add an option to change the chatter position",
"version": "18.0.1.0.1",
"version": "18.0.1.1.0",
"author": "Hynsys Technologies, Camptocamp, Alitec Pte Ltd,"
" Odoo Community Association (OCA)",
"maintainers": ["trisdoan"],
Expand All @@ -18,6 +19,11 @@
"web.assets_backend": [
"/web_chatter_position/static/src/**/*.js",
"/web_chatter_position/static/src/**/*.scss",
(
"after",
"/web/static/src/views/form/form_controller.xml",
"/web_chatter_position/static/src/views/form/form_controller.xml",
),
],
},
}
6 changes: 6 additions & 0 deletions web_chatter_position/i18n/ca.po
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ msgstr "Posició del chatter"
msgid "Sided"
msgstr "Al costat"

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr ""

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
6 changes: 6 additions & 0 deletions web_chatter_position/i18n/de.po
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ msgstr "Chatter-Position"
msgid "Sided"
msgstr "Seitlich"

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr ""

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
8 changes: 7 additions & 1 deletion web_chatter_position/i18n/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-04-13 08:14+0000\n"
"PO-Revision-Date: 2026-04-19 09:41+0000\n"
"Last-Translator: Ed-Spain <eduamoros@gmail.com>\n"
"Language-Team: none\n"
"Language: es\n"
Expand Down Expand Up @@ -36,6 +36,12 @@ msgstr "Posición del historial de comunicación"
msgid "Sided"
msgstr "Lateral"

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr "Alternar la posición del Chatter (conversación)"

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
6 changes: 6 additions & 0 deletions web_chatter_position/i18n/fr.po
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ msgstr "Position du Chatter"
msgid "Sided"
msgstr "A droite"

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr ""

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
6 changes: 6 additions & 0 deletions web_chatter_position/i18n/fr_BE.po
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ msgstr "Position du Chatter"
msgid "Sided"
msgstr "Sur le côté"

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr ""

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
6 changes: 6 additions & 0 deletions web_chatter_position/i18n/hr.po
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@ msgstr "Pozicija razgovora"
msgid "Sided"
msgstr "Sa strane"

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr ""

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
10 changes: 8 additions & 2 deletions web_chatter_position/i18n/it.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2025-11-17 09:42+0000\n"
"PO-Revision-Date: 2026-04-20 16:45+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.4\n"
"X-Generator: Weblate 5.15.2\n"

#. module: web_chatter_position
#: model:ir.model.fields.selection,name:web_chatter_position.selection__res_users__chatter_position__auto
Expand All @@ -36,6 +36,12 @@ msgstr "Posizione conversazione"
msgid "Sided"
msgstr "Laterale"

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr "Inverti posizione discussioni"

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
6 changes: 6 additions & 0 deletions web_chatter_position/i18n/nl.po
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ msgstr "Chatter-positie"
msgid "Sided"
msgstr "Zijdelings"

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr ""

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
6 changes: 6 additions & 0 deletions web_chatter_position/i18n/pt_BR.po
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ msgstr "Posição da Conversa"
msgid "Sided"
msgstr "Lateral"

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr ""

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
6 changes: 6 additions & 0 deletions web_chatter_position/i18n/tr.po
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ msgstr "Sohbet Pozisyonu"
msgid "Sided"
msgstr ""

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr ""

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
6 changes: 6 additions & 0 deletions web_chatter_position/i18n/web_chatter_position.pot
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,12 @@ msgstr ""
msgid "Sided"
msgstr ""

#. module: web_chatter_position
#. odoo-javascript
#: code:addons/web_chatter_position/static/src/views/form/form_controller.xml:0
msgid "Toggle chatter position"
msgstr ""

#. module: web_chatter_position
#: model:ir.model,name:web_chatter_position.model_res_users
msgid "User"
Expand Down
2 changes: 2 additions & 0 deletions web_chatter_position/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@
- Jay Patel \<<jay@alitec.sg>\>
- Trobz
- Tris Doan \<<tridm@trobz.com>\>
- [ForgeFlow](https://www.forgeflow.com)
- Joan Sisquella \<<joan.sisquella@forgeflow.com>\>
6 changes: 5 additions & 1 deletion web_chatter_position/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ <h1>Chatter Position</h1>
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:ccac0e3a4242c9fd1a94fa26f6bfce9a021115c4743c66a450bce993bc76f515
!! source digest: sha256:f0de4c200329e3f762e62dc49f8c31ed4dba8baea0443ce1ed283adaeb478b32
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/license-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/web/tree/18.0/web_chatter_position"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/web-18-0/web-18-0-web_chatter_position"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/web&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Configurable chatter position from the user preferences.</p>
Expand Down Expand Up @@ -432,6 +432,10 @@ <h3><a class="toc-backref" href="#toc-entry-5">Contributors</a></h3>
<li>Tris Doan &lt;<a class="reference external" href="mailto:tridm&#64;trobz.com">tridm&#64;trobz.com</a>&gt;</li>
</ul>
</li>
<li><a class="reference external" href="https://www.forgeflow.com">ForgeFlow</a><ul>
<li>Joan Sisquella &lt;<a class="reference external" href="mailto:joan.sisquella&#64;forgeflow.com">joan.sisquella&#64;forgeflow.com</a>&gt;</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">
Expand Down
4 changes: 4 additions & 0 deletions web_chatter_position/static/src/scss/form_controller.scss
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,7 @@
width: auto !important;
}
}

.o_chatter_position_button {
order: -1;
}
110 changes: 110 additions & 0 deletions web_chatter_position/static/src/views/form/form_controller.esm.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
/*
Copyright 2026 ForgeFlow S.L. (https://www.forgeflow.com).
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
*/
import {onMounted, onPatched, useExternalListener, useState} from "@odoo/owl";

import {browser} from "@web/core/browser/browser";
import {SIZES} from "@web/core/ui/ui_service";
import {patch} from "@web/core/utils/patch";
import {FormController} from "@web/views/form/form_controller";

patch(FormController.prototype, {
setup() {
super.setup(...arguments);
this.chatterPositionState = useState({
currentPosition: odoo.web_chatter_position || "auto",
});

onMounted(() => {
this.moveChatter();
});

useExternalListener(browser, "resize", () => {
if (this.chatterPositionState.currentPosition === "bottom") {
const formSheetBg = this.rootRef?.el?.querySelector(".o_form_sheet_bg");
if (formSheetBg) {
this._moveChatter(formSheetBg);
this.rootRef.el.style.overflow = "auto";
}
}
});

onPatched(() => {
this.moveChatter();
});
},

onClickChangePosition() {
const newPosition =
this.chatterPositionState.currentPosition === "bottom" ? "sided" : "bottom";
this.chatterPositionState.currentPosition = newPosition;
this.moveChatter();
},

get isChatterToggleVisible() {
if (this.env.inDialog || this.env.isSmall) {
return false;
}
if (this.ui.size < SIZES.XXL) {
return false;
}
const xmlDoc = this.archInfo?.xmlDoc;
if (!xmlDoc) {
return false;
}
return Boolean(xmlDoc.querySelector("chatter"));
},

moveChatter() {
if (
this.ui.size < SIZES.XXL ||
this.chatterPositionState.currentPosition === "auto"
) {
return;
}
const rootEl = this.rootRef?.el;
if (!rootEl) {
return;
}
const formSheetBg = rootEl.querySelector(".o_form_sheet_bg");
if (!formSheetBg) return;
const formRenderer = formSheetBg.parentElement;
if (!formRenderer) return;

if (this.chatterPositionState.currentPosition === "bottom") {
this._moveChatter(formSheetBg);
} else if (this.chatterPositionState.currentPosition === "sided") {
this._moveChatter(formRenderer);
}
},

_moveChatter(target) {
if (!target || !this.rootRef?.el) {
return;
}
const currentChatter = this.rootRef.el.querySelector(".o-mail-Form-chatter");
if (!currentChatter) {
return;
}
target.appendChild(currentChatter);

if (this.chatterPositionState.currentPosition === "bottom") {
currentChatter.classList.remove("o-aside", "w-print-100");
currentChatter.classList.add("o-isInFormSheetBg", "mt-4", "mt-md-0");
const formSheetBg = this.rootRef.el.querySelector(".o_form_sheet_bg");
if (formSheetBg) {
formSheetBg.classList.add("o_fullwidth");
}
this.rootRef.el.style.overflow = "auto";
} else {
currentChatter.classList.remove("o-isInFormSheetBg", "mt-4", "mt-md-0");
currentChatter.classList.add("o-aside", "w-print-100");
const formSheetBg = this.rootRef.el.querySelector(".o_form_sheet_bg");
if (formSheetBg) {
formSheetBg.classList.remove("o_fullwidth");
}
this.rootRef.el.style.overflow = "";
}
},
});
Loading
Loading