Changeset 5570


Ignore:
Timestamp:
02/27/12 20:44:50 (12 years ago)
Author:
adriano
Message:

Ticket #2486 - correcao de erro no alarme e ajustes nas operacoes de crud

Location:
trunk/prototype
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/mail/interceptors/Helpers.php

    r5540 r5570  
    112112        public function clearFilterAtFind( &$uri , &$params , &$criteria , $original ) { 
    113113 
    114                 if ($criteria['filter'] && !self::in_arrayr('id', $criteria['filter'])) { 
     114                if ($criteria['filter'] &&  
     115                                (self::in_arrayr('messageNumber', $criteria['filter']) || self::in_arrayr('folderName', $criteria['filter'])) ) { 
    115116                        unset($criteria['filter']); 
    116117                } 
     
    124125        public function doImapFind( &$uri , &$result , &$criteria , $original ){ 
    125126 
    126                 if (!self::in_arrayr('id', $original['criteria']['filter'])) { 
    127                         if ($result) { 
    128                                 $list = array(); 
    129                                 foreach ($result as $followupflagged) 
    130                                         $list[] = $followupflagged['id']; 
    131                                          
    132                                 $filter = array( 'IN' , 'id' , $list ); 
     127                if ($result) { 
     128                        $list = array(); 
     129                        foreach ($result as $followupflagged) 
     130                                $list[] = $followupflagged['id']; 
    133131                                 
    134                                 if (isset($original['criteria']['filter']) && $original['criteria']['filter']!=NULL && count($original['criteria']['filter']) != 0) 
    135                                         $criteria['filter'] = array( 'AND', $original['criteria']['filter'], $filter ); 
    136                                 else 
    137                                         $criteria['filter'] =  $filter; 
    138                         } 
    139                 }        
     132                        $filter = array( 'IN' , 'id' , $list ); 
     133                         
     134                        if (isset($original['criteria']['filter']) && $original['criteria']['filter']!=NULL && count($original['criteria']['filter']) != 0) 
     135                                $criteria['filter'] = array( 'AND', $original['criteria']['filter'], $filter ); 
     136                        else 
     137                                $criteria['filter'] =  $filter; 
     138                } 
    140139                 
    141140                $imap_uri = $uri; 
     
    180179 
    181180        //followupflagged:PostgreSQL.after.create 
    182         public function doImapCreate( &$uri , &$params , &$criteria , $original ) { 
    183          
    184                 $imap_uri = $uri; 
    185                 $imap_uri['service'] = 'Imap'; 
    186                  
    187                 $imap_params = $params + $original['properties']; 
     181        public function doImapCreate( &$uri , &$result , &$criteria , $original ) { 
     182         
     183                $imap_uri = $uri; 
     184                $imap_uri['service'] = 'Imap'; 
     185                 
     186                $imap_params = $result + $original['properties']; 
    188187                if ($imap_params['folderName'] && $imap_params['messageNumber'] && $imap_params['id']) { 
    189188                        $imap_uri['id'] = $imap_params['folderName'] . '/' . $imap_params['messageNumber'] . '#' . $imap_params['id'];  
     
    196195        //followupflagged:PostgreSQL.before.read 
    197196        public function doImapRead( &$uri , &$params , &$criteria , $original ) { 
    198                 //TODO - read 
    199                 //$imap_uri = $uri; 
    200                 //$imap_uri['service'] = 'Imap'; 
    201                 //$result = Controller::read($imap_uri, $params, $criteria); 
     197                $imap_uri = $uri; 
     198                $imap_uri['service'] = 'Imap'; 
     199                $result = Controller::read($imap_uri, $params, $criteria); 
     200                 
     201                return $result; 
    202202        }        
    203203         
     
    226226        //followupflagged:PostgreSQL.before.update 
    227227        public function doImapUpdate( &$uri , &$params , &$criteria , $original ) { 
    228                 //TODO - update 
     228                /** 
     229                 * Para os conceitos "labeled" e "followupflagged", só faz sentido o update de  
     230                 * atributos gravados no banco de dados e nunca no IMAP. 
     231                 */ 
    229232                //$imap_uri = $uri; 
    230233                //$imap_uri['service'] = 'Imap'; 
  • trunk/prototype/services/ImapServiceAdapter.php

    r5540 r5570  
    410410    public function update( $URI, $data, $criteria = false ) 
    411411    { 
    412                 //TODO - remove 
    413                 //TODO - create 
     412                /** 
     413                 * Os únicos atributos que podem ser alterados no IMAP são folderName e messageId, 
     414                 * porém a operação de update desses atributos não faz sentido para o usuário da DataLayer, 
     415                 * pois na prática elas são executadas através das operações de CREATE e DELETE. 
     416                 * Assim, para os conceitos "labeled" e "followupflagged", só faz sentido o update de  
     417                 * atributos gravados no banco de dados e nunca no IMAP. 
     418                 */ 
    414419        } 
    415420 
Note: See TracChangeset for help on using the changeset viewer.