summaryrefslogtreecommitdiffstats
path: root/apps/calendar
diff options
context:
space:
mode:
authorGeorg Ehrke <dev@georgswebsite.de>2012-06-18 14:47:09 +0200
committerGeorg Ehrke <dev@georgswebsite.de>2012-06-18 14:47:09 +0200
commite3b58f6783aa173ceb9c26476ddf01dc570fc5e8 (patch)
tree528d75bbe53bd8d1092f19245d78bb140407bf31 /apps/calendar
parent6b6d3d68d42bb1830c12c4ed5b23e1ddf297b790 (diff)
downloadnextcloud-server-e3b58f6783aa173ceb9c26476ddf01dc570fc5e8.tar.gz
nextcloud-server-e3b58f6783aa173ceb9c26476ddf01dc570fc5e8.zip
Revert "create OC_Calendar_Object::generateStartEndDate function"
This reverts commit aa7ce480f4c83f6430eb019cfa172553b5578769.
Diffstat (limited to 'apps/calendar')
-rw-r--r--apps/calendar/lib/app.php30
-rw-r--r--apps/calendar/lib/object.php17
-rw-r--r--apps/calendar/lib/repeat.php19
3 files changed, 44 insertions, 22 deletions
diff --git a/apps/calendar/lib/app.php b/apps/calendar/lib/app.php
index e3be8c8428f..17c23f4ea32 100644
--- a/apps/calendar/lib/app.php
+++ b/apps/calendar/lib/app.php
@@ -400,10 +400,36 @@ class OC_Calendar_App{
}else{
$object->expand($start, $end);
foreach($object->getComponents() as $vevent){
- if(!($vevent instanceof Sabre_VObject_Component_VEvent)){
+ if(get_class($vevent) != 'Sabre_VObject_Component_VEvent'){
continue;
}
- $dynamicoutput = OC_Calendar_Object::generateStartEndDate($vevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($vevent), self::$tz);
+ $dynamicoutput = array();
+ $dtstart = $vevent->DTSTART;
+ $start_dt = $dtstart->getDateTime();
+ $dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
+ $end_dt = $dtend->getDateTime();
+
+ if($allday){
+ $dynamicoutput['start'] = $start_dt->format('Y-m-d');
+ $end_dt->modify('-1 sec');
+ $dynamicoutput['end'] = $end_dt->format('Y-m-d');
+ }else{
+ $start_dt->setTimezone(new DateTimeZone(self::$tz));
+ $end_dt->setTimezone(new DateTimeZone(self::$tz));
+ $dynamicoutput['start'] = $start_dt->format('Y-m-d H:i:s');
+ $dynamicoutput['end'] = $end_dt->format('Y-m-d H:i:s');
+ }
+
+ // Handle exceptions to recurring events
+ /*$exceptionDateObjects = $vevent->select('EXDATE');
+ $exceptionDateMap = Array();
+ foreach ($exceptionDateObjects as $exceptionObject) {
+ foreach($exceptionObject->getDateTimes() as $datetime) {
+ $ts = $datetime->getTimestamp();
+ $exceptionDateMap[idate('Y',$ts)][idate('m', $ts)][idate('d', $ts)] = true;
+ }
+ }*/
+
$return[] = array_merge($staticoutput, $dynamicoutput);
}
}
diff --git a/apps/calendar/lib/object.php b/apps/calendar/lib/object.php
index 07f2afb7b57..ba3fa814f36 100644
--- a/apps/calendar/lib/object.php
+++ b/apps/calendar/lib/object.php
@@ -807,21 +807,4 @@ class OC_Calendar_Object{
$event = self::find($id);
return ($event['repeating'] == 1)?true:false;
}
-
- public static function generateStartEndDate($dtstart, $dtend, $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');
- $return['end'] = $end_dt->format('Y-m-d');
- }else{
- $start_dt->setTimezone(new DateTimeZone($tz));
- $end_dt->setTimezone(new DateTimeZone($tz));
- $return['start'] = $start_dt->format('Y-m-d H:i:s');
- $return['end'] = $end_dt->format('Y-m-d H:i:s');
- }
- return $return;
- }
}
diff --git a/apps/calendar/lib/repeat.php b/apps/calendar/lib/repeat.php
index 6976378ebda..4b9cbdcd4ba 100644
--- a/apps/calendar/lib/repeat.php
+++ b/apps/calendar/lib/repeat.php
@@ -95,12 +95,25 @@ class OC_Calendar_Repeat{
$end->modify('+5 years');
$object->expand($start, $end);
foreach($object->getComponents() as $vevent){
- if(!($vevent instanceof Sabre_VObject_Component_VEvent)){
+ if(get_class($vevent) != 'Sabre_VObject_Component_VEvent'){
continue;
}
- $startenddate = OC_Calendar_Object::generateStartEndDate($vevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($vevent), 'UTC');
+ $dtstart = $vevent->DTSTART;
+ $start_dt = $dtstart->getDateTime();
+ $dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
+ $end_dt = $dtend->getDateTime();
+ if ($dtstart->getDateType() == Sabre_VObject_Element_DateTime::DATE){
+ $startdate = $start_dt->format('Y-m-d');
+ $end_dt->modify('-1 sec');
+ $enddate = $end_dt->format('Y-m-d');
+ }else{
+ $start_dt->setTimezone(new DateTimeZone('UTC'));
+ $end_dt->setTimezone(new DateTimeZone('UTC'));
+ $startdate = $start_dt->format('Y-m-d H:i:s');
+ $enddate = $end_dt->format('Y-m-d H:i:s');
+ }
$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']));
+ $stmt->execute(array($id,OC_Calendar_Object::getCalendarid($id),$startdate,$enddate));
}
return true;
}