Ignore:
Timestamp:
03/01/12 03:35:01 (12 years ago)
Author:
acoutinho
Message:

Ticket #2434 - Implementacao de compartilhamento de agendas (agendas usuario e agendas publicas)

File:
1 edited

Legend:

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

    r5514 r5592  
    99    public function encodeCreateSchedulable( &$uri , &$params , &$criteria , $original ){                        
    1010        $params['type_id'] = EVENT_ID; 
    11                
    12         $params['rangeStart'] = gmdate( 'd-m-Y' , (int)($params['startTime'] / 1000) ); 
     11         
     12                $params['startTime'] =  strtotime( $params['startTime'] . ' ' .$params['timezone']).'000'; 
     13         
     14                $params['endTime'] =   strtotime( $params['endTime'] . ' ' .$params['timezone']).'000'; 
     15                 
     16                if($params['allDay']) 
     17                        $params['endTime'] =  $params['endTime']  + 86400000; 
    1318 
    1419    //        if( !isset( $new['repeat'] )) 
    1520    //            $new['range_end'] = '7287926400'; // 12/12/2200 
    1621    //        else 
    17             $params['rangeEnd'] = gmdate( 'd-m-Y' , (int)($params['endTime'] / 1000) ); 
     22            $params['rangeEnd'] = $params['endTime']; 
     23                        $params['rangeStart'] =  $params['startTime']; 
     24 
    1825            /////////////////////////////////////////////////////////////////// 
    1926 
     
    2431             
    2532        }        
     33                 
    2634    public function encodeCreateAlarm( &$uri , &$params , &$criteria , $original ){ 
    2735         
     
    5967                                $params =  $_FILES[$params['source']]; 
    6068                 
    61                 //$params['source'] = base64_encode( $params['source'] );        
     69                if(isset($params['owner'])) 
     70                        $params['owner'] = Config::me('uidNumber'); 
    6271                 
    6372        } 
     
    112121    public function encodeUpdateSchedulable( &$uri , &$params , &$criteria , $original ){        
    113122        if(isset($params['startTime'])) 
    114                 $params['rangeStart'] = gmdate( 'd-m-Y' , (int)($params['startTime'] / 1000) ); 
     123                $params['rangeStart'] = $params['startTime'] ; 
    115124        if(isset($params['endTime'])) 
    116                 $params['rangeEnd'] = gmdate( 'd-m-Y' , (int)($params['endTime'] / 1000) );        
     125                $params['rangeEnd'] = $params['endTime'] ;        
    117126                 
    118127                 
     
    172181        } 
    173182      
     183         public function deepnessFindCalendarShared( &$uri , &$result , &$criteria , $original ){                                
     184                if(isset($original['criteria']['deepness']) && count($result) > 0){ 
     185                        $calendarIds = array(); 
     186                        foreach($result as $key => $value) 
     187                                array_push($calendarIds, $value['calendar']); 
     188                         
     189                        $calendar = Controller::find( array( 'concept' => 'calendar' ) , false ,array( 'filter' => array('AND', array('IN','id', $calendarIds), $original['criteria']['filter'])));  
     190                         
     191                        if(!is_array($calendar)) 
     192                                $result = ''; 
     193 
     194                        $newResult = array(); 
     195                        foreach($calendar as $key => $value){ 
     196                                foreach($result as $k => $r){ 
     197 
     198                                        if($r['calendar'] == $value['id']){ 
     199                                                $r['calendar'] = $value; 
     200                                                array_push($newResult, $r); 
     201                                        } 
     202                                } 
     203                        } 
     204                         
     205                        foreach($newResult as $key => &$value){ 
     206                                if($value['user']  != 0) 
     207                                        $value['user'] = Controller::read( array( 'concept' => 'user' , 'id' => $value['user'] )); 
     208                        } 
     209 
     210 
     211                $result = $newResult; 
     212                } 
     213    }    
     214  
    174215    //TODO: Remover apos suporte a deepness na api  
    175216    public function deepnessFindEvent( &$uri , &$result , &$criteria , $original ){              
    176         
     217 
    177218       if(isset($original['criteria']['deepness'])) 
    178219       { 
     220                         
     221                        $Time = new DateTime( 'now', new DateTimeZone('UTC') ); 
     222                        $DayLigth = array(); 
    179223           foreach ($result as $i => $v) 
    180224           { 
     225 
     226                                if(!isset($currentTimezone) || $currentTimezone  != $original['criteria']['timezones'][$v['calendar']]){ 
     227                                        $currentTimezone = $original['criteria']['timezones'][$v['calendar']]; 
     228                                        $Time->setTimezone(new DateTimeZone($currentTimezone)); 
     229                                } 
     230 
     231                                $Time->setTimestamp( (int)($v['startTime'] / 1000)); 
     232                                $DayLigth['calendar']['startTime'] =  $Time->format('I') ? 1 : 0; 
     233                                 
     234                                $Time->setTimestamp( (int)($v['endTime'] / 1000)); 
     235                                $DayLigth['calendar']['endTime'] =  $Time->format('I') ? 1 : 0; 
     236                                 
     237                                if($currentTimezone != $v['timezone']){ 
     238                                        $currentTimezone = $v['timezone']; 
     239                                        $Time->setTimezone(new DateTimeZone($v['timezone'])); 
     240                                 
     241                                        $Time->setTimestamp( (int)($v['startTime'] / 1000)); 
     242                                        $DayLigth['event']['startTime'] =  $Time->format('I') ? 1 : 0; 
     243 
     244                                        $Time->setTimestamp( (int)($v['endTime'] / 1000)); 
     245                                        $DayLigth['event']['endTime'] =  $Time->format('I') ? 1 : 0; 
     246                                }else 
     247                                        $DayLigth['event'] = $DayLigth['calendar']; 
     248                                         
     249                                 
     250                                $result[$i]['DayLigth'] = $DayLigth; 
     251                                 
    181252                if(isset($v['id'])) 
    182253                { 
     
    195266                    }        
    196267                    $result[$i]['participants'] = $participants; 
    197                  
     268                                         
     269                                         
     270                                         
    198271                                        $attachmentRelation = Controller::find( array( 'concept' => 'schedulableToAttachment' ) , false ,array( 'filter' => array('=', 'schedulable'  ,  $v['id']) ));  
    199272                                        if(is_array($attachmentRelation)){ 
     
    214287        
    215288   }  
    216     
     289 
    217290    //TODO: Remover apos suporte a deepness na api  
    218291    public function deepnessReadEvent( &$uri , &$result , &$criteria , $original ){              
     
    295368                if(isset($v['calendar'])){ 
    296369                    $result[$i]['calendar'] = Controller::read( array( 'concept' => 'calendar' , 'id' => $v['calendar']));  
    297                                         $result[$i]['defaultAlarms'] = Controller::find( array( 'concept' => 'calendarSignatureAlarm' ) , false ,array( 'filter' => array('=', 'calendarSignature'  ,  $v['id']) ));      
     370                                        $result[$i]['defaultAlarms'] = Controller::find( array( 'concept' => 'calendarSignatureAlarm' ) , false ,array( 'filter' => array('=', 'calendarSignature'  ,  $v['id']) ));     
     371                                        //Caso não seja o dono da agenda retorna o objeto permission com as acls 
     372                                        if($result[$i]['isOwner'] == 0){ 
     373                                                $permission = Controller::find( array( 'concept' => 'calendarToPermission'), false ,array( 'filter' => array('AND', array('=', 'calendar' ,  $v['calendar']), array('=', 'user', Config::me('uidNumber') ) ) ) );  
     374 
     375                                                 
     376         
     377                                                 
     378                                                if(!is_array($permission) || !$permission  ){ 
     379                                                        ob_start(); 
     380                                                        var_dump($permission); 
     381                                                         
     382                                                        $output = ob_get_clean(); 
     383                                                        file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
     384                                                        $permission = Controller::find( array( 'concept' => 'calendarToPermission'), false ,array( 'filter' => array('AND', array('=', 'calendar' ,  $v['calendar']), array('=', 'type', '1' ) ) ) );     
     385                                                         
     386                                                        ob_start(); 
     387                                                var_dump($permission); 
     388                                                 
     389                                                $output = ob_get_clean(); 
     390                                                file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
     391                                                         
     392                                                } 
     393                                                $result[$i]['permission'] = $permission[0]; 
     394                                        } 
    298395                                } 
    299396           } 
     
    627724                        }          
    628725        } 
    629   
    630                  
    631726        } 
    632727 
     
    640735     
    641736   public function davcalDeleteCollection( &$uri , &$params , &$criteria , $original ){  
    642         if( Config::module('useCaldav') ) 
     737        if( Config::module('useCaldav') &&  Config::module('onRemoveCascadeCalDav')) 
    643738        { 
    644739           require_once ROOTPATH.'/modules/calendar/interceptors/DAViCalAdapter.php'; 
Note: See TracChangeset for help on using the changeset viewer.