]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fixes for Calendar app
authorBart Visscher <bartv@thisnet.nl>
Thu, 15 Sep 2011 22:08:15 +0000 (00:08 +0200)
committerBart Visscher <bartv@thisnet.nl>
Thu, 15 Sep 2011 22:21:51 +0000 (00:21 +0200)
apps/calendar/ajax/editevent.php
apps/calendar/ajax/editeventform.php
apps/calendar/lib/object.php
apps/calendar/templates/part.getcal.php

index 54a9897b9590701ef7a2fee8ba228235385ac272..d8dae7a324ba649d376ccd22005ee4378d9f8d14 100644 (file)
@@ -29,15 +29,25 @@ if($errarr){
        exit;
 }else{
        $id = $_POST['id'];
+       $cal = $_POST['calendar'];
        $data = OC_Calendar_Object::find($id);
        if (!$data)
        {
                echo json_encode(array("error"=>"true"));
                exit;
        }
+       $calendar = OC_Calendar_Calendar::findCalendar($data['calendarid']);
+       if($calendar['userid'] != OC_User::getUser()){
+               echo json_encode(array("error"=>"true"));
+               exit;
+       }
        $vcalendar = Sabre_VObject_Reader::read($data['calendardata']);
        OC_Calendar_Object::updateVCalendarFromRequest($_POST, $vcalendar);
        $result = OC_Calendar_Object::edit($id, $vcalendar->serialize());
+       if ($data['calendarid'] != $cal) {
+               $calendar = OC_Calendar_Calendar::findCalendar($request['calendar']);
+               OC_Calendar_Object::moveToCalendar($id, $cal);
+       }
        echo json_encode(array("success"=>"true"));
 }
 ?> 
index 132bb4ae74c9e64f1b321a5b8090b8b564ffbc25..3b8a30f70fccfc16947b841a6d73898d44eb3aaf 100644 (file)
@@ -26,6 +26,11 @@ $repeat_options = OC_Calendar_Object::getRepeatOptions($l10n);
 
 $id = $_GET['id'];
 $data = OC_Calendar_Object::find($id);
+$calendar = OC_Calendar_Calendar::findCalendar($data['calendarid']);
+if($calendar['userid'] != OC_User::getUser()){
+               echo $l10n->t('Wrong calendar');
+               exit;
+}
 $object = Sabre_VObject_Reader::read($data['calendardata']);
 $vevent = $object->VEVENT;
 $dtstart = $vevent->DTSTART;
@@ -38,11 +43,19 @@ switch($dtstart->getDateType()) {
                $endtime = $dtend->getDateTime()->format('H:i');
                $allday = false;
                break;
+       case Sabre_VObject_Element_DateTime::DATE:
+               $startdate = $dtstart->getDateTime()->format('d-m-Y');
+               $starttime = '';
+               $dtend->getDateTime()->modify('-1 day');
+               $enddate = $dtend->getDateTime()->format('d-m-Y');
+               $endtime = '';
+               $allday = true;
+               break;
 }
 
 $summary = isset($vevent->SUMMARY) ? $vevent->SUMMARY->value : '';
 $location = isset($vevent->LOCATION) ? $vevent->LOCATION->value : '';
-$category = isset($vevent->CATEGORY) ? $vevent->CATEGORY->value : '';
+$category = isset($vevent->CATEGORIES) ? $vevent->CATEGORIES->value : '';
 $repeat = isset($vevent->CATEGORY) ? $vevent->CATEGORY->value : '';
 $description = isset($vevent->DESCRIPTION) ? $vevent->DESCRIPTION->value : '';
 
index ab29307ce13ac17b4fedc0189e3509729c3303d7..52fa391f1f8b2bce40c0db0c1c4e5c558c0abc51 100644 (file)
@@ -180,6 +180,15 @@ class OC_Calendar_Object{
                return true;
        }
 
+       public static function moveToCalendar($id, $calendarid){
+               $stmt = OC_DB::prepare( 'UPDATE *PREFIX*calendar_objects SET calendarid=? WHERE id = ?' );
+               $result = $stmt->execute(array($calendarid,$id));
+
+               OC_Calendar_Calendar::touchCalendar($id);
+
+               return true;
+       }
+
        /**
         * @brief Creates a UID
         * @return string
@@ -415,6 +424,9 @@ class OC_Calendar_Object{
                $created->setDateTime($now, Sabre_VObject_Element_DateTime::UTC);
                $vevent->add($created);
 
+               $uid = self::createUID();
+               $vevent->add('UID',$uid);
+
                return self::updateVCalendarFromRequest($request, $vcalendar);
        }
 
index 69cd09dafeea6ee405b79bcf26ae27c4655748a3..aaa43c4950709185040d42eb464ef91400e23631 100644 (file)
  * MA 02111-1307  USA                             *
  *************************************************/
 $calendars = OC_Calendar_Calendar::allCalendars(OC_User::getUser(), 1);
-$events = OC_Calendar_Object::all($calendars[0]['id']);
+$events = array();
+foreach($calendars as $calendar) {
+       $tmp = OC_Calendar_Object::all($calendar['id']);
+       $events = array_merge($events, $tmp);
+}
 $select_year = $_GET["year"];
 $return_events = array();
 $user_timezone = OC_Preferences::getValue(OC_USER::getUser(), "calendar", "timezone", "Europe/London");