Changeset 6533


Ignore:
Timestamp:
06/18/12 12:26:38 (9 years ago)
Author:
acoutinho
Message:

Ticket #2864 - Problema com os eventos que contem repeticao

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

Legend:

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

    r6528 r6533  
    149149                        .'(range_start >= \'' . $start[1] . '\' AND range_start <= \'' . $end[1] . '\') OR ' 
    150150                        .'(range_start <= \'' . $start[2] . '\' AND range_end >= \'' . $end[2] . '\')) ' 
    151                 .(!empty($ids) ? ' ' .'AND calendar_object.id NOT IN (\'' . implode('\',\'', $ids) . '\') ' : ' '); 
    152  
     151                .(!empty($ids) ? ' ' .'AND calendar_object.id NOT IN (\'' . implode('\',\'', $ids) . '\') ' : ' ') 
     152                .'AND calendar_object.dtstart NOT IN (SELECT calendar_repeat_occurrence.occurrence from calendar_repeat_occurrence, ' 
     153                .'calendar_repeat where (calendar_repeat_occurrence.repeat_id = calendar_repeat.id) ' 
     154                .'AND (calendar_repeat.object_id = calendar_object.id))'; 
    153155 
    154156                $params = Controller::service('PostgreSQL')->execResultSql($sql.$where); 
     
    206208        //Recurepa as execeções anteriores caso exista 
    207209        if (isset($lastExceptions) && count($lastExceptions) && $lastExceptions) 
    208             foreach ($lastExceptions as $key => $value) 
    209                 array_push($exceptions, $lastExceptions[$key]['occurrence']); 
     210            foreach ($lastExceptions as $value) 
     211                array_push($exceptions, $value['occurrence']); 
    210212 
    211213        $params = array_diff(self::decodeRepeat($repeat, $ranges[0]['rangeStart'], $ranges[0]['rangeEnd']), $exceptions); 
     
    215217        if (!empty($params)) 
    216218            Controller::service('PostgreSQL')->execResultSql("INSERT INTO calendar_repeat_occurrence(repeat_id,exception,occurrence)VALUES('" . $id . "','0','" . implode("'),('" . $id . "','0','", $params) . "')" . ( empty($exceptions) ? "" : ",('" . $id . "','1','" . implode("'),('" . $id . "','1','", $exceptions) . "')" )); 
    217     } 
     219        else if(!empty($exceptions)) 
     220            Controller::service('PostgreSQL')->execResultSql("INSERT INTO calendar_repeat_occurrence(repeat_id,exception,occurrence)VALUES ('" . $id . "','1','" . implode("'),('" . $id . "','1','", $exceptions) . "')" ); 
     221    }        
    218222 
    219223    public function checkOccurrences($start, $end, $calendarIds) { 
  • trunk/prototype/modules/calendar/js/calendar.codecs.js

    r6476 r6533  
    643643    var formatString = User.preferences.dateFormat + " " + User.preferences.hourFormat; 
    644644 
    645     patati['startTime'] = Date.parseExact( form.startDate + " "+$.trim(form.startHour) , formatString ).toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'); 
     645    var date = Date.parseExact( form.startDate + " "+$.trim(form.startHour) , formatString ) 
     646     
     647    patati['startTime'] = date.toString(!!form.allDay ? 'yyyy-MM-dd 00:00:00' : 'yyyy-MM-dd HH:mm:00'); 
    646648         
    647649    if( !patati['byday'] ) 
  • trunk/prototype/modules/calendar/js/calendar.contentMenu.js

    r6451 r6533  
    2626                var schedulable = DataLayer.get('schedulable', idEvent); 
    2727 
    28                 var isRecurrence = DataLayer.get('repeat', schedulable.repeat).frequency; 
    29                  
    30                 var top; 
    31                 var elementId = document.getElementById("divAppbox"); 
    32                  
    33                 top = elementId.scrollTop; 
    34                  
     28                var isRecurrence = DataLayer.get('repeat', schedulable.repeat).frequency || false; 
     29 
     30                var top = $('#divAppbox').scrollTop(); 
     31 
    3532                var template = DataLayer.render( 'templates/menu_context_event.ejs', {event: schedulable.id , 
    3633                    top: (event.clientY - 135 + top), left: (event.clientX - 445),  
    37                                         signature: Calendar.signatureOf[idCalendar], 
    38                     calendars: Calendar.calendars, isRecurrence: isRecurrence == 'none' ? false : true, 
     34                    signature: Calendar.signatureOf[idCalendar], 
     35                    calendars: Calendar.calendars, isRecurrence: (!isRecurrence || isRecurrence == 'none') ? false : true, 
    3936                    idRecurrence: idRecurrence 
    4037                }); 
    41                  
     38 
    4239                $('#context-menu-event').html(template); 
    43                  
     40 
    4441                var method = function(value){ 
    4542                    switch (value){ 
Note: See TracChangeset for help on using the changeset viewer.