Ignore:
Timestamp:
02/14/12 16:52:04 (12 years ago)
Author:
acoutinho
Message:

Ticket #2434 - Implementacao anexos, acls e delegacao de participantes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/calendar/interceptors/DBMapping.php

    r5462 r5514  
    4040        }   
    4141         
     42        public function encodeCreateSuggestion( &$uri , &$params , &$criteria , $original ){                     
     43        $params['dtstamp'] = (isset($params['dtstamp'])) ? $params['dtstamp'] :time().'000';           
     44    }    
     45         
    4246        public function encodeUpdateAlarm( &$uri , &$params , &$criteria , $original ){ 
    4347            if(isset($params['type'])) 
     
    4650         
    4751    public function encodeCreateAttachment( &$uri , &$params , &$criteria , $original ){ 
    48         $params['source'] = base64_encode( $params['source'] ); 
     52         
     53                if(!isset($params['source'])) return false; 
     54                 
     55                if(isset($_FILES[$params['source']])) 
     56                        if(isset($params['id'])) 
     57                                $params =  array_merge($_FILES[$params['source']], array('id' => $params['id'])); 
     58                        else 
     59                                $params =  $_FILES[$params['source']]; 
     60                 
     61                //$params['source'] = base64_encode( $params['source'] );        
     62                 
    4963        } 
     64 
    5065/////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    5166         
     
    145160    public function createCalendarToSchedulable( &$uri , &$result , &$criteria , $original ){            
    146161 
    147        Controller::create(array('concept' => 'calendarToSchedulable'), array('calendar' => $original['properties']['calendar'], 'schedulable' => $result['id'] )); 
    148              
    149    }    
     162                Controller::create(array('concept' => 'calendarToSchedulable'), array('calendar' => $original['properties']['calendar'], 'schedulable' => $result['id'] )); 
     163 
     164   } 
     165 
     166        public function createCreateSchedulableToAttachment( &$uri , &$params , &$criteria , $original ){                
     167                if(array_key_exists('attachments', $original['properties']))     
     168                        foreach($original['properties']['attachments'] as $key => $value){                               
     169                                if(isset($params['id'])) 
     170                                        Controller::create(array('concept' => 'schedulableToAttachment'), array('attachment' => $value['attachment'], 'schedulable' => $params['id'] )); 
     171                        } 
     172        } 
    150173      
    151174    //TODO: Remover apos suporte a deepness na api  
     
    172195                    }        
    173196                    $result[$i]['participants'] = $participants; 
    174                 }                
     197                 
     198                                        $attachmentRelation = Controller::find( array( 'concept' => 'schedulableToAttachment' ) , false ,array( 'filter' => array('=', 'schedulable'  ,  $v['id']) ));  
     199                                        if(is_array($attachmentRelation)){ 
     200                                                $attachments = array(); 
     201                                                foreach($attachmentRelation as $key => $value) 
     202                                                        if(isset($value['attachment']) || !!$value['attachment']) 
     203                                                                $attachments[$key]  = $value['attachment']; 
     204                                                //Pega os anexos sem source 
     205                                                $result[$i]['attachments'] = Controller::find( array( 'concept' => 'attachment' ) , array('id', 'name', 'type', 'size') ,array( 'filter' => array('IN', 'id' , $attachments) ));  
     206                                        } 
     207                                 
     208                                }                
    175209                 
    176210           } 
     
    294328        } 
    295329    } 
     330 
     331    public function decodeFindAttachment( &$uri , &$result , &$criteria , $original ){           
     332                if(isset($result)) 
     333                foreach($result as $key => &$value) 
     334                        $value['source'] = base64_decode($value['source']); 
     335    } 
     336 
    296337         
    297338        public function decodeSignatureAlarmType( &$uri , &$result , &$criteria , $original ){   
     
    389430        } 
    390431         
    391      } 
     432     }  
     433          
     434        public function deleteAttachmentDependences( &$uri , &$params , &$criteria , $original ){ 
     435 
     436                if(isset($original['URI']['id'])) 
     437                        Controller::delete(array('concept' => 'schedulableToAttachment', null , array('filter' => array('=' , 'attachment' , $original['URI']['id'])))); 
     438    } 
    392439 
    393440    public function createDefaultSignature( &$uri , &$result , &$criteria , $original ){ 
Note: See TracChangeset for help on using the changeset viewer.