Ignore:
Timestamp:
06/14/12 23:39:50 (12 years ago)
Author:
natan
Message:

Ticket #2845 - Atualizacao da API na busca de mensagens - Otimizando o carregamento do anexar mensagens

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/expressoServiceImap/expressoMail1_2/js/draw_api.js

    r6486 r6509  
    38853885                }) 
    38863886        }); 
    3887          
    3888         DataLayer.codec( 'folder', 'tree', { 
    3889  
    3890                     encoder: function( data ){ 
    3891                  
    3892                         if( preferences.use_local_messages == 1 || expresso_offline) 
    3893                         { 
    3894                             var folders = expresso_local_messages.list_local_folders(); 
    3895                              
    3896                             var stripParents = /^(.*)\/([^\/]*)/; 
    3897  
    3898                             $.each( folders, function( i, folder ){ 
    3899                                      
    3900                                     if(typeof(folder) == 'undefined')  return; 
    3901                                        
    3902                                     var id = 'local_messages/' + folder[0]; 
    3903  
    3904                                     var parts = stripParents.exec( id ); 
    3905                                  
    3906                                     data[data.length] = { 'id' : id, 
    3907                                                           'commonName' : parts[2], 
    3908                                                           'parentFolder' : parts[1] }; 
    3909                             }); 
    3910                         } 
    3911  
    3912                         var trees = [[],[],[]], 
    3913  
    3914                         root = { inbox: /^INBOX/, share: /^user/, local: /^local_messages/ }; 
    3915  
    3916                         for (var i = 0; i < data.length; i++ ) 
    3917                         { 
    3918                             var index = root.inbox.test(data[i].id) ? 0 : 
    3919                                         root.share.test(data[i].id) ? 1 : 
    3920                                         root.local.test(data[i].id) ? 2 : 
    3921                                         'false'; 
    3922  
    3923                             if( isNaN(index) ) continue; 
    3924  
    3925                             if (!unorphanize(trees[index], data[i])) 
    3926                             { 
    3927                                 data[i].children = []; 
    3928                                 trees[index].push(data[i]); 
    3929                             } 
    3930                         } 
    3931  
    3932                         return( { folders: trees } ); 
    3933                     } 
    3934             } ); 
    3935  
    3936             current_folder = 'INBOX'; 
    3937  
    3938             DataLayer.codec( 'message', 'jqGrid', { 
    3939  
    3940                   encoder: function( data, crit ){ 
    3941  
    3942                         if( !crit.criteria.properties.context.folder.indexOf( 'local_messages/' ) ) 
    3943                         { 
    3944                             var msgs = expresso_local_messages.get_local_range_msgs( crit.criteria.properties.context.folder.replace(dots, "/").replace("local_messages/", ""), 
    3945                                                                                       crit.offset + 1, crit.limit, "SORTARRIVAL", crit.orderDesc, "ALL", 1, 1 ); 
    3946  
    3947                             for( var i = 0; i < msgs.length; i++ ) 
    3948                             { 
    3949                                   msgs[i].size = msgs[i].Size; 
    3950                                   msgs[i].timestamp = msgs[i].udate * 1000; 
    3951                                   msgs[i].flags = []; 
    3952  
    3953                                   for( var ii = 0; ii < flags.length; ii++ ) 
    3954                                       if( f = $.trim( msgs[i][ flags[ii] ] ) ) 
    3955                                           msgs[i].flags[ msgs[i].flags.length ] =  f; 
    3956  
    3957                                   msgs[i].flags = msgs[i].flags.join(','); 
    3958                             } 
    3959  
    3960                             return( {"rows": msgs,  
    3961                                       "records": msgs.length, 
    3962                                       "page": crit.page,  
    3963                                       "total": Math.ceil( msgs.num_msgs / crit.limit )} ); 
    3964                         } 
    3965  
    3966                         return( data ); 
    3967                   }, 
    3968                   criteria: function( crit ){ 
    3969  
    3970                         return { criteria: { properties: {context:{folder: current_folder || 'INBOX'}}, offset: crit.rows * ( crit.page - 1 ), limit: crit.rows, orderDesc: crit.sord == "desc" } }; 
    3971  
    3972                   } 
    3973             }); 
    39743887 
    39753888        return ID; 
Note: See TracChangeset for help on using the changeset viewer.