Changeset 7680


Ignore:
Timestamp:
12/19/12 13:30:46 (11 years ago)
Author:
acoutinho
Message:

Ticket #3249 - Problema com horarios na edicao de tarefas e atividades

Location:
trunk/prototype
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/calendar/assetic_css.php

    r7664 r7680  
    3838$css = new AssetCollection(array( 
    3939        //new FileAsset(MODULESURL.'/css/reset.css'), 
    40         //new FileAsset(PLUGINSURL.'/fullcalendar/fullcalendar.css'),  
    41         new FileAsset(PLUGINSURL.'/fullcalendar/fullcalendar.print.css'), 
     40        //new FileAsset(PLUGINSURL.'/fullcalendar/fullcalendar.css'), 
     41        //new FileAsset(PLUGINSURL.'/fullcalendar/fullcalendar.print.css'), 
    4242        //new FileAsset(PLUGINSURL.'/jquery/jquery-ui.css'), 
    4343        new FileAsset(PLUGINSURL.'/icalendar/jquery.icalendar.css'), 
     
    5757 
    5858if (strpos($javaVersion,"java version") !== false){ 
    59     $filterManager->set('yui_css', $compressor);     
    60     $css->ensureFilter($filterManager->get('yui_css'));     
     59    $filterManager->set('yui_css', $compressor); 
     60    $css->ensureFilter($filterManager->get('yui_css')); 
    6161} 
    6262 
    63 $cssCache = new AssetCache($css,new FilesystemCache('/tmp')); 
     63$cssCache = new AssetCache($css, new FilesystemCache('/tmp')); 
    6464echo $cssCache->dump(); 
    6565 
  • trunk/prototype/modules/calendar/interceptors/DBMapping.php

    r7660 r7680  
    8282         
    8383 
    84         if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due'])) 
     84        if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due'])){ 
    8585            $params['due'] = self::parseTimeDate($params['due'], $params['timezone']); 
     86 
     87            if ($params['allDay']) 
     88                $params['due'] = $params['due'] + 86400000; 
     89        } 
     90 
    8691 
    8792        /////////////////////////////////////////////////////////////////// 
     
    535540            } 
    536541            $params['rangeEnd'] = $params['endTime']; 
     542 
     543            if($event['type'] == '2'){ 
     544 
     545                if(!isset($params['due']) && $params['endTime'] != $event['endTime']) 
     546                    $params['due'] = $params['endTime']; 
     547 
     548            } 
    537549        } 
    538550 
    539  
    540         if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due'])) 
     551        if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due'])){ 
    541552            $params['due'] = self::parseTimeDate($params['due'], $event['timezone']); 
     553 
     554            if ((isset($params['allDay']) && $params['allDay']) || ( !isset($params['allDay']) && $event['allDay'])) 
     555                $params['due'] = $params['due'] + 86400000; 
     556        } 
    542557 
    543558        if($event['type'] == '2'){ 
     
    550565                unset($criteria['historic']['due']); 
    551566 
    552                 //necessário para atulizar a atividade de composta pela tarefa aqui sendo atualizada 
    553                 if(isset($criteria['historic']['startTime']) || isset($criteria['historic']['endTime'])){ 
    554                         $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'task', $uri['id']), array('=', 'owner', Config::me('uidNumber'))), 'deepness' => 2)); 
    555                         if(!empty($taskToActivity)){ 
    556                                 $activity = Controller::read(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), array('startTime', 'endTime', 'rangeStart', 'rangeEnd', 'allDay')); 
    557                                 $isAllDay = 1; 
    558  
    559                                 if(!empty($activity)){ 
    560                                         $start = $params['startTime']; 
    561                                         $end = $params['endTime']; 
    562                                         foreach($taskToActivity as $t){ 
    563                                         if($t['task']['id'] != $params['id']){ 
    564                                                 $start = $t['task']['startTime'] < $start ? $t['task']['startTime'] : $start; 
    565                                                 $end = $t['task']['endTime'] > $end ? $t['task']['endTime'] : $end; 
    566                                                 $isAllDay = (($isAllDay == 1) && ($t['task']['allDay'] == '1')) ? 1 : 0;  
    567                                         } 
    568                                         } 
    569  
    570                                         if($event['allDay'] == '0' || (isset($params['allDay']) && $params['allDay'] == '0')) 
    571                                                 $isAllDay = 0; 
    572  
    573                                         $toUpdate = array(); 
    574  
    575                                         if($start != $activity['startTime']) 
    576                                                 $toUpdate['startTime'] = $start; 
    577  
    578                                         if($end != $activity['endTime']){ 
    579                                                 $toUpdate['endTime'] = $end; 
    580                                                 $toUpdate['due'] = $end; 
    581                                         } 
    582  
    583                                         if($isAllDay != $activity['allDay']) 
    584                                                 $toUpdate['allDay'] = $isAllDay; 
    585  
    586                                         if(!empty($toUpdate)) 
    587                                                 Controller::update(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), $toUpdate); 
    588                                 } 
    589                         } 
    590                 } 
    591  
    592                 unset($criteria['historic']['endTime']); 
    593                 unset($criteria['historic']['rangeEnd']); 
    594                 unset($criteria['historic']['rangeStart']); 
    595                 unset($criteria['historic']['class']); 
    596                 unset($criteria['historic']['type']); 
    597                 unset($criteria['historic']['allDay']); 
    598                 unset($criteria['historic']['id']);             
     567            //necessário para atulizar a atividade de composta pela tarefa aqui sendo atualizada 
     568            if(isset($criteria['historic']['startTime']) || isset($criteria['historic']['endTime'])){ 
     569                $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'task', $uri['id']), array('=', 'owner', Config::me('uidNumber'))), 'deepness' => 2)); 
     570                if(!empty($taskToActivity)){ 
     571                    $activity = Controller::read(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), array('startTime', 'endTime', 'rangeStart', 'rangeEnd', 'allDay')); 
     572                    $isAllDay = 1; 
     573 
     574                    if(!empty($activity)){ 
     575                        $start = $params['startTime']; 
     576                        $end = $params['endTime']; 
     577                        foreach($taskToActivity as $t){ 
     578                        if($t['task']['id'] != $params['id']){ 
     579                            $start = $t['task']['startTime'] < $start ? $t['task']['startTime'] : $start; 
     580                            $end = $t['task']['endTime'] > $end ? $t['task']['endTime'] : $end; 
     581                            $isAllDay = (($isAllDay == 1) && ($t['task']['allDay'] == '1')) ? 1 : 0; 
     582                        } 
     583                        } 
     584 
     585                        if($event['allDay'] == '0' || (isset($params['allDay']) && $params['allDay'] == '0')) 
     586                            $isAllDay = 0; 
     587 
     588                        $toUpdate = array(); 
     589 
     590                        if($start != $activity['startTime']) 
     591                            $toUpdate['startTime'] = $start; 
     592 
     593                        if($end != $activity['endTime']){ 
     594                            $toUpdate['endTime'] = $end; 
     595                            $toUpdate['due'] = $end; 
     596                        } 
     597 
     598                        if($isAllDay != $activity['allDay']) 
     599                            $toUpdate['allDay'] = $isAllDay; 
     600 
     601                        if(!empty($toUpdate)) 
     602                            Controller::update(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), $toUpdate); 
     603                    } 
     604                } 
     605            } 
     606 
     607            unset($criteria['historic']['endTime']); 
     608            unset($criteria['historic']['rangeEnd']); 
     609            unset($criteria['historic']['rangeStart']); 
     610            unset($criteria['historic']['class']); 
     611            unset($criteria['historic']['type']); 
     612            unset($criteria['historic']['allDay']); 
     613            unset($criteria['historic']['id']); 
    599614        } 
    600615    } 
     
    847862                $date->setTimezone( new DateTimeZone($currentTimezone)); 
    848863                $DayLigth['event']['endTime'] = ($date->getTimestamp() + $date->getOffset()).'000'; 
     864 
     865                if(isset($v['due']) && $v['due'] != '0'){ 
     866                    $date->setTimestamp((int) ($v['due'] / 1000)); 
     867                    $DayLigth['event']['due'] = ($date->getTimestamp() + $date->getOffset()).'000'; 
     868                }else{ 
     869                    $DayLigth['event']['due'] = $v['due']; 
     870                } 
     871 
    849872 
    850873                $date->setTimezone( new DateTimeZone($currentTimezone)); 
  • trunk/prototype/modules/calendar/js/activity.helpers.js

    r7518 r7680  
    262262                        [$('div.new-activity-win.active select[name="groupFilter"]').val()] 
    263263                    ] 
    264                 ], criteria: {'filterTasks': true} 
     264                ], criteria: {filterTasks: true, deepness: 2} 
    265265        }; 
    266266    if($(this).val() != ''){ 
     
    270270                           ]); 
    271271    } 
    272  
    273272    var result = DataLayer.get('schedulable:taskSearch', filter, true) 
    274273        /** 
  • trunk/prototype/modules/calendar/js/calendar.codecs.js

    r7604 r7680  
    826826        percentage: (objEvent.percentage) ? objEvent.percentage : '0', 
    827827        priority: objEvent.priority, 
    828         startDate: new Date( parseInt(objEvent.startTime) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 
    829         startHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(objEvent.startTime)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'startTime'), User.preferences.hourFormat), 
    830         endDate: new Date( parseInt(objEvent.endTime) - (!!parseInt(objEvent.allDay) ? 86400000 : 0)  ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 
    831         endHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date(parseInt(objEvent.endTime)),  objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'endTime'), User.preferences.hourFormat), 
    832         dueDate: (!objEvent.due || objEvent.due == '' || objEvent.due == '0') ? '' : new Date( parseInt(objEvent.due) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 
    833         dueTime: (!objEvent.due || objEvent.due == '' || objEvent.due == '0') ? '' : dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(objEvent.due)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'startTime'), User.preferences.hourFormat), 
     828 
     829        startDate: Timezone.getDate( (objEvent.DayLigth ? objEvent.DayLigth.event.startTime : objEvent.startTime), 'start', objEvent.allDay ), 
     830        startHour: objEvent.DayLigth ? Timezone.getHour( objEvent.DayLigth.event.startTime) : Timezone.formateHour( objEvent.startTime ), 
     831        endDate: Timezone.getDate( (objEvent.DayLigth ? objEvent.DayLigth.event.endTime : objEvent.endTime), 'end', objEvent.allDay ), 
     832        endHour: objEvent.DayLigth ? Timezone.getHour( objEvent.DayLigth.event.endTime) : Timezone.formateHour( objEvent.endTime ), 
     833        dueDate: objEvent.DayLigth ? (objEvent.DayLigth.event.due != '0' ? Timezone.getDate( objEvent.DayLigth.event.due , 'end', objEvent.allDay ) : '') : (objEvent.due && objEvent.due != '' ? Timezone.getDate( objEvent.due , 'end', objEvent.allDay ) : ''), 
     834        dueTime: objEvent.DayLigth ? (objEvent.DayLigth.event.due != '0' ? Timezone.getHour( objEvent.DayLigth.event.due) : '') : (objEvent.due && objEvent.due != '' ? Timezone.formateHour( objEvent.due ) : ''), 
     835 
    834836        allDay: !!parseInt( objEvent.allDay ), 
    835837            historic: !!objEvent.historic ? decodeHistoric(objEvent) : [] , 
     
    10301032            summary: objEvent.summary, 
    10311033            description: !!objEvent.summary ? objEvent.summary : objEvent.description, 
    1032             startDate: new Date( parseInt(objEvent.startTime) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 
    1033             startHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(objEvent.startTime)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'startTime'), User.preferences.hourFormat), 
    1034             endDate: new Date( parseInt(objEvent.endTime) - (!!parseInt(objEvent.allDay) ? 86400000 : 0)  ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 
    1035             endHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date(parseInt(objEvent.endTime)),  objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'endTime'), User.preferences.hourFormat), 
    1036             dueDate: (!objEvent.due || objEvent.due == '' || objEvent.due == '0') ? '' : new Date( parseInt(objEvent.due) ).setTimezoneOffset( Timezone.timezone( objEvent.timezone ) ).toString( User.preferences.dateFormat ), 
    1037             dueTime: (!objEvent.due || objEvent.due == '' || objEvent.due == '0') ? '' : dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(objEvent.due)), objEvent.timezone, objEvent.calendar, objEvent.DayLigth, 'startTime'), User.preferences.hourFormat), 
     1034 
     1035 
     1036            startDate: Timezone.getDate( (objEvent.DayLigth ? objEvent.DayLigth.event.startTime : objEvent.startTime), 'start', objEvent.allDay ), 
     1037            startHour: objEvent.DayLigth ? Timezone.getHour( objEvent.DayLigth.event.startTime) : Timezone.formateHour( objEvent.startTime ), 
     1038            endDate: Timezone.getDate( (objEvent.DayLigth ? objEvent.DayLigth.event.endTime : objEvent.endTime), 'end', objEvent.allDay ), 
     1039            endHour: objEvent.DayLigth ? Timezone.getHour( objEvent.DayLigth.event.endTime) : Timezone.formateHour( objEvent.endTime ), 
     1040            dueDate: objEvent.DayLigth ? (objEvent.DayLigth.event.due != '0' ? Timezone.getDate( objEvent.DayLigth.event.due , 'end', objEvent.allDay ) : '') : (objEvent.due && objEvent.due != '' ? Timezone.getDate( objEvent.due , 'end', objEvent.allDay ) : ''), 
     1041            dueTime: objEvent.DayLigth ? (objEvent.DayLigth.event.due != '0' ? Timezone.getHour( objEvent.DayLigth.event.due) : '') : (objEvent.due && objEvent.due != '' ? Timezone.formateHour( objEvent.due ) : ''), 
     1042 
    10381043            allDay: !!parseInt( objEvent.allDay ), 
    10391044            percentage: (objEvent.percentage) ? objEvent.percentage : '0', 
     
    11561161                    taskToActivity: taskToActivity.id, 
    11571162                    allDay: !!parseInt(task.allDay), 
    1158                     dueDate: (!task.due || task.due == '' || task.due == '0') ? '' : new Date( parseInt(task.due) ).setTimezoneOffset( Timezone.timezone( task.timezone ) ).toString( User.preferences.dateFormat ), 
    1159                     dueTime: (!task.due || task.due == '' || task.due == '0') ? '' : dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(task.due)), task.timezone, obj.calendar, obj.DayLigth, 'startTime'), User.preferences.hourFormat), 
    1160                     startDate: new Date( parseInt(task.startTime) ).setTimezoneOffset( Timezone.timezone( task.timezone ) ).toString( User.preferences.dateFormat ), 
    1161                     startHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date( parseInt(task.startTime)), task.timezone, task.calendar, obj.DayLigth, 'startTime'), User.preferences.hourFormat), 
    1162                     endDate: new Date( parseInt(task.endTime) - (!!parseInt(task.allDay) ? 86400000 : 0)  ).setTimezoneOffset( Timezone.timezone( task.timezone ) ).toString( User.preferences.dateFormat ), 
    1163                     endHour: dateCalendar.formatDate(Timezone.getDateEvent(new Date(parseInt(task.endTime)),  task.timezone, obj.calendar, obj.DayLigth, 'endTime'), User.preferences.hourFormat), 
     1163 
     1164                    startDate: Timezone.getDate( (task.DayLigth ? task.DayLigth.event.startTime : task.startTime), 'start', task.allDay ), 
     1165                    startHour: task.DayLigth ? Timezone.getHour( task.DayLigth.event.startTime) : Timezone.formateHour( task.startTime ), 
     1166                    endDate: Timezone.getDate( (task.DayLigth ? task.DayLigth.event.endTime : task.endTime), 'end', task.allDay ), 
     1167                    endHour: task.DayLigth ? Timezone.getHour( task.DayLigth.event.endTime) : Timezone.formateHour( task.endTime ), 
     1168                    dueDate: Timezone.getDate( (task.DayLigth ? task.DayLigth.event.due : task.due), 'end', task.allDay ), 
     1169                    dueTime: task.DayLigth ? Timezone.getHour( task.DayLigth.event.due) : Timezone.formateHour( task.due ), 
    11641170                                        status: task.status, 
    11651171                                        percentage: task.percentage, 
  • trunk/prototype/modules/calendar/js/timezone.js

    r7635 r7680  
    8080    getDate: function( time, rang, isAllDay){ 
    8181 
    82         return (new Date( parseInt( time ) - ((rang == 'end' && isAllDay && parseInt(isAllDay) == 1) ? 86400000 : 0) )).toString( User.preferences.dateFormat ); 
     82        return  Timezone.normalizeDate(new Date( parseInt( time ) - ((rang == 'end' && isAllDay && parseInt(isAllDay) == 1) ? 86400000 : 0)), false, true).toString( User.preferences.dateFormat ); 
    8383 
    8484    }, 
  • trunk/prototype/modules/calendar/templates/index.ejs

    r7646 r7680  
    1212<link rel="stylesheet" type="text/css" href="<?= MODULESURL ?>/css/reset.css" /> 
    1313<link rel='stylesheet' type='text/css' href='<?= PLUGINSURL ?>/fullcalendar/fullcalendar.css' /> 
    14 <!-- <link rel='stylesheet' type='text/css' href='<?= PLUGINSURL ?>/fullcalendar/fullcalendar.print.css' media='print' /> --> 
     14<link rel='stylesheet' type='text/css' href='<?= PLUGINSURL ?>/fullcalendar/fullcalendar.print.css' media='print' /> 
    1515<link rel='stylesheet' type='text/css' href='<?= PLUGINSURL ?>/jquery/jquery-ui.css'/> 
    1616<!--<link rel='stylesheet' type='text/css' href='<?= PLUGINSURL ?>/icalendar/jquery.icalendar.css'/>--> 
  • trunk/prototype/services/iCal.php

    r7660 r7680  
    18571857            $tzid = self::nomalizeTZID($tzid); 
    18581858 
    1859         if (isset($due['params']['VALUE']) && $due['params']['VALUE'] === 'DATE') 
     1859        if (isset($due['params']['VALUE']) && $due['params']['VALUE'] === 'DATE' && isset($params['calendar_timezone'])) 
    18601860            $schedulable['due'] = self::date2timestamp($due['value']) - self::_getTzOffset('UTC', $schedulable['timezone'], '@' . self::date2timestamp($due['value'])) . '000'; 
    1861         else if ($tzid && !isset($endTime['value']['tz'])) /* Caso não tenha um tz na data mais exista um parametro TZID deve ser aplicado o timezone do TZID a data */ 
     1861        else if ($tzid && !isset($due['value']['tz'])) /* Caso não tenha um tz na data mais exista um parametro TZID deve ser aplicado o timezone do TZID a data */ 
    18621862            $schedulable['due'] = self::date2timestamp($due['value']) - self::_getTzOffset('UTC', $tzid, '@' . self::date2timestamp($due['value'])) . '000'; 
    18631863        else { 
Note: See TracChangeset for help on using the changeset viewer.