[IMP] mail: convert parent_id to ancestor_id in js side
bzr revid: chm@openerp.com-20121023113842-0c9rh3dvr205p7uz
This commit is contained in:
@@ -342,7 +342,7 @@ openerp.mail = function(session) {
|
||||
'default_model': this.context.default_model,
|
||||
'default_res_id': this.context.default_res_id,
|
||||
'default_content_subtype': 'html',
|
||||
'default_parent_id': this.id,
|
||||
'default_ancestor_id': this.id,
|
||||
'default_body': mail.ChatterUtils.get_text2html(this.$render_expandable ? (this.$render_expandable.find('textarea').val() || '') : ''),
|
||||
'default_attachment_ids': attachments,
|
||||
'default_partner_ids': partner_ids
|
||||
@@ -390,13 +390,12 @@ openerp.mail = function(session) {
|
||||
false,
|
||||
'comment',
|
||||
'mail.mt_comment',
|
||||
this.context.default_parent_id,
|
||||
this.context.default_ancestor_id,
|
||||
attachments,
|
||||
this.parent_thread.context
|
||||
]).then(function(records){
|
||||
self.parent_thread.switch_new_message(records);
|
||||
self.on_cancel();
|
||||
self.do_show_compact();
|
||||
//session.web.unblockUI();
|
||||
});
|
||||
return true;
|
||||
@@ -483,12 +482,12 @@ openerp.mail = function(session) {
|
||||
this.context = _.extend({
|
||||
default_model: 'mail.thread',
|
||||
default_res_id: 0,
|
||||
default_parent_id: false }, options.context || {});
|
||||
default_ancestor_id: false }, options.context || {});
|
||||
|
||||
// data of this expandable message
|
||||
this.id = datasets.id || -1,
|
||||
this.model = datasets.model || false,
|
||||
this.parent_id = datasets.parent_id || false,
|
||||
this.ancestor_id = datasets.ancestor_id || false,
|
||||
this.nb_messages = datasets.nb_messages || 0,
|
||||
this.thread_level = datasets.thread_level || 0,
|
||||
this.type = 'expandable',
|
||||
@@ -567,10 +566,10 @@ openerp.mail = function(session) {
|
||||
* - record.attachment_ids[].url: url of each attachmentThe
|
||||
* thread view :
|
||||
* - root thread
|
||||
* - - sub message (parent_id = root message)
|
||||
* - - sub message (ancestor_id = root message)
|
||||
* - - - sub thread
|
||||
* - - - - sub sub message (parent id = sub thread)
|
||||
* - - sub message (parent_id = root message)
|
||||
* - - sub message (ancestor_id = root message)
|
||||
* - - - sub thread
|
||||
*/
|
||||
mail.ThreadMessage = session.web.Widget.extend({
|
||||
@@ -598,7 +597,7 @@ openerp.mail = function(session) {
|
||||
// data of this message
|
||||
this.id = datasets.id || -1,
|
||||
this.model = datasets.model || false,
|
||||
this.parent_id = datasets.parent_id || false,
|
||||
this.ancestor_id = datasets.ancestor_id || false,
|
||||
this.res_id = datasets.res_id || false,
|
||||
this.type = datasets.type || false,
|
||||
this.is_author = datasets.is_author || false,
|
||||
@@ -621,7 +620,7 @@ openerp.mail = function(session) {
|
||||
this.context = _.extend({
|
||||
default_model: 'mail.thread',
|
||||
default_res_id: 0,
|
||||
default_parent_id: false }, options.context || {});
|
||||
default_ancestor_id: false }, options.context || {});
|
||||
|
||||
// record options
|
||||
this.options = options.options;
|
||||
@@ -728,7 +727,7 @@ openerp.mail = function(session) {
|
||||
'context':{
|
||||
'default_model': this.model,
|
||||
'default_res_id': this.res_id,
|
||||
'default_parent_id': this.id
|
||||
'default_ancestor_id': this.id
|
||||
},
|
||||
'options': this.options
|
||||
}
|
||||
@@ -898,10 +897,10 @@ openerp.mail = function(session) {
|
||||
* This widget handles the display of a thread of messages. The
|
||||
* thread view:
|
||||
* - root thread
|
||||
* - - sub message (parent_id = root message)
|
||||
* - - sub message (ancestor_id = root message)
|
||||
* - - - sub thread
|
||||
* - - - - sub sub message (parent id = sub thread)
|
||||
* - - sub message (parent_id = root message)
|
||||
* - - sub message (ancestor_id = root message)
|
||||
* - - - sub thread
|
||||
*/
|
||||
mail.Thread = session.web.Widget.extend({
|
||||
@@ -930,7 +929,7 @@ openerp.mail = function(session) {
|
||||
this.context = _.extend({
|
||||
default_model: 'mail.thread',
|
||||
default_res_id: 0,
|
||||
default_parent_id: false }, options.context || {});
|
||||
default_ancestor_id: false }, options.context || {});
|
||||
|
||||
this.options = options.options;
|
||||
this.options._parents = (options.options._parents != undefined ? options.options._parents : []).concat( [this] );
|
||||
@@ -941,7 +940,7 @@ openerp.mail = function(session) {
|
||||
// data of this thread
|
||||
this.id = datasets.id || false,
|
||||
this.model = datasets.model || false,
|
||||
this.parent_id = datasets.parent_id || false,
|
||||
this.ancestor_id = datasets.ancestor_id || false,
|
||||
this.is_private = datasets.is_private || false,
|
||||
this.author_id = datasets.author_id || false,
|
||||
this.thread_level = (datasets.thread_level+1) || 0,
|
||||
@@ -1048,8 +1047,8 @@ openerp.mail = function(session) {
|
||||
if(arguments[1]) res.push(this);
|
||||
if(isNaN(nb_thread_level) || nb_thread_level>0){
|
||||
_(this.messages).each(function (val, key) {
|
||||
if(val.thread){
|
||||
res = res.concat( val.thread.get_childs((isNaN(nb_thread_level) ? null : nb_thread_level-1), true) )
|
||||
if(val.thread) {
|
||||
res = res.concat( val.thread.get_childs((isNaN(nb_thread_level) ? undefined : nb_thread_level-1), true) );
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -1149,7 +1148,7 @@ openerp.mail = function(session) {
|
||||
// CHM note : option for sending in flat mode by server
|
||||
var nb_indented_thread = this.options.display_indented_thread > this.thread_level ? this.options.display_indented_thread - this.thread_level : 0;
|
||||
|
||||
return this.ds_message.call('message_read', [ids, fetch_domain, message_loaded_ids, /*nb_indented_thread,*/ fetch_context, this.context.default_parent_id || undefined]
|
||||
return this.ds_message.call('message_read', [ids, fetch_domain, message_loaded_ids, /*nb_indented_thread,*/ fetch_context, this.context.default_ancestor_id || undefined]
|
||||
).then(this.proxy('switch_new_message'));
|
||||
},
|
||||
|
||||
@@ -1168,16 +1167,16 @@ openerp.mail = function(session) {
|
||||
'context': {
|
||||
'default_model': data.model || self.context.default_model,
|
||||
'default_res_id': data.res_id || self.context.default_res_id,
|
||||
'default_parent_id': self.id },
|
||||
'default_ancestor_id': self.id },
|
||||
});
|
||||
} else {
|
||||
var message = new mail.ThreadMessage(self, _.extend(data, {'thread_level': self.thread_level}), {
|
||||
var message = new mail.ThreadMessage(self, _.extend(data, {'thread_level': data.thread_level ? data.thread_level : self.thread_level}), {
|
||||
'domain': data.domain,
|
||||
'context': {
|
||||
'default_model': data.model,
|
||||
'default_res_id': data.res_id,
|
||||
'default_parent_id': data.id },
|
||||
'options': self.options
|
||||
'default_ancestor_id': data.id },
|
||||
'options': _.extend(self.options, data.options)
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1205,34 +1204,25 @@ openerp.mail = function(session) {
|
||||
insert_message: function (message) {
|
||||
var self=this;
|
||||
|
||||
if(this.show_compose_message &&
|
||||
this.options.display_indented_thread >= self.thread_level){
|
||||
if(this.show_compose_message /*&&
|
||||
this.options.display_indented_thread >= self.thread_level*/){
|
||||
this.ComposeMessage.do_show_compact();
|
||||
}
|
||||
|
||||
this.$('.oe_wall_no_message').remove();
|
||||
|
||||
// insert on hierarchy display => insert in self child
|
||||
var thread_messages = self.messages;
|
||||
var thread = self;
|
||||
if( self.options.display_indented_thread < self.thread_level ) {
|
||||
var thread = self.options._parents[self.options.display_indented_thread] || self.options._parents[0];
|
||||
var thread_messages = [];
|
||||
_(thread.get_childs()).each(function (val, key) { thread_messages.push(val.parent_message); });
|
||||
}
|
||||
|
||||
// check older and newer message for insertion
|
||||
var parent_newer = false;
|
||||
var parent_older = false;
|
||||
if(message.id > 0){
|
||||
for(var i in thread_messages){
|
||||
if(thread_messages[i].id > message.id){
|
||||
if(!parent_newer || parent_newer.id > thread_messages[i].id) {
|
||||
parent_newer = thread_messages[i];
|
||||
for(var i in self.messages){
|
||||
if(self.messages[i].id > message.id){
|
||||
if(!parent_newer || parent_newer.id > self.messages[i].id) {
|
||||
parent_newer = self.messages[i];
|
||||
}
|
||||
} else if(thread_messages[i].id > 0 && thread_messages[i].id < message.id) {
|
||||
if(!parent_older || parent_older.id < thread_messages[i].id) {
|
||||
parent_older = thread_messages[i];
|
||||
} else if(self.messages[i].id > 0 && self.messages[i].id < message.id) {
|
||||
if(!parent_older || parent_older.id < self.messages[i].id) {
|
||||
parent_older = self.messages[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1253,11 +1243,11 @@ openerp.mail = function(session) {
|
||||
|
||||
} else if(message.id < 0) {
|
||||
|
||||
message.appendTo(thread.$el);
|
||||
message.appendTo(self.$el);
|
||||
|
||||
} else {
|
||||
|
||||
message.prependTo(thread.$el);
|
||||
message.prependTo(self.$el);
|
||||
}
|
||||
} else {
|
||||
if (parent_older) {
|
||||
@@ -1271,11 +1261,11 @@ openerp.mail = function(session) {
|
||||
|
||||
} else if(message.id < 0) {
|
||||
|
||||
message.prependTo(thread.$el);
|
||||
message.prependTo(self.$el);
|
||||
|
||||
} else {
|
||||
|
||||
message.appendTo(thread.$el);
|
||||
message.appendTo(self.$el);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1285,16 +1275,31 @@ openerp.mail = function(session) {
|
||||
|
||||
/**
|
||||
*get the parent thread of the messages.
|
||||
* Each message is send to his parent object for creating the object message.
|
||||
* Each message is send to his parent object (or parent thread flat mode) for creating the object message.
|
||||
* @param : {Array} datas from calling RPC to "message_read"
|
||||
*/
|
||||
switch_new_message: function(records) {
|
||||
var self=this;
|
||||
_(records).each(function(record){
|
||||
self.browse_thread({
|
||||
'id': record.parent_id,
|
||||
var thread = self.browse_thread({
|
||||
'id': record.ancestor_id,
|
||||
'default_return_top_thread':true
|
||||
}).create_message_object( record );
|
||||
});
|
||||
|
||||
/*
|
||||
record.thread_level = thread.thread_level;
|
||||
record.options = {'_parents' : thread.options._parents };
|
||||
|
||||
// check for flat mode
|
||||
var nb_level = thread.options.display_indented_thread - thread.thread_level;
|
||||
|
||||
if(nb_level <= 0){
|
||||
var thread = thread.options._parents[ thread.options._parents.length - 1 + nb_level ];
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
thread.create_message_object( record );
|
||||
});
|
||||
},
|
||||
|
||||
@@ -1324,7 +1329,7 @@ openerp.mail = function(session) {
|
||||
var msg_up = messages[it-1];
|
||||
var msg_down = messages[it+1];
|
||||
|
||||
var message_dom = [ '&', ["id","in",[message.id]], ['parent_id', '=', message.parent_id] ];
|
||||
var message_dom = [ ["id", "=", message.id] ];
|
||||
|
||||
if ( msg_up && msg_up.type == "expandable" && msg_down && msg_down.type == "expandable") {
|
||||
// concat two expandable message and add this message to this dom
|
||||
@@ -1368,7 +1373,7 @@ openerp.mail = function(session) {
|
||||
var expandable = new mail.ThreadExpandable(this, {
|
||||
'id': message.id,
|
||||
'model': message.model,
|
||||
'parent_id': message.parent_id,
|
||||
'ancestor_id': message.ancestor_id,
|
||||
'nb_messages': 1,
|
||||
'thread_level': message.thread_level,
|
||||
}, {
|
||||
@@ -1376,7 +1381,7 @@ openerp.mail = function(session) {
|
||||
'context': {
|
||||
'default_model': message.model || this.context.default_model,
|
||||
'default_res_id': message.res_id || this.context.default_res_id,
|
||||
'default_parent_id': this.id },
|
||||
'default_ancestor_id': this.id },
|
||||
});
|
||||
|
||||
// add object on array and DOM
|
||||
|
||||
Reference in New Issue
Block a user