summaryrefslogtreecommitdiff
path: root/addons/hr_holidays/static/src/components/thread_view/thread_view.js
diff options
context:
space:
mode:
authorSébastien Theys <seb@odoo.com>2020-08-28 10:16:37 +0000
committerSébastien Theys <seb@odoo.com>2020-08-28 13:43:54 +0000
commitf9ee1cf5f904116e4d1d70a8eaf4ee1d58b18a3a (patch)
tree89425d0677083bb9489e42d47521c4bcf1e4ff44 /addons/hr_holidays/static/src/components/thread_view/thread_view.js
parent98e12901c97a67dc87f21647473754cd6f384d4a (diff)
[FIX] mail, *: rename thread viewer to thread view
The "viewer" should be the "parent" not the view itself. This distinction will become important in a future commit to allow viewers to not display the view in some situations. Rename done as a standalone commit to ease diff readability. Part of task-2310623 closes odoo/odoo#56737 X-original-commit: 1b811e6a972d72de02965adda67c5b039bee023f Related: odoo/enterprise#12756 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com> Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
Diffstat (limited to 'addons/hr_holidays/static/src/components/thread_view/thread_view.js')
-rw-r--r--addons/hr_holidays/static/src/components/thread_view/thread_view.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/addons/hr_holidays/static/src/components/thread_view/thread_view.js b/addons/hr_holidays/static/src/components/thread_view/thread_view.js
new file mode 100644
index 00000000000..89923ff0384
--- /dev/null
+++ b/addons/hr_holidays/static/src/components/thread_view/thread_view.js
@@ -0,0 +1,58 @@
+odoo.define('hr_holidays/static/src/components/thread_view/thread_view.js', function (require) {
+'use strict';
+
+const components = {
+ ThreadView: require('mail/static/src/components/thread_view/thread_view.js'),
+};
+
+const { str_to_datetime } = require('web.time');
+const { patch } = require('web.utils');
+
+patch(components.ThreadView, 'hr_holidays/static/src/components/thread_view/thread_view.js', {
+
+ //--------------------------------------------------------------------------
+ // Public
+ //--------------------------------------------------------------------------
+
+ /**
+ * Returns the "out of office" text for the correspondent of the thread if
+ * applicable.
+ *
+ * @returns {string}
+ */
+ getOutOfOfficeText() {
+ if (!this.threadView.thread.correspondent) {
+ return "";
+ }
+ if (!this.threadView.thread.correspondent.out_of_office_date_end) {
+ return "";
+ }
+ const currentDate = new Date();
+ const date = str_to_datetime(this.threadView.thread.correspondent.out_of_office_date_end);
+ const options = { day: 'numeric', month: 'short' };
+ if (currentDate.getFullYear() !== date.getFullYear()) {
+ options.year = 'numeric';
+ }
+ const formattedDate = date.toLocaleDateString(window.navigator.language, options);
+ return _.str.sprintf(this.env._t("Out of office until %s."), formattedDate);
+ },
+
+ //--------------------------------------------------------------------------
+ // Private
+ //--------------------------------------------------------------------------
+
+ /**
+ * @override
+ */
+ _useStoreSelector(props) {
+ const res = this._super(...arguments);
+ const threadView = this.env.models['mail.thread_view'].get(props.threadViewLocalId);
+ const thread = threadView ? threadView.thread : undefined;
+ const correspondent = thread ? thread.correspondent : undefined;
+ return Object.assign({}, res, {
+ correspondent: correspondent ? correspondent.__state : undefined,
+ });
+ },
+});
+
+});