Changeset 5972 for trunk/prototype


Ignore:
Timestamp:
04/19/12 12:03:07 (12 years ago)
Author:
adriano
Message:

Ticket #2633 - correcao nos interceptors dos sinalizadores redefinidos

Location:
trunk/prototype
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/config/followupflagged.ini

    r5959 r5972  
    33 
    44[PostgreSQL.before.create] 
     5letFollowupflaggedKeepUnique = modules/mail/interceptors/Helpers.php  
    56doImapCreate = modules/mail/interceptors/Helpers.php 
    67 
     
    1617[PostgreSQL.after.find] 
    1718doImapFind = modules/mail/interceptors/Helpers.php 
     19 
     20[after.find]  
     21deepnessFollowupflaggeds = modules/mail/interceptors/Helpers.php  
     22 
     23 
    1824 
    1925[PostgreSQL.mapping] 
  • trunk/prototype/modules/mail/interceptors/Helpers.php

    r5971 r5972  
    8282 * FOLLOWUPFLAG 
    8383 */  
    84   
     84        //followupflagged:after.find 
     85        public function deepnessFollowupflaggeds( &$uri , &$result , &$criteria , $original ){                 
     86 
     87                if(isset($original['criteria']['deepness'])) 
     88                { 
     89                        foreach ($result as $i => $v) 
     90                        { 
     91                                if(isset($v['followupflagId'])) 
     92                                { 
     93                                        $followupflags = Controller::find(array('concept' => 'followupflag'), false, array('filter' => array('=', 'id', $v['followupflagId']) )); 
     94                                         
     95                                        /** 
     96                                         * Devido há inconsistencias na chamada do interceptor addDefaultElementsFilter (followupflag:before.find) 
     97                                         * os followupflag defaults são inseridos no retorno, por isso é necessário procurar o objeto correto 
     98                                         * através do id 
     99                                         */ 
     100                                        foreach ($followupflags as $followupflag) { 
     101                                                if ($v['followupflagId'] == $followupflag['id']) { 
     102                                                        $result[$i]['followupflag'] = $followupflag; 
     103                                                        break; 
     104                                                } 
     105                                        } 
     106                                } 
     107                                 
     108                                if(isset($v['messageNumber']) && isset($v['folderName'])) 
     109                                { 
     110                                        $details = $original['criteria']['deepness'] == '1' ? 'headers' : 'all'; 
     111                                         
     112                                        $imapService = new imap_functions(); 
     113                                        $message = $imapService->getMessages(array('messages' => array($v['folderName'] => array($v['messageNumber'])), 'details' => $details)); 
     114                                        $result[$i]['message'] = $message[$v['folderName']][0];                          
     115                                }      
     116                        } 
     117                } 
     118 
     119                return $result; 
     120        }        
     121         
     122        //followupflagged:PostgreSQL.before.create 
     123        public function letFollowupflaggedKeepUnique (&$uri , &$params , &$criteria , $original ){ 
     124 
     125                if (isset($params['folderName']) && isset($params['messageNumber'])) { 
     126                        $filter = array ('AND', array('=', 'folderName', $params['folderName']), array('=', 'messageNumber', $params['messageNumber'])); 
     127 
     128                        $imap_result = Controller::find(  
     129                                array('concept' => 'followupflagged'),  
     130                                array('messageId'),  
     131                                array('filter' => $filter) 
     132                        ); 
     133                         
     134                        if($imap_result) { 
     135                                $params['messageId'] = $imap_result['messageId']; 
     136                        } 
     137                } 
     138 
     139                $filter = array('=', 'messageId', $params['messageId']); 
     140                Controller::delete(array('concept' => 'followupflagged', 'service' => 'PostgreSQL'), null, $filter); 
     141        } 
     142         
    85143        //followupflag:before.find  
    86144        public function addDefaultElementsFilter (&$uri , &$params , &$criteria , $original ){  
Note: See TracChangeset for help on using the changeset viewer.