some little fixes for repeating events caching

remotes/origin/stable45
Georg Ehrke 13 years ago
parent beed6e0f0e
commit 13aad8f06d
  1. 6
      apps/calendar/lib/app.php
  2. 10
      apps/calendar/lib/object.php
  3. 6
      apps/calendar/lib/repeat.php

@ -399,11 +399,11 @@ class OC_Calendar_App{
}
}else{
$object->expand($start, $end);
foreach($object->getComponents() as $vevent){
if(!($vevent instanceof Sabre_VObject_Component_VEvent)){
foreach($object->getComponents() as $singleevent){
if(!($singleevent instanceof Sabre_VObject_Component_VEvent)){
continue;
}
$dynamicoutput = OC_Calendar_Object::generateStartEndDate($vevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($vevent), self::$tz);
$dynamicoutput = OC_Calendar_Object::generateStartEndDate($singleevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($singleevent), $allday, self::$tz);
$return[] = array_merge($staticoutput, $dynamicoutput);
}
}

@ -304,8 +304,7 @@ class OC_Calendar_Object{
return date('Y-m-d H:i', $datetime->format('U') - $datetime->getOffset());
}
public static function getDTEndFromVEvent($vevent)
{
public static function getDTEndFromVEvent($vevent){
if ($vevent->DTEND) {
$dtend = $vevent->DTEND;
}else{
@ -808,13 +807,16 @@ class OC_Calendar_Object{
return ($event['repeating'] == 1)?true:false;
}
public static function generateStartEndDate($dtstart, $dtend, $tz){
public static function generateStartEndDate($dtstart, $dtend, $allday, $tz){
$start_dt = $dtstart->getDateTime();
$end_dt = $dtend->getDateTime();
$return = array();
if($allday){
$return['start'] = $start_dt->format('Y-m-d');
$end_dt->modify('-1 hour');
$end_dt->modify('-1 day');
while($start_dt->format('U') >= $end_dt->format('U')){
$end_dt->modify('+1 day');
}
$return['end'] = $end_dt->format('Y-m-d');
}else{
$start_dt->setTimezone(new DateTimeZone($tz));

@ -98,7 +98,7 @@ class OC_Calendar_Repeat{
if(!($vevent instanceof Sabre_VObject_Component_VEvent)){
continue;
}
$startenddate = OC_Calendar_Object::generateStartEndDate($vevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($vevent), 'UTC');
$startenddate = OC_Calendar_Object::generateStartEndDate($vevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($vevent), ($vevent->DTSTART->getDateType() == Sabre_VObject_Element_DateTime::DATE)?true:false, 'UTC');
$stmt = OCP\DB::prepare('INSERT INTO *PREFIX*calendar_repeat (eventid,calid,startdate,enddate) VALUES(?,?,?,?)');
$stmt->execute(array($id,OC_Calendar_Object::getCalendarid($id),$startenddate['start'],$startenddate['end']));
}
@ -111,8 +111,8 @@ class OC_Calendar_Repeat{
*/
public static function generateCalendar($id){
$allobjects = OC_Calendar_Object::all($id);
foreach($allobjects['id'] as $eventid){
self::generate($eventid);
foreach($allobjects as $event){
self::generate($event['id']);
}
return true;
}

Loading…
Cancel
Save