Changeset 6190
- Timestamp:
- 05/15/12 14:33:22 (12 years ago)
- Location:
- trunk/prototype
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/config/schedulable.ini
r5715 r6190 23 23 [before.update] 24 24 updateCalendar = modules/calendar/interceptors/DBMapping.php 25 encodeUpdateSchedulable = modules/calendar/interceptors/DBMapping.php 25 26 updateEvent = modules/calendar/interceptors/Notifications.php 26 encodeUpdateSchedulable = modules/calendar/interceptors/DBMapping.php 27 27 28 28 29 [after.update] -
trunk/prototype/modules/calendar/interceptors/DBMapping.php
r6183 r6190 8 8 class DBMapping extends Helpers { 9 9 10 public function encodeCreateSchedulable(&$uri, &$params, &$criteria, $original) { 11 self::encodeSchedulable($params); 12 } 13 14 static function encodeSchedulable(&$params) { 10 static function encodeCreateSchedulable(&$uri, &$params, &$criteria, $original) { 15 11 $params['type_id'] = EVENT_ID; 16 12 … … 24 20 $params['endTime'] = $params['endTime'] + 86400000; 25 21 } 26 // if( !isset( $new['repeat'] )) 27 // $new['range_end'] = '7287926400'; // 12/12/2200 28 // else 22 29 23 $params['rangeEnd'] = $params['endTime']; 30 24 $params['rangeStart'] = $params['startTime']; … … 116 110 public function findSchedulable(&$uri, &$params, &$criteria, $original) { 117 111 if (isset($criteria['filter'][2][1]) && $criteria['filter'][2][1] == 'calendar') { 118 $start = array( $criteria['filter'][1][1][1][2] , $criteria['filter'][1][2][1][2], $criteria['filter'][1][3][1][2] ); 119 $end = array( $criteria['filter'][1][1][2][2] , $criteria['filter'][1][2][2][2], $criteria['filter'][1][3][2][2] ); 120 121 $ids = array(); 122 $occ = array(); 123 124 if ($occurrences = self::checkOccurrences($start[0], $end[0], $criteria['filter'][2][2])) 125 foreach ($occurrences as $id => $occurrence) { 126 $ids[] = $id; 127 $occ[] = $occurrence; 128 } 129 130 $queryRange = '((range_end >= \'' . $start[0] . '\' AND range_end <= \'' . $end[0] . '\') OR ' 131 .'(range_start >= \'' . $start[1] . '\' AND range_start <= \'' . $end[1] . '\') OR ' 132 .'(range_start <= \'' . $start[2] . '\' AND range_end >= \'' . $end[2] . '\')) '; 133 112 134 113 $sql = ' SELECT calendar_object.id as id ,calendar_object.cal_uid as "uid", calendar_object.type_id as "type", ' 135 114 .'calendar_object.dtstart as "startTime", calendar_object.summary as "summary", ' … … 142 121 .'calendar_object.tzid as "timezone" ,calendar_to_calendar_object.calendar_id as ' 143 122 .'calendar FROM calendar_to_calendar_object , calendar_object ' 144 .'WHERE ( '. $queryRange .' ' 145 .'AND calendar_to_calendar_object.calendar_id IN (\'' . implode('\',\'', $criteria['filter'][2][2]) . '\')) ' 123 .'WHERE ( calendar_to_calendar_object.calendar_id IN (\'' . implode('\',\'', $criteria['filter'][2][2]) . '\')) ' 146 124 .'AND calendar_to_calendar_object.calendar_object_id = calendar_object.id' . (!empty($ids) ? ' ' 147 .'AND calendar_object.id NOT IN (\'' . implode('\',\'', $ids) . '\')' : ''); 148 149 150 $params = Controller::service('PostgreSQL')->execResultSql($sql); 151 152 $params = array_merge($params, $occ); 125 .'AND calendar_object.id NOT IN (\'' . implode('\',\'', $ids) . '\') ' : ' '); 126 127 if(isset($criteria['searchEvent']) && $criteria['searchEvent']){ 128 $where = 'AND (((upper("summary") like upper(\'%'.$criteria['filter'][1][1][2].'%\') OR upper("description") like upper(\'%'.$criteria['filter'][1][2][2].'%\')))) ORDER BY dtstart LIMIT '.$criteria['limit'].' OFFSET '.$criteria['offset'].' '; 129 $params = Controller::service('PostgreSQL')->execResultSql($sql.$where); 130 131 }else{ 132 $start = array( $criteria['filter'][1][1][1][2] , $criteria['filter'][1][2][1][2], $criteria['filter'][1][3][1][2] ); 133 $end = array( $criteria['filter'][1][1][2][2] , $criteria['filter'][1][2][2][2], $criteria['filter'][1][3][2][2] ); 134 135 $ids = array(); 136 $occ = array(); 137 138 if ($occurrences = self::checkOccurrences($start[0], $end[0], $criteria['filter'][2][2])) 139 foreach ($occurrences as $id => $occurrence) { 140 $ids[] = $id; 141 $occ[] = $occurrence; 142 } 143 144 $where = 'AND ((range_end >= \'' . $start[0] . '\' AND range_end <= \'' . $end[0] . '\') OR ' 145 .'(range_start >= \'' . $start[1] . '\' AND range_start <= \'' . $end[1] . '\') OR ' 146 .'(range_start <= \'' . $start[2] . '\' AND range_end >= \'' . $end[2] . '\')) '; 147 148 $params = Controller::service('PostgreSQL')->execResultSql($sql.$where); 149 $params = array_merge($params, $occ); 150 } 153 151 $params = self::deepnessFindEvent($uri, $params, $criteria, $original); 154 155 152 return false; 156 153 } … … 391 388 public function encodeUpdateSchedulable(&$uri, &$params, &$criteria, $original) { 392 389 393 $event = Controller:: find(array('concept' => 'schedulable', array('timezone', 'allDay'), 'id' => $params['id']));394 390 $event = Controller::read(array('concept' => 'schedulable', 'id' => $params['id'])); 391 395 392 if (isset($params['startTime'])) { 396 393 397 394 if (!is_numeric($params['startTime'])) 398 $params['startTime'] = s trtotime($params['startTime'] . ' ' . $event['timezone']) . '000';395 $params['startTime'] = self::parseTimeDate($params['startTime'], $event['timezone']); 399 396 400 397 $params['rangeStart'] = $params['startTime']; … … 402 399 403 400 if (!is_numeric($params['endTime'])) { 404 $params['endTime'] = s trtotime($params['endTime'] . ' ' . $event['timezone']) . '000';405 406 if ($event['allDay'])407 401 $params['endTime'] = self::parseTimeDate($params['endTime'], $event['timezone']); 402 403 if ((isset($params['allDay']) && $params['allDay']) || ( !isset($params['allDay']) && $event['allDay'])) 404 $params['endTime'] = $params['endTime'] + 86400000; 408 405 } 409 406 $params['rangeEnd'] = $params['endTime']; … … 688 685 689 686 $params = array(); 690 $notC = array();691 687 692 688 $al = Controller::service('PostgreSQL')->execSql("SELECT distinct co.id as \"id\", co.cal_uid as \"uid\", co.type_id as \"type\", co.dtstart as \"startTime\", co.summary as \"summary\", co.description as \"description\", co.dtend as \"endTime\", co.location as \"location\", co.allday as \"allDay\", co.transp as transparent, co.class_id as class, ". … … 699 695 700 696 if(is_array($al)) 701 foreach( $al as $v ){ 702 if($notC[$v['id']]) 703 continue; 704 705 $notC[$v['id']] = true; 697 foreach( $al as $v ) 706 698 $params[] = array('schedulable' => $v); 707 }699 708 700 else 709 701 $params = false; -
trunk/prototype/modules/calendar/interceptors/Notifications.php
r6184 r6190 498 498 * @access public 499 499 */ 500 public function updateEvent(&$uri, &$params, &$criteria, $original) {500 public function updateEvent(&$uri, $params, &$criteria, $original) { 501 501 $schedulableOld = Controller::read(array('concept' => 'schedulable', 'id' => $uri['id']), null, array('deepness' => '2')); 502 502 $schedulable = $schedulableOld; 503 503 $alt = false; 504 505 DBMapping::encodeSchedulable($params);506 504 507 505 foreach ($params as $i => $v) //Verifica se ouve alteração no evento … … 510 508 $alt = true; 511 509 } 512 self::lg( $schedulable, '$schedulable' ); 510 513 511 if (($alt === true) && (Config::regGet('noAlarm') === false) && (self::futureEvent($schedulable['startTime'], $schedulable['rangeEnd'], $schedulable['id']))) { 514 512 $method = 'REQUEST'; -
trunk/prototype/modules/calendar/js/helpers.js
r6151 r6190 2324 2324 if(!!$(currentView).find('.fc-calendar').length) 2325 2325 return; 2326 $(currentView+' .events-list.events-list-win.active').prepend($('.fc-header ').clone());2326 $(currentView+' .events-list.events-list-win.active').prepend($('.fc-header:first').clone()); 2327 2327 //Remove contudo nao utilizado 2328 2328 $(currentView+' .events-list.events-list-win.active .fc-header .fc-button-today').remove(); … … 2439 2439 filter: ['AND', ['OR', ["i*", "summary", keyword], ["i*", "description", keyword]], ['IN', 'calendar', selecteds]], 2440 2440 criteria: { 2441 searchEvent: true, 2441 2442 order: 'startTime', 2442 2443 offset: (25 * page_index),
Note: See TracChangeset
for help on using the changeset viewer.