[IMP]mail: no sort in js insert_message; add filename for attachment
bzr revid: chm@openerp.com-20121101104404-sei3g5knixuv969j
This commit is contained in:
parent
e21e4e178e
commit
6fdac36ca4
|
@ -230,8 +230,8 @@ class mail_message(osv.Model):
|
||||||
partner_tree = dict((partner[0], partner) for partner in partners)
|
partner_tree = dict((partner[0], partner) for partner in partners)
|
||||||
|
|
||||||
# 2. Attachments
|
# 2. Attachments
|
||||||
attachments = ir_attachment_obj.name_get(cr, uid, list(attachment_ids), context=context)
|
attachments = ir_attachment_obj.read(cr, uid, list(attachment_ids), ['id', 'datas_fname'], context=context)
|
||||||
attachments_tree = dict((attachment[0], attachment) for attachment in attachments)
|
attachments_tree = dict((attachment['id'], {'id': attachment['id'], 'filename': attachment['datas_fname']}) for attachment in attachments)
|
||||||
|
|
||||||
# 3. Update message dictionaries
|
# 3. Update message dictionaries
|
||||||
for message_dict in messages:
|
for message_dict in messages:
|
||||||
|
|
|
@ -545,8 +545,16 @@ openerp.mail = function (session) {
|
||||||
}
|
}
|
||||||
this.flag_used = true;
|
this.flag_used = true;
|
||||||
|
|
||||||
this.animated_destroy(200);
|
var self = this;
|
||||||
this.parent_thread.message_fetch(this.domain, this.context);
|
|
||||||
|
// read messages
|
||||||
|
self.parent_thread.message_fetch(this.domain, this.context, false, function (arg, data) {
|
||||||
|
// insert the message on dom after this message
|
||||||
|
self.id = false;
|
||||||
|
self.parent_thread.switch_new_message( data, self.$el );
|
||||||
|
self.animated_destroy(200);
|
||||||
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -1086,7 +1094,7 @@ openerp.mail = function (session) {
|
||||||
message_fetch: function (replace_domain, replace_context, ids, callback) {
|
message_fetch: function (replace_domain, replace_context, ids, callback) {
|
||||||
return this.ds_message.call('message_read', [
|
return this.ds_message.call('message_read', [
|
||||||
// ids force to read
|
// ids force to read
|
||||||
ids,
|
ids == false ? undefined : ids,
|
||||||
// domain + additional
|
// domain + additional
|
||||||
(replace_domain ? replace_domain : this.domain),
|
(replace_domain ? replace_domain : this.domain),
|
||||||
// ids allready loaded
|
// ids allready loaded
|
||||||
|
@ -1129,6 +1137,7 @@ openerp.mail = function (session) {
|
||||||
// check if the message is already create
|
// check if the message is already create
|
||||||
for (var i in self.messages) {
|
for (var i in self.messages) {
|
||||||
if (self.messages[i] && self.messages[i].id == message.id) {
|
if (self.messages[i] && self.messages[i].id == message.id) {
|
||||||
|
console.log('Warning double', message.id);
|
||||||
self.messages[i].destroy();
|
self.messages[i].destroy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1148,7 +1157,6 @@ openerp.mail = function (session) {
|
||||||
*/
|
*/
|
||||||
insert_message: function (message, dom_insert_after) {
|
insert_message: function (message, dom_insert_after) {
|
||||||
var self=this;
|
var self=this;
|
||||||
|
|
||||||
if (this.options.show_compact_message > this.thread_level) {
|
if (this.options.show_compact_message > this.thread_level) {
|
||||||
this.instantiate_compose_message();
|
this.instantiate_compose_message();
|
||||||
this.compose_message.do_show_compact();
|
this.compose_message.do_show_compact();
|
||||||
|
@ -1159,66 +1167,8 @@ openerp.mail = function (session) {
|
||||||
|
|
||||||
if (dom_insert_after) {
|
if (dom_insert_after) {
|
||||||
message.insertAfter(dom_insert_after);
|
message.insertAfter(dom_insert_after);
|
||||||
return message
|
|
||||||
}
|
|
||||||
|
|
||||||
// check older and newer message for insertion
|
|
||||||
var message_newer = false;
|
|
||||||
var message_older = false;
|
|
||||||
if (message.id > 0) {
|
|
||||||
for (var i in self.messages) {
|
|
||||||
if (self.messages[i].no_sorted) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (self.messages[i].last_id > (message.last_id || message.id)) {
|
|
||||||
if (!message_newer || message_newer.last_id > self.messages[i].last_id) {
|
|
||||||
message_newer = self.messages[i];
|
|
||||||
}
|
|
||||||
} else if (self.messages[i].last_id > 0 && self.messages[i].last_id < (message.last_id || message.id)) {
|
|
||||||
if (!message_older || message_older.last_id < self.messages[i].last_id) {
|
|
||||||
message_older = self.messages[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var sort = (!!self.thread_level || message.id<0);
|
|
||||||
|
|
||||||
if (sort) {
|
|
||||||
if (message_older) {
|
|
||||||
|
|
||||||
message.insertAfter(message_older.thread ? (message_older.thread.compose_message ? message_older.thread.compose_message.$el : message_older.thread.$el) : message_older.$el);
|
|
||||||
|
|
||||||
} else if (message_newer) {
|
|
||||||
|
|
||||||
message.insertBefore(message_newer.$el);
|
|
||||||
|
|
||||||
} else if (message.id < 0) {
|
|
||||||
|
|
||||||
message.appendTo(self.$el);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
message.prependTo(self.$el);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (message_older) {
|
message.appendTo(self.$el);
|
||||||
|
|
||||||
message.insertBefore(message_older.$el);
|
|
||||||
|
|
||||||
} else if (message_newer) {
|
|
||||||
|
|
||||||
message.insertAfter(message_newer.thread ? (message_newer.thread.compose_message ? message_newer.thread.compose_message.$el : message_newer.thread.$el) : message_newer.$el );
|
|
||||||
|
|
||||||
} else if (message.id < 0) {
|
|
||||||
|
|
||||||
message.prependTo(self.$el);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
message.appendTo(self.$el);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return message
|
return message
|
||||||
|
@ -1229,7 +1179,7 @@ openerp.mail = function (session) {
|
||||||
* Each message is send to his parent object (or parent thread flat mode) 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"
|
* @param : {Array} datas from calling RPC to "message_read"
|
||||||
*/
|
*/
|
||||||
switch_new_message: function (records) {
|
switch_new_message: function (records, dom_insert_after) {
|
||||||
var self=this;
|
var self=this;
|
||||||
_(records).each(function (record) {
|
_(records).each(function (record) {
|
||||||
var thread = self.browse_thread({
|
var thread = self.browse_thread({
|
||||||
|
@ -1239,7 +1189,7 @@ openerp.mail = function (session) {
|
||||||
// create object and attach to the thread object
|
// create object and attach to the thread object
|
||||||
var message = thread.create_message_object( record );
|
var message = thread.create_message_object( record );
|
||||||
// insert the message on dom
|
// insert the message on dom
|
||||||
thread.insert_message( message );
|
thread.insert_message( message, typeof dom_insert_after == 'object' ? dom_insert_after : false);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue