diff --git a/addons/project/__manifest__.py b/addons/project/__manifest__.py index a20d1a6d86c..869f59caee8 100644 --- a/addons/project/__manifest__.py +++ b/addons/project/__manifest__.py @@ -100,13 +100,17 @@ # Remove Longpolling bus and packages needed this bus ('remove', 'bus/static/src/js/services/assets_watchdog_service.js'), ('remove', 'mail/static/src/services/messaging/messaging.js'), - ('remove', 'mail/static/src/components/notification_request/notification_request.js'), ('remove', 'mail/static/src/components/dialog_manager/dialog_manager.js'), ('remove', 'mail/static/src/services/dialog_service/dialog_service.js'), ('remove', 'mail/static/src/components/chat_window_manager/chat_window_manager.js'), ('remove', 'mail/static/src/services/chat_window_service/chat_window_service.js'), + + 'web/static/src/legacy/js/public/public_widget.js', + 'portal/static/src/js/portal_chatter.js', + 'portal/static/src/js/portal_composer.js', 'project/static/src/project_sharing/**/*.js', + 'project/static/src/scss/project_sharing/*', 'web/static/src/start.js', 'web/static/src/legacy/legacy_setup.js', ], diff --git a/addons/project/static/src/project_sharing/views/form/renderer.js b/addons/project/static/src/project_sharing/views/form/renderer.js new file mode 100644 index 00000000000..5ef0ddc3470 --- /dev/null +++ b/addons/project/static/src/project_sharing/views/form/renderer.js @@ -0,0 +1,32 @@ +/** @odoo-module **/ + +import FormRenderer from 'web.FormRenderer'; +import { PortalChatter } from 'portal.chatter'; + +export default FormRenderer.extend({ + _makeChatterContainerComponent() { + const props = this._makeChatterContainerProps(); + this._chatterContainerComponent = new PortalChatter(this, props); + }, + _makeChatterContainerProps() { + return { + token: '', + res_model: 'project.task', + pid: '', + hash: '', + res_id: this.state.res_id, + pager_step: 10, + allow_composer: true, + two_columns: false, + }; + }, + _makeChatterContainerTarget() { + const $el = $('
'); + this._chatterContainerTarget = $el[0]; + return $el; + }, + _mountChatterContainerComponent() { + this._chatterContainerComponent.appendTo(this._chatterContainerTarget); + }, + _updateChatterContainerComponent() {}, +}); diff --git a/addons/project/static/src/project_sharing/views/form/view.js b/addons/project/static/src/project_sharing/views/form/view.js index 6513e12d32d..36f7904679b 100644 --- a/addons/project/static/src/project_sharing/views/form/view.js +++ b/addons/project/static/src/project_sharing/views/form/view.js @@ -2,9 +2,11 @@ import FormView from 'web.FormView'; import Controller from './controller'; +import Renderer from './renderer'; export default FormView.extend({ config: _.extend({}, FormView.prototype.config, { Controller, + Renderer, }), }); diff --git a/addons/project/static/src/scss/project_sharing/chatter.scss b/addons/project/static/src/scss/project_sharing/chatter.scss new file mode 100644 index 00000000000..ab108ff1d22 --- /dev/null +++ b/addons/project/static/src/scss/project_sharing/chatter.scss @@ -0,0 +1,44 @@ +.o_FormRenderer_chatterContainer { + display: flex; + background-color: $white; + border-color: $border-color; + height: fit-content; + + .o_portal_chatter { + width: 100%; + + .o_portal_chatter_header { + text-align: center; + vertical-align: middle; + } + + div.o_portal_chatter_composer, + div.o_portal_chatter_messages { + div.media { + gap: 10px; + + .o_portal_chatter_attachments { + margin-bottom: 1rem; + } + } + } + + } + + &.o-aside { + flex-direction: column; + + .o_portal_chatter { + .o_portal_chatter_header { + padding-top: 1rem; + padding-bottom: 2px; + } + + .o_portal_chatter_composer, .o_portal_chatter_messages { + margin-left: 1rem; + margin-right: 1rem; + } + } + } +} + diff --git a/addons/project/views/project_sharing_views.xml b/addons/project/views/project_sharing_views.xml index 6b39b0ffdaa..db325793e41 100644 --- a/addons/project/views/project_sharing_views.xml +++ b/addons/project/views/project_sharing_views.xml @@ -194,6 +194,7 @@ +