Changeset 5814


Ignore:
Timestamp:
03/26/12 14:41:00 (12 years ago)
Author:
thiago
Message:

Ticket #2486 - Implementação da recuperação das flags e labels pelo imap_fun.

Location:
trunk/expressoMail1_2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r5800 r5814  
    198198                            }  
    199199                                                         
    200                                                         foreach($return as $msg_number => $message_content){ 
    201                                                                 if(!isset($message_content['msg_number'])) 
     200                                                        $filter = array('AND', array('=', 'folderName', $folder), array('IN','messageNumber', $sort_array_msg[0])); 
     201                                                        $followupflagged = Controller::find( 
     202                                                                array('concept' => 'followupflagged'), 
     203                                                                false,  
     204                                                                array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     205                                                        ); 
     206                                                        $labeleds = Controller::find( 
     207                                                                array('concept' => 'labeled'), 
     208                                                                false,  
     209                                                                array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     210                                                        ); 
     211                                                        for($i=0; $i<count($sort_array_msg); $i++){ 
     212                                                                if(!isset($return[$i]['msg_number'])) 
    202213                                                                        continue; 
    203                                                                          
    204                                                                         $filter = array('AND', array('=', 'folderName', $folder), array('=','messageNumber', $msg_number)); 
    205                                                                         $followupflagged = Controller::find( 
    206                                                                                 array('concept' => 'followupflagged'), 
    207                                                                                 false,  
    208                                                                                 array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
    209                                                                         ); 
    210  
    211                                                                         if(isset($followupflagged[0]['followupflagId'])) 
    212                                                                         { 
    213                                                                                 $followupflag = Controller::read( array( 'concept' => 'followupflag', 'id' => $followupflagged[0]['followupflagId'] ));      
    214                                                                                 $followupflagged[0]['followupflag'] = $followupflag; 
    215                                                                                 $message_content['followupflagged'] = $followupflagged[0]; 
    216  
     214                                                                for($ii=0; $ii<count($followupflagged); $ii++){ 
     215                                                                        if($return[$i]['msg_number'] == $followupflagged[$ii]['messageNumber']){ 
     216                                                                                $followupflag = Controller::read( array( 'concept' => 'followupflag', 'id' => $followupflagged[$ii]['followupflagId'] )); 
     217                                                                                $return[$i]['followupflagged'] = $followupflagged[$ii]; 
     218                                                                                $return[$i]['followupflagged']['followupflag'] = $followupflag; 
     219                                                                                break; 
    217220                                                                        } 
    218  
    219                                                                         $labeleds = Controller::find( 
    220                                                                                 array('concept' => 'labeled'), 
    221                                                                                 false,  
    222                                                                                 array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
    223                                                                         ); 
    224                                                                          
    225                                                                         if(isset($labeleds) && count($labeleds) > 0 && $labeleds){ 
    226                                                                                 $message_content['labels'] = array(); 
    227                                                                                 foreach ($labeleds as $e){       
    228                                                                                         $labels = Controller::read( array( 'concept' => 'label', 'id' =>  $e['labelId']));      
    229                                                                                         $message_content['labels'][] = $labels; 
    230                                                                                 }        
     221                                                                } 
     222                                                                for($ii=0; $ii<count($labeleds); $ii++){ 
     223                                                                        if($return[$i]['msg_number'] == $labeleds[$ii]['messageNumber']){ 
     224                                                                                $labels = Controller::read( array( 'concept' => 'label', 'id' =>  $labeleds[$ii]['labelId']));  
     225                                                                                $return[$i]['labels'][$labeleds[$ii]['labelId']] = $labels; 
    231226                                                                        } 
     227                                                                } 
    232228                                                        } 
    233  
    234229                    } 
    235230                    $return['num_msgs'] =  $num_msgs;                            
     
    18041799                */ 
    18051800                // $tag_list = Array(true, "b", "a", "i", "img", "strong", "em", "p"); 
     1801 
     1802 
    18061803                $rm_tags_with_content = Array( 
    18071804                                'script', 
  • trunk/expressoMail1_2/js/draw_api.js

    r5808 r5814  
    10391039                } 
    10401040        } 
    1041         /* --- */ 
    1042           
    1043         /** 
    1044          * Get the labels applied to the messages and saves the information  
    1045          * into message array  
    1046          */ 
    1047         var messageNumbers = new Array(); 
    1048         for (var i=0; i<headers_msgs.length; i++) { 
    1049                 messageNumbers.push(headers_msgs[i].msg_number); 
    1050         } 
    1051         var labeleds = DataLayer.get('labeled', { 
    1052                         filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', msg_folder]], 
    1053                         criteria: {deepness: 2} 
    1054                 }, true); 
    1055  
    1056         if(labeleds) { 
    1057                 for (var i=0; i<headers_msgs.length; i++) { 
    1058                         for (var j=0; j<labeleds.length; j++) { 
    1059                                 if (labeleds[j].messageNumber == headers_msgs[i].msg_number) { 
    1060                                         if (!headers_msgs[i].labels) 
    1061                                                 headers_msgs[i].labels = {}; 
    1062                                         headers_msgs[i].labels[labeleds[j].label.id] = labeleds[j].label; 
    1063                                 } 
    1064                         } 
    1065                 } 
    1066         } 
    1067          
    1068         /** 
    1069          * Get the followupflags applied to the messages and saves the information  
    1070          * into message array  
    1071          */ 
    1072         var followupflaggeds = DataLayer.get('followupflagged', { 
    1073                         criteria: { 
    1074                                 filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', msg_folder]], 
    1075                                 deepness: 1 
    1076                         } 
    1077                 }, true); 
    1078  
    1079         if(followupflaggeds) { 
    1080                 for (var i=0; i<headers_msgs.length; i++) { 
    1081                         for (var j=0; j<followupflaggeds.length; j++) { 
    1082                                 if (followupflaggeds[j].messageNumber == headers_msgs[i].msg_number) { 
    1083                                         if (!headers_msgs[i].followupflagged) 
    1084                                                 headers_msgs[i].followupflagged = {}; 
    1085                                         headers_msgs[i].followupflagged = followupflaggeds[j]; 
    1086                                 } 
    1087                         } 
    1088                 } 
    1089         } 
    1090          
    10911041        /** 
    10921042         * Preenche a estrutura de cache de mensagens para posterior consulta de  
Note: See TracChangeset for help on using the changeset viewer.