Ignore:
Timestamp:
01/27/12 15:37:21 (12 years ago)
Author:
cristiano
Message:

Ticket #2434 - Atualização modulo agenda e API

Location:
trunk/prototype/modules/calendar
Files:
9 edited

Legend:

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

    r5399 r5437  
    2222    * @return     void 
    2323    * @access     public 
    24     */ 
    25     public function createCalendarToSchedulable(&$uri , &$result , &$criteria , $original) 
     24    */   
     25    public function createCalendarToSchedulable(&$uri , &$result , &$data , $original) 
    2626    {                   
    27         if(Config::module('useCaldav')) 
    28         {       
    29             ob_start(); 
    30             $schedulable = Controller::read( array( 'concept' => 'schedulable' , 'id' => $original['properties']['schedulable'] ) , null , array('deepness' => '2') ); 
    31             $schedulable['URI']['concept'] = 'schedulable'; 
    32             $calendar =  Controller::read( array( 'concept' => 'calendar' , 'id' => $original['properties']['calendar'] ),array('timezone','name','location')); 
    33             $ical = Controller::format( array( 'service' => 'iCal' ) , array($schedulable) , array('defaultTZI' => $calendar['timezone']));           
    34             DAViCalAdapter::putIcal($ical , array('uid' => $schedulable['uid'] , 'collection' => $calendar['location'] )); 
    35             ob_end_clean(); 
     27        foreach ($data as $i => $concept)  
     28        { 
     29            if($concept['concept'] === 'calendarToSchedulable') 
     30            { 
     31                if(Config::module('useCaldav')) 
     32                {       
     33                    ob_start(); 
     34                    $calendarToschedulable = Controller::read( array( 'concept' => 'calendarToSchedulable' , 'id' => $concept['id'] )); 
     35                    if($calendarToschedulable) 
     36                    { 
     37                        $schedulable = Controller::read( array( 'concept' => 'schedulable' , 'id' => $calendarToschedulable['schedulable'] ) , null , array('deepness' => '2') ); 
     38                        $calendar =  Controller::read( array( 'concept' => 'calendar' , 'id' => $calendarToschedulable['calendar'] ),array('timezone','name','location')); 
     39                        $ical = Controller::format( array( 'service' => 'iCal' ) , array($schedulable) , array('defaultTZI' => $calendar['timezone']));           
     40                        DAViCalAdapter::putIcal($ical , array('uid' => $schedulable['uid'] , 'collection' => $calendar['location'] )); 
     41                    } 
     42                    ob_end_clean(); 
     43                } 
     44            } 
     45             
    3646        } 
    3747    }  
     
    171181    { 
    172182       ob_start(); 
    173        require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php'; 
     183       require_once ROOTPATH.'/plugins/davicalCliente/caldav-client-v2.php';        
    174184       $cal = new CalDAVClient( Config::service( 'CalDAV' , 'url' ).'/'.Config::me( 'uid' ).'/', Config::me( 'uid' ), $_SESSION['wallet']['user']['password']); 
    175185       $cal->DoDELETERequest(Config::service( 'CalDAV' , 'url' ).'/'.Config::me( 'uid' ).'/'.$data.'/'); 
  • trunk/prototype/modules/calendar/interceptors/DBMapping.php

    r5415 r5437  
    66 
    77class DBMapping extends Helpers {        
    8          
    9       //Schedulable 
    10       static $calendar_objectMap = array('id' => 'id', 
    11                                          'uid' => 'cal_uid', 
    12                                          'type' => 'type_id', 
    13                                          'startTime' => 'dtstart', 
    14                                          'summary' => 'summary', 
    15                                          'description' => 'description', 
    16                                          'endTime' => 'dtend', 
    17                                          'location' => 'location', 
    18                                          'allDay' => 'allday', 
    19                                          'tranp' => 'tranparent', 
    20                                          'class' => 'class_id', 
    21                                          'repeat' => 'repeat', 
    22                                          'rangeStart' => 'range_start', 
    23                                          'rangeEnd' => 'range_end', 
    24                                          'lastUpdate' => 'last_update', 
    25                                          'dtstamp' => 'dtstamp', 
    26                                          'sequence' => 'sequence', 
    27                                          'timezone' => 'tzid'); 
    28        
    29         static $calendar_to_calendar_objectMap = array('id' => 'id', 
    30                                                        'calendar' => 'calendar_id', 
    31                                                        'schedulable' => 'calendar_object_id'); 
    32        
    33            
    34           //Alarm 
    35           static $calendar_alarmMap = array(  'id' => 'id', 
    36                                      'type' => 'action_id', 
    37                                      'time' => 'time', 
    38                                      'sent' => 'sent', 
    39                                      'rangeStart' => 'range_start', 
    40                                      'rangeEnd' => 'range_end', 
    41                                      'unit' => 'unit', 
    42                                      'participant' => 'participant_id', 
    43                                      'schedulable' => 'object_id'); 
    44            
    45           //calendarSignatureAlarm 
    46           static $calendar_signature_alarmMap = array(   'id' => 'id', 
    47                                                          'type' => 'action_id', 
    48                                                          'time' => 'time', 
    49                                                          'unit' => 'unit', 
    50                                                          'calendarSignature' => 'calendar_signature_id'); 
    51            
    52           //modulePrefence 
    53           static $module_preferenceMap = array(  'id' => 'id', 
    54                                                  'user' => 'user_uidnumber', 
    55                                                  'value' => 'value', 
    56                                                  'name' => 'name', 
    57                                                  'module' => 'module'); 
    58            
    59           //Participant 
    60           static $calendar_participantMap = array( 'id' => 'id', 
    61                                                    'delegatedTo' => 'delegated_to', 
    62                                                    'isOrganizer' => 'is_organizer', 
    63                                                    'isExternal' => 'is_external', 
    64                                                    'status' => 'participant_status_id', 
    65                                                    'schedulable' => 'object_id', 
    66                                                    'user' => 'user_info_id' ); 
    67  
    68           //User 
    69           static $calendar_ex_participantMap = array(   'id'   => 'id', 
    70                                                         'name' => 'name', 
    71                                                         'mail' => 'mail', 
    72                                                         'owner' => 'owner'); 
    73  
    74           //Repeat 
    75           static $calendar_repeatMap = array(   'id'   => 'id', 
    76                                                 'freq' => 'frequency', 
    77                                                 'endTime' => 'until', 
    78                                                 'count' => 'count', 
    79                                                 'schedulable' => 'object_id', 
    80                                                 'bysecond' => 'bysecond', 
    81                                                 'byminute' => 'byminute', 
    82                                                 'byhour' => 'byhour', 
    83                                                 'byday' => 'byday', 
    84                                                 'bymonthday' => 'bymonthday', 
    85                                                 'byweekno' => 'byweekno', 
    86                                                 'bymonth' => 'bymonth', 
    87                                                 'bysetpos' => 'bysetpos', 
    88                                                 'wkst' => 'wkst', 
    89                                                 'interval' => 'interval'); 
    90            
    91           //Calendar 
    92           static $calendarMap = array(   'id'   => 'id', 
    93                                          'name' => 'name', 
    94                                          'location' => 'location', 
    95                                          'description' => 'description', 
    96                                          'timezone' => 'tzid', 
    97                                          'defaultDuration' => 'duration', 
    98                                          'dtstamp' => 'dtstamp'); 
    99            
    100           //Signature 
    101           static $calendar_signatureMap = array(  'id'   => 'id', 
    102                                                    'user' => 'user_uidnumber', 
    103                                                    'calendar' => 'calendar_id', 
    104                                                    'isOwner' => 'is_owner', 
    105                                                    'msgAdd' => 'msg_add', 
    106                                                    'msgCancel' => 'msg_cancel', 
    107                                                    'msgUpdate' => 'msg_update', 
    108                                                    'msgReply' => 'msg_reply', 
    109                                                    'msgAlarm' => 'msg_alarms', 
    110                                                    'dtstamp' => 'dtstamp', 
    111                                                    'fontColor' => 'font_color', 
    112                                                    'backgroundColor' => 'background_color', 
    113                                                    'borderColor' => 'border_color'); 
    114            
    115            static $attachmentMap = array('id'   => 'id', 
    116                                          'name' => 'name', 
    117                                          'type' => 'type', 
    118                                          'source' => 'source', 
    119                                          'size' => 'size'); 
    1208            
    121             
    122         
    123 ////Encode Create 
    124     public function encodeCreateConcept( &$uri , &$params , &$criteria , $original ){ 
    125                 $params = self::parseConcept($params , self::${$uri['concept'].'Map'});  
    126         } 
    127     public function encodeCreateSchedulable( &$uri , &$params , &$criteria , $original ){ 
    128         $uri['concept'] = 'calendar_object';                     
    129         $new['type_id'] = EVENT_ID; 
    130      
    131             if(!array_key_exists('startTime', $params)) 
    132             { 
    133                 $params['startTime'] = $params['endTime']; 
    134             } 
    135              
    136            $new =  self::parseConcept($params , self::$calendar_objectMap);                
    137  
    138            $new['range_start'] = gmdate( 'd-m-Y' , (int)($params['startTime'] / 1000) ); 
     9    public function encodeCreateSchedulable( &$uri , &$params , &$criteria , $original ){                        
     10        $params['type_id'] = EVENT_ID; 
     11               
     12        $params['rangeStart'] = gmdate( 'd-m-Y' , (int)($params['startTime'] / 1000) ); 
    13913 
    14014    //        if( !isset( $new['repeat'] )) 
    14115    //            $new['range_end'] = '7287926400'; // 12/12/2200 
    14216    //        else 
    143             $new['range_end'] = gmdate( 'd-m-Y' , (int)($params['endTime'] / 1000) ); 
     17            $params['rangeEnd'] = gmdate( 'd-m-Y' , (int)($params['endTime'] / 1000) ); 
    14418            /////////////////////////////////////////////////////////////////// 
    14519 
    146             $new['dtstamp'] = (isset($new['dtstamp'])) ? $new['dtstamp'] :time().'000';  
    147             $new['last_update'] = (isset($new['last_update'])) ? $new['last_update'] :time().'000';  
    148             $new['type_id'] = EVENT_ID; 
    149             $new['cal_uid'] = isset($new['cal_uid']) ? $new['cal_uid'] : $this->_makeUid(); 
    150             $params = $new; 
     20            $params['dtstamp'] = (isset($params['dtstamp'])) ? $params['dtstamp'] :time().'000';  
     21            $params['lastUpdate'] = (isset($params['lastUpdate'])) ? $params['lastUpdate'] :time().'000';  
     22            $params['type'] = EVENT_ID; 
     23            $params['uid'] = isset($params['uid']) ? $params['uid'] : $this->_makeUid(); 
    15124             
    15225        }        
     
    16336        } 
    16437         
    165         $params = self::parseConcept($params , self::$calendar_alarmMap);        
    166         $params['action_id']    = self::codeAlarmType($params['action_id']); 
     38        $params['type'] = self::codeAlarmType($params['type']); 
    16739         
    16840        }   
     
    17547    public function encodeCreateAttachment( &$uri , &$params , &$criteria , $original ){ 
    17648        $params['source'] = base64_encode( $params['source'] ); 
    177                 $params = self::parseConcept($params , self::$attachmentMap);            
    17849        } 
    17950/////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    18051         
    18152    public function encodeSignatureAlarmType( &$uri , &$params , &$criteria , $original ){ 
    182                 $params['type'] = self::codeAlarmType($params['type']); 
     53        $params['type'] = self::codeAlarmType($params['type']); 
    18354    }   
    18455         
    185 ////Encode URI      
    186     public function encodeURICalendarToSchedulable( &$uri , &$params , &$criteria , $original ){            
    187             $uri['concept'] = 'calendar_to_calendar_object';                     
    188     }     
    189     public function encodeURICalendarSignatureAlarm( &$uri , &$params , &$criteria , $original ){            
    190             $uri['concept'] = 'calendar_signature_alarm';                        
    191     }     
    192     public function encodeURISchedulable( &$uri , &$params , &$criteria , $original ){            
    193             $uri['concept'] = 'calendar_object';                         
    194     } 
    195     public function encodeURIAlarm( &$uri , &$params , &$criteria , $original ){ 
    196             $uri['concept'] = 'calendar_alarm';                          
    197     }    
    198     public function encodeURIParticipant (&$uri , &$params , &$criteria , $original ){ 
    199             $uri['concept'] = 'calendar_participant';  
    200     } 
    201     public function encodeURIUser (&$uri , &$params , &$criteria , $original ){ 
    202             $uri['concept'] = 'calendar_ex_participant'; 
    203     } 
    204     public function encodeURIRepeat (&$uri , &$params , &$criteria , $original ){ 
    205             $uri['concept'] = 'calendar_repeat';  
    206     } 
    207     public function encodeURICalendar (&$uri , &$params , &$criteria , $original ){ 
    208             $uri['concept'] = 'calendar';  
    209     } 
    210     public function encodeURImodulePreference (&$uri , &$params , &$criteria , $original ){ 
    211             $uri['concept'] = 'module_preference';  
    212     } 
    213     public function encodeURICalendarSignature (&$uri , &$params , &$criteria , $original ){ 
    214                 $uri['concept'] = 'calendar_signature';  
    215         } 
    216 ///////////////////////////////////////////////////////////// 
    21756 
    21857    public function insertOwnerLink (&$uri , &$params , &$criteria , $original ){ 
     
    22564    }   
    22665       
    227 ////Encode Read  
    228     public function encodeReadConcept(&$uri , &$params , &$criteria , $original ){ 
    229         $params = self::parsejustthese($params , self::${$uri['concept'].'Map'});        
    230     } 
    231 //////////////////////////////////////////////////////////////////////////////////////////////// 
    232  
    233 //Encode Find 
    234     public function encodeFindParticipant( &$uri , &$params , &$criteria , $original ){ 
    235  
    236           $criteria = self::parserCristeria($criteria, self::$calendar_participantMap); 
    237  
    238     } 
    239  
    240     public function encodeFindConcept( &$uri , &$params , &$criteria , $original ){         
    241         $params = self::parsejustthese($params, self::${$uri['concept'].'Map'}); 
    242  
    243         $criteria = self::parserCristeria($criteria, self::${$uri['concept'].'Map'}); 
    244  
    245     } 
    246      
    247     public function encodeDeleteAllConcept( &$uri , &$params , &$criteria , $original ){ 
    248          
    249         $criteria = self::parserCristeria($criteria, self::${$uri['concept'].'Map'}); 
    250  
    251     } 
    252          
    253     public function encodeFindSchedulable( &$uri , &$params , &$criteria , $original ){ 
    254          
    255         $criteria = self::parserCristeria($criteria, self::$calendar_objectMap); 
    256         $findCalendar = false;  
    257         if(isset($criteria['filter'] )) 
    258         $criteria['filter'] = self::parseFilterSchedulable($criteria['filter'], self::$calendar_objectMap,$findCalendar); 
    259          
    260         if($findCalendar){ 
    261             $uri['concept'] = 'calendar_to_calendar_object , calendar_object'; 
    262             $criteria['join'] = array( 'calendar_to_calendar_object.calendar_object_id' =>  'calendar_object.id'); 
    263         } 
    264  
    265      } 
    266  
     66   public function findSchedulable( &$uri , &$params , &$criteria , $original ) 
     67   { 
     68       if(isset($criteria['filter'][3][1]) && $criteria['filter'][3][1] == 'calendar') 
     69       { 
     70         $select = 'calendar_object.id as id ,calendar_object.cal_uid as "uid" , calendar_object.type_id as "type", calendar_object.dtstart as "startTime", calendar_object.summary as "summary", calendar_object.description as "description", calendar_object.dtend as "endTime" , calendar_object.location as "location", calendar_object.allday as "allDay", calendar_object.transp as "transparent", calendar_object.class_id as "class", calendar_object.repeat as "repeat", calendar_object.range_start as "rangeStart",calendar_object.range_end as "rangeEnd", calendar_object.last_update as "lastUpdate", calendar_object.dtstamp as "dtstamp", calendar_object.sequence as "sequence",  calendar_object.tzid as "timezone" ,calendar_to_calendar_object.calendar_id as calendar'; 
     71         $sql = " SELECT $select FROM calendar_to_calendar_object , calendar_object WHERE (range_start >= '".$criteria['filter'][1][2]."' AND range_end <= '".$criteria['filter'][2][2]."' AND calendar_to_calendar_object.calendar_id IN ('".  implode('\',\'', $criteria['filter'][3][2])."')) AND calendar_to_calendar_object.calendar_object_id = calendar_object.id"; 
     72         $params = Controller::service('PostgreSQL')->execResultSql($sql); 
     73         $params = self::deepnessFindEvent( &$uri , &$params , &$criteria , $original); 
     74         return false; 
     75       } 
     76   } 
     77    
    26778/////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    26879 
     
    28394      
    28495//Encode Update 
    285     public function encodeUpdateConcept( &$uri , &$params , &$criteria , $original ){ 
    286         $params = self::parseConcept( $params , self::${$uri['concept'].'Map'} );                        
    287     }     
    28896 
    28997    public function encodeUpdateSchedulable( &$uri , &$params , &$criteria , $original ){        
     
    292100        if(isset($params['endTime'])) 
    293101                $params['rangeEnd'] = gmdate( 'd-m-Y' , (int)($params['endTime'] / 1000) );        
    294          
    295        $params = self::parseConcept( $params , self::${$uri['concept'].'Map'} );                         
     102                 
    296103                 
    297104     }         
     
    328135    }  
    329136/////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    330  
    331     public function encodeReplaceConcept( &$uri , &$params , &$criteria , $original ){ 
    332         $params = self::parseConcept( $params , self::${$uri['concept'].'Map'} ); 
    333          
    334         $criteria = self::parserCristeria($criteria,  self::${$uri['concept'].'Map'}); 
    335  
    336     }     
    337137     
    338138    public function verifyCalendarLocation( &$uri , &$params , &$criteria , $original ){ 
     
    341141    }  
    342142     
    343     public function setCalendarLocation( &$uri , &$params , &$criteria , $original ){ 
    344         if(isset($params['name'])) 
    345             $params['location'] = $params['name']; 
    346     }  
    347143       
    348144    //TODO: Remover apos suporte a ManytoMany na api  
     
    381177       } 
    382178        
     179       return $result; 
     180        
    383181   }  
    384182    
     
    406204                } 
    407205       } 
    408  
    409206   }  
    410207    
     
    514311                      array( '='  , 'sent' , '0') ,   
    515312                      array( '='  , 'type' ,  ALARM_ALERT) ,   
    516                       array( '>=' , 'range_start' , $criteria['filter'][2]) , 
    517                       array( '<=' , 'range_end' , $criteria['filter'][2]) );  
     313                      array( '>=' , 'rangeStart' , $criteria['filter'][2]) , 
     314                      array( '<=' , 'rangeEnd' , $criteria['filter'][2]) );  
    518315 
    519316            //Busca os Alarmes no Range 
     
    680477        $newCriteria = $original['criteria']; 
    681478        $valid = true; 
    682         self::validExternalUserCriteria($newCriteria['filter'], self::$calendar_ex_participantMap, $valid); 
    683         if($valid == true) 
    684         { 
    685              $newCriteria['filter'] = array('AND',$newCriteria['filter'] , array('=' , 'owner', Config::me('uidNumber')) );         
     479 
     480            $newCriteria['filter'] = array('AND',$newCriteria['filter'] , array('=' , 'owner', Config::me('uidNumber')) );         
    686481            $externalUsers = Controller::find( $newuri , $original['properties'] ? $original['properties'] : null , $newCriteria ); 
    687482 
     
    698493 
    699494            return array_merge($result, $externalUsers);     
    700         } 
    701         
    702     } 
    703  
    704 //Decode Read 
    705     public function decodeReadConcept( &$uri , &$result , &$criteria , $original ){      
    706                 return self::parseConcept($result, self::${$uri['concept'].'Map'} , true); 
    707         } 
    708 ///////////////////////////////////////////////////////////////////////// 
    709   
     495         
     496        
     497    } 
     498 
    710499    public function createSchedulableMails( &$uri , &$result , &$criteria , $original ){ 
    711500         
     
    948737        return ( isset( $isOwner[0]['id'] ) ) ? true : false;  
    949738    } 
    950       
    951     //TODO: Remover apos suporte a ManytoMany na api      
    952     protected static function parseFilterSchedulable($filter, $map ,&$findCalendar) { 
    953         if (!is_array($filter) || count($filter) <= 0) 
    954             return null; 
    955  
    956         $op = array_shift($filter); 
    957  
    958         if (is_array($filter[0])) { 
    959             foreach ($filter as $i => $f) 
    960                 $filter[$i] = self::parseFilterSchedulable($f, $map ,$findCalendar ); 
    961         } 
    962         else 
    963         { 
    964             if($filter[0] == 'calendar') 
    965             { 
    966                 $findCalendar = true; 
    967                 $filter[0] = 'calendar_to_calendar_object.calendar_id';  
    968             } 
    969             else 
    970                 $filter[0] = isset($map[$filter[0]]) ? $map[$filter[0]] : $filter[0]; 
    971         } 
    972  
    973         array_unshift($filter, $op); 
    974  
    975         return( $filter ); 
    976     }   
    977      
    978     private static function validExternalUserCriteria( $filter, $map , &$ref ) 
    979     { 
    980         if (!is_array($filter) || count($filter) <= 0) 
    981             return null; 
    982          
    983         $op = array_shift($filter); 
    984  
    985         if (isset($filter[0]) && is_array($filter[0])) { 
    986             foreach ($filter as $i => $f) 
    987                 $filter[$i] = self::validExternalUserCriteria($f, $map ,$findCalendar ); 
    988         } 
    989         else 
    990         {            
    991            if( isset($filter[0]) && !in_array($filter[0] , self::$calendar_ex_participantMap)) 
    992              $ref = false; 
    993    
    994             else 
    995                 $filter[0] = isset($map[$filter[0]]) ? $map[$filter[0]] : $filter[0]; 
    996         } 
    997          
    998         return( $filter ); 
    999     } 
    1000      
     739 
    1001740    private static function schedulable2calendarToObject($Schedulable) 
    1002741    { 
  • trunk/prototype/modules/calendar/interceptors/Helpers.php

    r5341 r5437  
    11<?php 
    22 
    3 class Helpers { 
    4  
    5     protected static function parseFilter($filter, $map) { 
    6         if (!is_array($filter) || count($filter) <= 0) 
    7             return null; 
    8  
    9         $op = array_shift($filter); 
    10  
    11         if (is_array($filter[0])) { 
    12             foreach ($filter as $i => $f) 
    13                 $filter[$i] = self::parseFilter($f, $map); 
    14         } 
    15         else 
    16             $filter[0] = isset($map[$filter[0]]) ? $map[$filter[0]] : $filter[0]; 
    17  
    18         array_unshift($filter, $op); 
    19  
    20         return( $filter ); 
    21     } 
    22  
    23     protected static function parseConcept($data, $map, $flip = false) { 
    24         if (!is_array($data) || count($data) <= 0) 
    25             return false; 
    26  
    27         if ($flip === true) 
    28             $map = array_flip($map); 
    29  
    30         $new = array(); 
    31         foreach ($data as $i => $v) 
    32             if (array_key_exists($i, $map)) 
    33                 $new[$map[$i]] = $v; 
    34         return $new; 
    35     } 
    36  
    37      
    38     protected static function parseOrder($data, $map) { 
    39         $new = array(); 
    40  
    41         if (!is_array($data)) 
    42             $data = array($data); 
    43  
    44         foreach ($data as $v) 
    45             if (array_key_exists($v, $map)) 
    46                 $new[] = $map[$v]; 
    47  
    48         return $new; 
    49     } 
    50  
    51      
    52     protected static function parsejustthese($data, $map, $flip = false) { 
    53  
    54         if (!is_array($data) || count($data) <= 0) 
    55             return false; 
    56  
    57         if ($flip === true) 
    58             $map = array_flip($map); 
    59  
    60         $new = array(); 
    61         foreach ($data as $v) 
    62             if (array_key_exists($v, $map)) 
    63                 $new[] = $map[$v]; 
    64         return $new; 
    65     } 
    66  
    67     protected static function parserCristeria($criteria, $map) { 
    68         if (isset($criteria['filter'])) 
    69             $criteria['filter'] = self::parseFilter($criteria['filter'], $map); 
    70  
    71         if (isset($criteria['order'])) { 
    72             $ord = self::parseOrder($criteria['order'], $map); 
    73             if (count($ord) > 0) 
    74                 $criteria['order'] = $ord; 
    75             else 
    76                 unset($criteria['order']); 
    77         } 
    78  
    79         return $criteria; 
    80     } 
    81       
     3class Helpers {     
    824 
    835    public static function futureEvent( $startTime , $rangeEnd ) 
  • trunk/prototype/modules/calendar/interceptors/LDAPMapping.php

    r5341 r5437  
    44 
    55class LDAPMapping extends Helpers { 
    6          
    7        //externalUser 
    8           static $usertMap = array(     'id'   => 'uidnumber', 
    9                                         'name' => 'cn', 
    10                                         'mail' => 'mail', 
    11                                         'mailAlternateAddress' => 'mailalternateaddress'); 
    12      
    13      
    14     public function decodeReadUser( &$uri , &$result , &$criteria , $original  ){ 
    15         $result = self::parseConcept( $result , self::$usertMap , true );  
    16     } 
    176 
    187   public function encodeFindUser( &$uri , &$params , &$criteria , $original ){ 
     
    3726                                                                    ), 
    3827                                                                array('OR',  
    39                                                                         array('*','cn',$criteria['filter'][2]), 
     28                                                                        array('*','name',$criteria['filter'][2]), 
    4029                                                                        array('*','givenName',$criteria['filter'][2]), 
    4130                                                                        array('*','uid',$criteria['filter'][2]), 
     
    4736                                                          ) 
    4837                                                ); 
    49                 else 
    50                     $criteria['filter'] = self::parseFilter($criteria['filter'], self::$usertMap); 
    5138            } 
    5239           
    5340    }   
    54      
    55        /* 
    56                   * ex: array   (  
    57                   *               [0] 'OR', 
    58                   *               [1] array( 'OR', array( array( '=', 'campo', 'valor' ) ),  
    59                   *               [2] array( '=', 'campo' , 'valor' ), 
    60                   *               [3] array( 'IN', 'campo', array( '1' , '2' , '3' ) ) 
    61                   *             ) 
    62                   * OR 
    63                   *         array( '=' , 'campo' , 'valor' ) 
    64                 */ 
    65      
    66     public function decodeFindUser( &$uri , &$result , &$criteria , $original ){         
    67         foreach ($result as $i => $v) 
    68             $result[$i] = self::parseConcept( $v , self::$usertMap , true );  
    69          
    70     }   
    71          
     41    
    7242} 
    7343 
  • trunk/prototype/modules/calendar/interceptors/Notifications.php

    r5399 r5437  
    2121    {     
    2222        if(Config::regGet('noAlarm') !== false) return; //Escapa notificações caso a flag de noAlarm esteja ativa. 
    23          
     23               
    2424        $organizers = array(); //Cache Organizadores 
    2525        $schedulables = array(); //Cache Schedulables 
  • trunk/prototype/modules/calendar/js/calendar.codecs.js

    r5415 r5437  
    9191 
    9292                for( var i = 0; i < this.signatures.length; i++ ){ 
    93                         this.signatureOf[ ( this.calendarOf[ this.calendarIds[i] = ( this.calendars[ this.calendars.length ] = this.signatures[i].calendar ).id ] = this.signatures[i].calendar ).id ] = this.signatures[i]; 
     93                        this.signatureOf[ this.calendarIds[i] = ( this.calendars[ this.calendars.length ] = this.calendarOf[ this.signatures[i].id ] = this.signatures[i].calendar ).id ] = this.signatures[i]; 
    9494                } 
    9595 
     
    272272                                user: User.me.id,        
    273273                                calendar: { 
    274                                         id: Calendar.signatureOf[form.signature].calendar.id, 
     274                                        id: Calendar.calendarOf[form.signature].id, 
    275275                                        name: Encoder.htmlEncode(form.name), 
    276276                                        description: Encoder.htmlEncode(form.description), 
     
    351351                                        user: User.me.id, 
    352352                                        status: form.status, 
    353                                         id: form.attendee_organizer[0], 
     353                                        id: form.meId, 
    354354                                        isOrganizer: 0, 
    355355                                        alarms: typeof(form.alarmTime) != 'undefined' ?  
     
    468468        var res = $.map(evtObj, function( form ){ 
    469469     
    470                     var tzId =  form.timezone || Calendar.calendarOf[form.calendar].timezone || User.preferences.timezone, 
     470                    var tzId =  form.timezone || Calendar.signatureOf[form.calendar].calendar.timezone || User.preferences.timezone, 
    471471 
    472472                    formatString = ( typeof form.allDay !== "undefined" && !!form.allDay )? pref.dateFormat+" HH:mm" : pref.dateFormat + " " + pref.hourFormat, 
  • trunk/prototype/modules/calendar/js/calendar.date.js

    r5409 r5437  
    4848        dayOfWeek: 
    4949                { 
    50                         'SAN': 0, 
     50                        'SUN': 0, 
    5151                        'MON': 1, 
    5252                        'TUE': 2, 
  • trunk/prototype/modules/calendar/js/helpers.js

    r5409 r5437  
    153153                 
    154154                /*Seleciona a agenda padrão para criação de um evento*/ 
    155                 UI.dialogs.addEvent.find('option[value="'+User.preferences.defaultCalendar+'"]').attr('selected','selected').trigger('change'); 
     155                UI.dialogs.addEvent.find('option[value="'+objEvent.calendar || User.preferences.defaultCalendar+'"]').attr('selected','selected').trigger('change'); 
    156156                 
    157157                /*Adicionar alarms padrões, quando alterado a agenda do usuário*/                
     
    12491249 
    12501250function mountCriteriaList(view, page_index, calerdars_selecteds){ 
    1251         var criteria = {deepness: 2, order: 'startTime'} 
     1251        var rangeStart , rangeEnd; 
    12521252        switch (view){ 
    12531253                case 'basicDay': 
    12541254                case 'day': 
    1255                         return {filter: ['AND', ['IN', 'calendar',  calerdars_selecteds], ['=', 'rangeEnd', new Date().add({days: page_index}).toString("yyyy-MM-dd")]], criteria: criteria};  
     1255                        rangeStart = new Date().add({days: page_index}).toString("yyyy-MM-dd"); 
     1256                        rangeEnd = rangeStart; 
     1257                         break; 
    12561258                case 'agendaWeek': 
    12571259                case 'week': 
    1258                         var dateStart = new Date().moveToDayOfWeek(dateCalendar.dayOfWeek[User.preferences.weekDefault]);  
    1259                         var dateEnd = new Date().moveToDayOfWeek(dateCalendar.dayOfWeek[User.preferences.weekDefault]);  
    1260                         return {filter: ['AND', ['IN', 'calendar',  calerdars_selecteds], ['AND',['>=', 'rangeEnd', dateStart.add({days: (7 * page_index)}).toString("yyyy-MM-dd")], ['<=', 'rangeEnd', dateEnd.add({days: (7 * page_index)+7}).toString("yyyy-MM-dd")]]], criteria: criteria};  
     1260                        var dateStart = new Date().moveToDayOfWeek(dateCalendar.dayOfWeek[User.preferences.weekStart]);  
     1261                        var dateEnd = new Date().moveToDayOfWeek(dateCalendar.dayOfWeek[User.preferences.weekStart]);  
     1262                        rangeStart = dateStart.add({days: (7 * page_index)}).toString("yyyy-MM-dd"); 
     1263                        rangeEnd = dateEnd.add({days: (7 * page_index)+7}).toString("yyyy-MM-dd"); 
     1264                        break; 
    12611265                case 'month': 
    12621266                        var date = new Date().add({months: page_index})  
    1263                         return {filter: ['AND',['IN', 'calendar',  calerdars_selecteds], ['AND',['>=', 'rangeEnd', date.moveToFirstDayOfMonth().toString("yyyy-MM-dd")], ['<=', 'rangeEnd', date.moveToLastDayOfMonth().toString("yyyy-MM-dd")]]], criteria: criteria};  
     1267                        rangeStart = date.moveToFirstDayOfMonth().toString("yyyy-MM-dd"); 
     1268                        rangeEnd = date.moveToLastDayOfMonth().toString("yyyy-MM-dd"); 
     1269                         break; 
    12641270                case 'year': 
    12651271                        var dateStart = new Date().add({years: page_index});     
     
    12691275                        if(dateEnd.getMonth() != 11) 
    12701276                                dateEnd.moveToMonth(11)  
    1271                         return {filter: ['AND', ['IN', 'calendar',  calerdars_selecteds], ['AND',['>=', 'rangeEnd', dateStart.moveToFirstDayOfMonth().toString("yyyy-MM-dd")], ['<=', 'rangeEnd', dateEnd.moveToLastDayOfMonth().toString("yyyy-MM-dd")]]], criteria: criteria};  
    1272         } 
     1277                         rangeStart =    dateStart.moveToFirstDayOfMonth().toString("yyyy-MM-dd"); 
     1278                         rangeEnd = dateEnd.moveToLastDayOfMonth().toString("yyyy-MM-dd"); 
     1279                           break;   
     1280                        } 
     1281   return {filter: ['AND', ['>=', 'rangeStart', rangeStart], ['<=', 'rangeEnd', rangeEnd] , ['IN', 'calendar',  calerdars_selecteds]], criteria: {deepness: 2, order: 'startTime'}};  
     1282 
    12731283} 
    12741284 
  • trunk/prototype/modules/calendar/templates/attendee_add.ejs

    r5422 r5437  
    88<!--                            <option value="another">Outra pessoa vai</option>--> 
    99                        </select> 
     10                        <%if(data.event.organizer.id != data.event.me.id){%> 
     11                            <input type="hidden" name="meId" value="<%=data.event.me.id%>"> 
     12                        <%}%> 
    1013                        <fieldset class="add-attendee-search search-field ui-corner-all hidden"> 
    1114                                <span class="ui-icon ui-icon-search"></span> 
Note: See TracChangeset for help on using the changeset viewer.