Changeset 7788


Ignore:
Timestamp:
01/23/13 16:42:42 (7 years ago)
Author:
angelo
Message:

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

Location:
trunk
Files:
2 edited

Legend:

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

    r7781 r7788  
    315315        } else { 
    316316            var labeleds =  (messageInfo.forceIcon ? messageInfo.labels : DataLayer.get('labeled', { 
    317                         criteria: {deepness: '2'}, 
    318                         filter: [ 
     317                        criteria: {deepness: 2}, 
     318                filter: [ 
    319319                                'AND', 
    320320                                ['=', 'folderName', msg_folder],  
     
    334334 
    335335                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; 
     336                    menuItems[ (labeleds[i].id ? labeleds[i].id : labeleds[i].label.id) ] = labeleds[i].label; 
    337337                } 
    338338                } else { 
  • trunk/prototype/modules/mail/js/label.js

    r7750 r7788  
    8383} 
    8484 
     85function returnLabels(msgsReference){ 
     86        var folderIndex = {}; 
     87   for (var i=0; i < msgsReference.length; i++) {        
     88       if( folderIndex[ msgsReference[i].folderName] ){         
     89           folderIndex[ msgsReference[i].folderName].push( msgsReference[i].messageNumber );           
     90       }else{ 
     91           folderIndex[ msgsReference[i].folderName] = [ msgsReference[i].messageNumber ]; 
     92       }       
     93   } 
     94   var labels = [];  
     95   for(var folder in folderIndex){ 
     96                var currentLabes = DataLayer.get('labeled',{ filter:[ 
     97               'AND', 
     98               ['=', 'folderName', folder ], 
     99               ['IN', 'messageNumber', folderIndex[ folder ] ] 
     100               ], criteria: {deepness: '2'}}); 
     101 
     102                if( $.isArray( currentLabes ) ) 
     103                        labels = labels.concat( currentLabes ); 
     104   } 
     105   var labelsIndex = {}; 
     106   $.each( labels, function(i, e){ 
     107       if( labelsIndex[ e.messageNumber ] ){ 
     108           labelsIndex[ e.messageNumber ][ 'labels' ].push( e.label ); 
     109       }else{ 
     110           labelsIndex[ e.messageNumber ] = e; 
     111           labelsIndex[ e.messageNumber ][ 'labels' ] = []; 
     112           labelsIndex[ e.messageNumber ][ 'labels' ].push( e.label ); 
     113       } 
     114   }); 
     115   return labelsIndex; 
     116} 
     117 
     118 
    85119function updateMessageLabels(msgsReference){ 
    86         for(var i = 0; i < msgsReference.length; i++){ 
    87                 updateLabelsColumn({msg_number: msgsReference[i].messageNumber, boxname: msgsReference[i].folderName}); 
    88         }        
     120        var labelsIndex = returnLabels(msgsReference); 
     121   $.each(labelsIndex,function(index,e){ 
     122           updateLabelsColumn({msg_number: e.messageNumber, boxname: e.folderName,labels: e.labels, forceIcon: true}); 
     123   }); 
    89124} 
    90125 
Note: See TracChangeset for help on using the changeset viewer.