]> source.dussan.org Git - nextcloud-server.git/commitdiff
clean up events.php of calendar
authorGeorg Ehrke <dev@georgswebsite.de>
Sun, 8 Apr 2012 02:39:37 +0000 (22:39 -0400)
committerGeorg Ehrke <dev@georgswebsite.de>
Sun, 8 Apr 2012 02:39:37 +0000 (22:39 -0400)
apps/calendar/ajax/events.php

index 196b2c3394fa7be32daa6b8624d51d47a8de8200..21e816b12750af7706f2e2f655989f2d965efd5d 100755 (executable)
@@ -1,99 +1,26 @@
 <?php
 /**
- * Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de>
+ * Copyright (c) 2011, 2012 Georg Ehrke <ownclouddev at georgswebsite dot de>
  * This file is licensed under the Affero General Public License version 3 or
  * later.
  * See the COPYING-README file.
  */
 
 require_once ('../../../lib/base.php');
-require_once('when/When.php');
+require_once(OC::$THIRDPARTYROOT . 'when/When.php');
 
 OC_JSON::checkLoggedIn();
 OC_JSON::checkAppEnabled('calendar');
 
-if(version_compare(PHP_VERSION, '5.3.0', '>=')){
-       $start = DateTime::createFromFormat('U', $_GET['start']);
-       $end = DateTime::createFromFormat('U', $_GET['end']);
-}else{
-       $start = new DateTime('@' . $_GET['start']);
-       $end = new DateTime('@' . $_GET['end']);
-}
+$start = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['start']):new DateTime('@' . $_GET['start']);
+$end = (version_compare(PHP_VERSION, '5.3.0', '>='))?DateTime::createFromFormat('U', $_GET['end']):new DateTime('@' . $_GET['end']);
 
-if($_GET['calendar_id'] == 'shared_rw' || $_GET['calendar_id'] == 'shared_r'){
-       $calendars = OC_Calendar_Share::allSharedwithuser(OC_USER::getUser(), OC_Calendar_Share::CALENDAR, 1, ($_GET['calendar_id'] == 'shared_rw')?'rw':'r');
-       $events = array();
-       foreach($calendars as $calendar){
-               $calendarevents = OC_Calendar_Object::allInPeriod($calendar['calendarid'], $start, $end);
-               $events = array_merge($events, $calendarevents);
-       }
-}else{
-       $calendar_id = $_GET['calendar_id'];
-       if (is_numeric($calendar_id)) {
-               $calendar = OC_Calendar_App::getCalendar($calendar_id);
-               OC_Response::enableCaching(0);
-               OC_Response::setETagHeader($calendar['ctag']);
-               $events = OC_Calendar_Object::allInPeriod($calendar_id, $start, $end);
-       } else {
-               $events = array();
-               OC_Hook::emit('OC_Calendar', 'getEvents', array('calendar_id' => $calendar_id, 'events' => &$events));
-       }
-}
+$events = OC_Calendar_App::getrequestedEvents($_GET['calendar_id'], $start, $end);
 
-$user_timezone = OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezone', date_default_timezone_get());
-$return = array();
+$output = array();
 foreach($events as $event){
-       if (isset($event['calendardata'])) {
-               $object = OC_VObject::parse($event['calendardata']);
-               $vevent = $object->VEVENT;
-       } else {
-               $vevent = $event['vevent'];
-       }
-
-       $return_event = OC_Calendar_App::prepareForOutput($event, $vevent);
-
-       $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){
-               $return_event['allDay'] = true;
-       }else{
-               $return_event['allDay'] = false;
-               $start_dt->setTimezone(new DateTimeZone($user_timezone));
-               $end_dt->setTimezone(new DateTimeZone($user_timezone));
-       }
-       if($event['repeating'] == 1){
-               $duration = (double) $end_dt->format('U') - (double) $start_dt->format('U');
-               $r = new When();
-               $r->recur($start_dt)->rrule((string) $vevent->RRULE);
-               while($result = $r->next()){
-                       if($result < $start){
-                               continue;
-                       }
-                       if($result > $end){
-                               break;
-                       }
-                       if($return_event['allDay'] == true){
-                               $return_event['start'] = $result->format('Y-m-d');
-                               $return_event['end'] = date('Y-m-d', $result->format('U') + --$duration);
-                       }else{
-                               $return_event['start'] = $result->format('Y-m-d H:i:s');
-                               $return_event['end'] = date('Y-m-d H:i:s', $result->format('U') + $duration);
-                       }
-                       $return[] = $return_event;
-               }
-       }else{
-               if($return_event['allDay'] == true){
-                       $return_event['start'] = $start_dt->format('Y-m-d');
-                       $end_dt->modify('-1 sec');
-                       $return_event['end'] = $end_dt->format('Y-m-d');
-               }else{
-                       $return_event['start'] = $start_dt->format('Y-m-d H:i:s');
-                       $return_event['end'] = $end_dt->format('Y-m-d H:i:s');
-               }
-               $return[] = $return_event;
-       }
+       $output[] = OC_Calendar_App::generateEventOutput($event, $start, $end);
 }
-OC_JSON::encodedPrint($return);
-?>
+
+OC_JSON::encodedPrint($output);
+?>
\ No newline at end of file