summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/models/threads/abstract_thread.js
diff options
context:
space:
mode:
authorAlexandre Kühn <aku@odoo.com>2018-07-04 15:57:03 +0200
committerAlexandre Kühn <aku@odoo.com>2018-07-19 13:58:34 +0200
commit915da49d173e9ab8d0c6d94cbeec124c83d23fc7 (patch)
treed7fe30d4a4c7f1a6923b88c91ac98582ee6500f4 /addons/mail/static/src/js/models/threads/abstract_thread.js
parentec8c505bc1c9ec21939e9ffef53a9cc6f63f30c7 (diff)
[IMP] mail, *: template rendering with abstract thread, adapt thread instantiation, thread `getMessages`/`fetchMessages`, and create mode document thread.
* = im_livechat, im_support - thread widget now uses abstract thread in `render` method - thread models have their `init` parameters changed, so that the parent may be optional - reworked 'creating a new record...' in chatter in create mode: > new model CreateModeDocumentThread, which basically is a fake document thread with a fake message for its rendering in create mode of the chatter > special rendering method of thread_widget for such case: `renderChatterCreateMode` - renamed thread methods previously named `getMessages` to `fetchMessages`: > in order to not conflict with `getMessages`, used for rendering > now, `getMessages` always get messages that are locally, while `fetchMessages` may fetch messages. TODO: - special thread model for im_livechat (rendering is broken ATM)
Diffstat (limited to 'addons/mail/static/src/js/models/threads/abstract_thread.js')
-rw-r--r--addons/mail/static/src/js/models/threads/abstract_thread.js29
1 files changed, 28 insertions, 1 deletions
diff --git a/addons/mail/static/src/js/models/threads/abstract_thread.js b/addons/mail/static/src/js/models/threads/abstract_thread.js
index 3ea263fa996..788a04307a7 100644
--- a/addons/mail/static/src/js/models/threads/abstract_thread.js
+++ b/addons/mail/static/src/js/models/threads/abstract_thread.js
@@ -6,15 +6,42 @@ var Class = require('web.Class');
/**
* Abstract thread is the super class of all threads, either backend threads
* (which are compatible with mail service) or website livechats.
+ *
+ * Abstract threads contain abstract messages
*/
var AbstractThread = Class.extend({
- init: function (parent, data) {},
+ /**
+ * @param {Object} params
+ * @param {Object} params.data
+ * @param {Object} params.data.id the ID of this thread
+ */
+ init: function (params) {
+ this._id = params.data.id;
+ },
//--------------------------------------------------------------------------
// Public
//--------------------------------------------------------------------------
+ /**
+ * Get the ID of this thread
+ *
+ * @returns {integer|string}
+ */
+ getID: function () {
+ return this._id;
+ },
+ /**
+ * @abstract
+ * @returns {mail.model.AbstractMessage[]}
+ */
getMessages: function () {},
+ /**
+ * @returns {boolean}
+ */
+ hasMessages: function () {
+ return !_.isEmpty(this.getMessages());
+ },
});
return AbstractThread;