[FIX] mail: sort of expandable message
bzr revid: chm@openerp.com-20121019123816-dzortu46e3fofmxp
This commit is contained in:
@@ -45,7 +45,7 @@ class mail_message(osv.Model):
|
||||
_inherit = ['ir.needaction_mixin']
|
||||
_order = 'id desc'
|
||||
|
||||
_message_read_limit = 10
|
||||
_message_read_limit = 15
|
||||
_message_read_fields = ['id', 'parent_id', 'model', 'res_id', 'body', 'subject', 'date', 'to_read',
|
||||
'type', 'vote_user_ids', 'attachment_ids', 'author_id', 'partner_ids', 'record_name', 'favorite_user_ids']
|
||||
_message_record_name_length = 18
|
||||
@@ -346,7 +346,7 @@ class mail_message(osv.Model):
|
||||
if message_loaded_ids:
|
||||
domain += [('id', 'not in', message_loaded_ids)]
|
||||
limit = limit or self._message_read_limit
|
||||
limit = 200
|
||||
|
||||
read_messages = {}
|
||||
message_list = []
|
||||
|
||||
|
||||
@@ -457,6 +457,7 @@ openerp.mail = function(session) {
|
||||
'model' : datasets.model || false,
|
||||
'parent_id' : datasets.parent_id || false,
|
||||
'nb_messages' : datasets.nb_messages || 0,
|
||||
'thread_level' : datasets.thread_level || 0,
|
||||
'type' : 'expandable',
|
||||
'max_limit' : datasets.max_limit || false,
|
||||
'flag_used' : false,
|
||||
@@ -933,13 +934,13 @@ openerp.mail = function(session) {
|
||||
*/
|
||||
on_scroll: function(event){
|
||||
if(event)event.stopPropagation();
|
||||
var message = this.messages[0];
|
||||
var message = this.messages[this.messages.length-1];
|
||||
if(message && message.datasets.type=="expandable" && message.datasets.max_limit){
|
||||
var pos = message.$el.position();
|
||||
if(pos.top){
|
||||
/* bottom of the screen */
|
||||
var bottom = $(window).scrollTop()+$(window).height()+200;
|
||||
if(bottom - pos.top > 0){
|
||||
if(bottom > pos.top){
|
||||
message.on_expandable();
|
||||
}
|
||||
}
|
||||
@@ -1131,23 +1132,23 @@ openerp.mail = function(session) {
|
||||
// check older and newer message for insert
|
||||
var parent_newer = false;
|
||||
var parent_older = false;
|
||||
for(var i in thread_messages){
|
||||
if((thread_messages[i].datasets.id > message.datasets.id && message.datasets.id > 0) ||
|
||||
thread_messages[i].datasets.id < 0){
|
||||
if(!parent_newer ||
|
||||
thread_messages[i].datasets.id < 0 ||
|
||||
parent_newer.datasets.id >= thread_messages[i].datasets.id) {
|
||||
parent_newer = thread_messages[i];
|
||||
}
|
||||
} else if((thread_messages[i].datasets.id > 0 && thread_messages[i].datasets.id < message.datasets.id) || message.datasets.id < 0) {
|
||||
if(!parent_older ||
|
||||
parent_older.datasets.id < thread_messages[i].datasets.id) {
|
||||
parent_older = thread_messages[i];
|
||||
if(message.datasets.id > 0){
|
||||
for(var i in thread_messages){
|
||||
if(thread_messages[i].datasets.id > message.datasets.id){
|
||||
if(!parent_newer ||
|
||||
parent_newer.datasets.id > thread_messages[i].datasets.id) {
|
||||
parent_newer = thread_messages[i];
|
||||
}
|
||||
} else if(thread_messages[i].datasets.id > 0 && thread_messages[i].datasets.id < message.datasets.id) {
|
||||
if(!parent_older ||
|
||||
parent_older.datasets.id < thread_messages[i].datasets.id) {
|
||||
parent_older = thread_messages[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var sort = self.datasets.thread_level;
|
||||
var sort = (!!message.datasets.thread_level || message.datasets.id<0);
|
||||
|
||||
if(parent_older){
|
||||
if(sort){
|
||||
@@ -1162,7 +1163,7 @@ openerp.mail = function(session) {
|
||||
message.insertAfter(parent_newer.thread ? parent_newer.thread.$el : parent_newer.$el);
|
||||
}
|
||||
} else {
|
||||
if(sort) {
|
||||
if(sort && message.datasets.id>0) {
|
||||
message.prependTo(thread.$el);
|
||||
} else {
|
||||
message.appendTo(thread.$el);
|
||||
|
||||
Reference in New Issue
Block a user