Changeset 7097


Ignore:
Timestamp:
08/22/12 10:21:10 (7 years ago)
Author:
acoutinho
Message:

Ticket #3064 - Inconsistencia na edicao de tarefas atraves de uma atividade

Location:
trunk/prototype
Files:
4 edited

Legend:

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

    r7077 r7097  
    496496    } 
    497497 
    498 //Encode Update 
    499  
     498        //Encode Update 
    500499    public function encodeUpdateSchedulable(&$uri, &$params, &$criteria, $original) { 
    501  
    502         $event = Controller::read(array('concept' => 'schedulable', 'id' => $params['id'])); 
    503                      
     500        $event = Controller::read(array('concept' => 'schedulable', 'id' => $uri['id'])); 
    504501        if (isset($params['startTime'])) { 
    505502 
     
    525522            $params['due'] = self::parseTimeDate($params['due'], $event['timezone']); 
    526523 
    527  
    528524        if($event['type'] == '2'){ 
    529  
    530525            $criteria['historic'] = $params; 
    531526            $criteria['beforeValue'] = $event; 
     
    533528            if(isset($params['startTime']) && $params['startTime'] == $event['startTime']) 
    534529                unset($criteria['historic']['startTime']); 
    535  
    536             if(isset($params['endTime']) && $params['endTime'] == $event['endTime']) 
    537                 unset($criteria['historic']['endTime']); 
    538  
    539530            if(isset($params['due']) && $params['due'] == $event['due']) 
    540531                unset($criteria['historic']['due']); 
    541532 
    542             //necessário para atulizar a atividade de composta pela tarefa aqui sendo atualizada 
    543             if(isset($criteria['historic']['startTime']) || isset($criteria['historic']['endTime'])){ 
    544                 $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'schedulable', $event['id']), array('=', 'owner', Config::me('uidNumber'))), 'deepness' => 2)); 
    545  
    546                 if(!empty($taskToActivity)){ 
    547                     $activity = Controller::read(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), array('startTime', 'endTime', 'rangeStart', 'rangeEnd')); 
    548                     $start = $params['startTime']; 
    549                     $end = $params['endTime']; 
    550                     foreach($taskToActivity as $t){ 
    551                          if($t['task']['id'] != $params['id']){ 
    552                             $start = $t['task']['startTime'] < $start ? $t['task']['startTime'] : $start; 
    553                             $end = $t['task']['endTime'] < $end ? $t['task']['endTime'] : $end; 
    554                          } 
    555                     } 
    556  
    557                     $toUpdate = array(); 
    558                      
    559                     if($start != $activity['startTime']) 
    560                         $toUpdate['starTime'] = $start; 
    561                      
    562                     if($end != $activity['endTime']) 
    563                         $toUpdate['endTime'] = $end; 
    564                       
    565                     if(!empty($toUpdate)) 
    566                         Controller::update(array('concept' => 'schedulable', 'id' => $activity['id']), $toUpdate);                 
     533                //necessário para atulizar a atividade de composta pela tarefa aqui sendo atualizada 
     534                if(isset($criteria['historic']['startTime']) || isset($criteria['historic']['endTime'])){ 
     535                        $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'task', $uri['id']), array('=', 'owner', Config::me('uidNumber'))), 'deepness' => 2)); 
     536                        if(!empty($taskToActivity)){ 
     537                                $activity = Controller::read(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), array('startTime', 'endTime', 'rangeStart', 'rangeEnd', 'allDay')); 
     538                                $isAllDay = 1; 
     539 
     540                                if(!empty($activity)){ 
     541                                        $start = $params['startTime']; 
     542                                        $end = $params['endTime']; 
     543                                        foreach($taskToActivity as $t){ 
     544                                         if($t['task']['id'] != $params['id']){ 
     545                                                $start = $t['task']['startTime'] < $start ? $t['task']['startTime'] : $start; 
     546                                                $end = $t['task']['endTime'] > $end ? $t['task']['endTime'] : $end; 
     547                                                $isAllDay = (($isAllDay == 1) && ($t['task']['allDay'] == '1')) ? 1 : 0;  
     548                                         } 
     549                                        } 
     550 
     551                                        if($event['allDay'] == '0' || (isset($params['allDay']) && $params['allDay'] == '0')) 
     552                                                $isAllDay = 0; 
     553 
     554                                        $toUpdate = array(); 
     555 
     556                                        if($start != $activity['startTime']) 
     557                                                $toUpdate['startTime'] = $start; 
     558 
     559                                        if($end != $activity['endTime']){ 
     560                                                $toUpdate['endTime'] = $end; 
     561                                                $toUpdate['due'] = $end; 
     562                                        } 
     563 
     564                                        if($isAllDay != $activity['allDay']) 
     565                                                $toUpdate['allDay'] = $isAllDay; 
     566 
     567                                        if(!empty($toUpdate)) 
     568                                                Controller::update(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), $toUpdate); 
     569                                } 
     570                        } 
    567571                } 
    568             } 
    569  
    570             unset($criteria['historic']['rangeEnd']); 
    571             unset($criteria['historic']['rangeStart']); 
    572             unset($criteria['historic']['class']); 
    573             unset($criteria['historic']['type']); 
    574             unset($criteria['historic']['allDay']); 
    575             unset($criteria['historic']['id']);             
     572 
     573                unset($criteria['historic']['endTime']); 
     574                unset($criteria['historic']['rangeEnd']); 
     575                unset($criteria['historic']['rangeStart']); 
     576                unset($criteria['historic']['class']); 
     577                unset($criteria['historic']['type']); 
     578                unset($criteria['historic']['allDay']); 
     579                unset($criteria['historic']['id']);             
    576580        } 
    577581    } 
  • trunk/prototype/modules/calendar/js/calendar.shared.js

    r6996 r7097  
    552552        'buttons':  ['Sim', 'Não'], 
    553553        'onClose':  function(clicked) { 
    554             if(clicked == 'Sim'){ 
    555                 DataLayer.remove('calendarSignature', ''+signatureId); 
    556                 DataLayer.commit( false, false, function( received ){ 
    557                     delete Calendar.currentViewKey; 
    558                     Calendar.load(); 
    559                     refresh_calendars(); 
    560                 }); 
     554                if(clicked == 'Sim'){ 
     555                        DataLayer.remove('calendarSignature', ''+signatureId); 
     556                        DataLayer.commit( false, false, function( received ){ 
     557                                delete Calendar.currentViewKey; 
     558                                Calendar.load(); 
     559                                refresh_calendars(); 
     560                        }); 
    561561            } 
    562562        } 
  • trunk/prototype/modules/calendar/templates/calendar_list.ejs

    r6996 r7097  
    102102                        <li><a href="#" onclick="show_modal_import_export(1, <%= signatures['sharedCalendar'][i].calendar.id%>, 0);">Exportar</a></li> 
    103103                        <%if(!signatures['sharedCalendar'][i].permission.acl['required']){%> 
    104                             <li><a href="#" onclick="cancel_signatures['sharedCalendar'](<%= signatures['sharedCalendar'][i].id %>);">Cancelar assinatura</a></li> 
     104                            <li><a href="#" onclick="cancel_signature(<%= signatures['sharedCalendar'][i].id %>);">Cancelar assinatura</a></li> 
    105105                        <%}%> 
    106106                    </ul> 
  • trunk/prototype/services/iCal.php

    r7068 r7097  
    135135                } 
    136136 
    137                 ob_start(); 
    138                 print_r( "\n dtStart \n"); 
    139                 print_r($sTime->format(DATE_RFC822)); 
    140                 print_r( "\n dtEnd \n"); 
    141                 print_r( $eTime->format(DATE_RFC822)); 
    142                 $output = ob_get_clean(); 
    143                 file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
    144  
    145137                if(isset($v['due']) && $v['due'] != '' && (int)$v['due'] > 0){ 
    146138                    $dueTime = new DateTime('@' . (int) ($v['due'] / 1000), $timezone); 
     
    189181                    } 
    190182                } 
    191  
    192         ob_start(); 
    193         print_r( "\n Ical Gerado \n"); 
    194         print_r( $ical->createCalendar()); 
    195         $output = ob_get_clean(); 
    196         file_put_contents( "/tmp/acoutinho.log",  $output , FILE_APPEND); 
    197  
    198183                return $ical->createCalendar(); 
    199184    } 
Note: See TracChangeset for help on using the changeset viewer.