summaryrefslogtreecommitdiffstats
path: root/apps/calendar
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2011-09-16 00:08:15 +0200
committerBart Visscher <bartv@thisnet.nl>2011-09-16 00:21:51 +0200
commit2353f02d9a3d7ba3465ca918b71b34ffd0747d3f (patch)
treefcfc91b8420958a33940a484f45333ccc176ecb0 /apps/calendar
parent15559d3e8889e763f49a66e2df15169ae3164577 (diff)
downloadnextcloud-server-2353f02d9a3d7ba3465ca918b71b34ffd0747d3f.tar.gz
nextcloud-server-2353f02d9a3d7ba3465ca918b71b34ffd0747d3f.zip
Fixes for Calendar app
Diffstat (limited to 'apps/calendar')
-rw-r--r--apps/calendar/ajax/editevent.php10
-rw-r--r--apps/calendar/ajax/editeventform.php15
-rw-r--r--apps/calendar/lib/object.php12
-rw-r--r--apps/calendar/templates/part.getcal.php6
4 files changed, 41 insertions, 2 deletions
diff --git a/apps/calendar/ajax/editevent.php b/apps/calendar/ajax/editevent.php
index 54a9897b959..d8dae7a324b 100644
--- a/apps/calendar/ajax/editevent.php
+++ b/apps/calendar/ajax/editevent.php
@@ -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"));
}
?>
diff --git a/apps/calendar/ajax/editeventform.php b/apps/calendar/ajax/editeventform.php
index 132bb4ae74c..3b8a30f70fc 100644
--- a/apps/calendar/ajax/editeventform.php
+++ b/apps/calendar/ajax/editeventform.php
@@ -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 : '';
diff --git a/apps/calendar/lib/object.php b/apps/calendar/lib/object.php
index ab29307ce13..52fa391f1f8 100644
--- a/apps/calendar/lib/object.php
+++ b/apps/calendar/lib/object.php
@@ -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);
}
diff --git a/apps/calendar/templates/part.getcal.php b/apps/calendar/templates/part.getcal.php
index 69cd09dafee..aaa43c49507 100644
--- a/apps/calendar/templates/part.getcal.php
+++ b/apps/calendar/templates/part.getcal.php
@@ -13,7 +13,11 @@
* 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");