Changeset 7781


Ignore:
Timestamp:
01/22/13 16:58:25 (7 years ago)
Author:
angelo
Message:

Ticket #3315 - Problema ao adicionar marcador ou sinalizador em varias mensagens

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/doiMenuData.js

    r7778 r7781  
    5050                                ['=', 'folderName', msg_folder], 
    5151                                ['IN', 'messageNumber', messagesCache] 
    52                                 ]}); 
     52                                ], criteria: {deepness: '2'}});                   
     53 
    5354                    /*VERIFICA SE A MENSAGEM msg POSSUI MARCADORES*/ 
    5455                    var hasLabel = function (msg){ 
     
    7576                                } 
    7677                                DataLayer.commit(false, false, function(data){ 
    77                                         for (var i=0; i < messages.length; i++) { 
    78                                                 updateLabelsColumn({msg_number:messages[i].msg_number, boxname:messages[i].msg_folder, labels:false}); 
    79                                         }                
     78                        var ids = []; 
     79                        for (var i=0; i < messages.length; i++) { 
     80                            ids[ ids.length ] = messages[i].msg_number; 
     81                        } 
     82 
     83                        var labels = DataLayer.get('labeled',{ filter:[ 
     84                                'AND', 
     85                                ['=', 'folderName', msg_folder], 
     86                                ['IN', 'messageNumber', ids] 
     87                                ], criteria: {deepness: '2'}}); 
     88 
     89                        var labelsIndex = {}; 
     90                        $.each( labels, function(i, e){ 
     91 
     92                            if( labelsIndex[ e.messageNumber ] ){ 
     93                                labelsIndex[ e.messageNumber ][ 'labels' ].push( e.label ); 
     94                            }else{ 
     95                                labelsIndex[ e.messageNumber ] = e; 
     96                                labelsIndex[ e.messageNumber ][ 'labels' ] = []; 
     97                                labelsIndex[ e.messageNumber ][ 'labels' ].push( e.label ); 
     98                            } 
     99                        }); 
     100                        $.each( labelsIndex, function(i, e){ 
     101                            /* the force parameter verifies the client's cache */ 
     102                            updateLabelsColumn({msg_number: e.messageNumber, boxname: e.folderName, labels: e.labels, forceIcon: true }); 
     103                        }); 
    80104                                }); 
    81                                  
    82  
    83105                        } 
    84106    } 
     
    280302         
    281303        var menuItems = {}; 
    282         if (messageInfo.labels) { 
     304        if (messageInfo.labels && !messageInfo.forceIcon ) { 
    283305                if($.isArray(messageInfo.labels)){ 
    284306                        var labels = messageInfo.labels; 
     
    292314                menuItems = messageInfo.labels; 
    293315        } else { 
    294                 var labeleds = DataLayer.get('labeled', { 
     316            var labeleds =  (messageInfo.forceIcon ? messageInfo.labels : DataLayer.get('labeled', { 
    295317                        criteria: {deepness: '2'}, 
    296318                        filter: [ 
     
    300322                        ] 
    301323                         
    302                 }); 
     324                }) ); 
     325 
    303326                if (labeleds) { 
    304327                if(current_folder == msg_folder || !current_folder){ 
     
    309332                        .html('').css({'background-image':'url(../prototype/modules/mail/img/mail-sprites.png)','background-position': '0 -1706px',"margin-left":"0",'margin-top':'3px','background-repeat':'no-repeat'}); 
    310333                } 
    311                         for (var i=0; i < labeleds.length; i++) 
    312                                 menuItems[labeleds[i].label.id] = labeleds[i].label; 
     334 
     335                for (var i=0; i < labeleds.length; i++){ 
     336                    menuItems[ labeleds[i].id ? labeleds[i].id : labeleds[i].label.id] = labeleds[i].id ? labeleds[i] : labeleds[i].label; 
     337                } 
    313338                } else { 
    314339                        $('#td_message_labels_' + msg_number +', tr[role="'+msg_number+'_'+msg_folder+'"] #td_message_labels_search_' + msg_number) 
Note: See TracChangeset for help on using the changeset viewer.