summaryrefslogtreecommitdiffstats
path: root/apps/calendar/lib
diff options
context:
space:
mode:
Diffstat (limited to 'apps/calendar/lib')
-rw-r--r--apps/calendar/lib/app.php66
-rw-r--r--apps/calendar/lib/calendar.php41
-rw-r--r--apps/calendar/lib/export.php94
-rw-r--r--apps/calendar/lib/object.php174
-rw-r--r--apps/calendar/lib/repeat.php28
-rw-r--r--apps/calendar/lib/share.php134
6 files changed, 385 insertions, 152 deletions
diff --git a/apps/calendar/lib/app.php b/apps/calendar/lib/app.php
index 344c89f36b0..1a13f2958c0 100644
--- a/apps/calendar/lib/app.php
+++ b/apps/calendar/lib/app.php
@@ -13,22 +13,22 @@ OC_Calendar_App::$tz = OCP\Config::getUserValue(OCP\USER::getUser(), 'calendar',
class OC_Calendar_App{
const CALENDAR = 'calendar';
const EVENT = 'event';
- /*
+ /**
* @brief language object for calendar app
*/
public static $l10n;
- /*
+ /**
* @brief categories of the user
*/
protected static $categories = null;
- /*
+ /**
* @brief timezone of the user
*/
public static $tz;
- /*
+ /**
* @brief returns informations about a calendar
* @param int $id - id of the calendar
* @param bool $security - check access rights or not
@@ -53,7 +53,7 @@ class OC_Calendar_App{
return $calendar;
}
- /*
+ /**
* @brief returns informations about an event
* @param int $id - id of the event
* @param bool $security - check access rights or not
@@ -79,7 +79,7 @@ class OC_Calendar_App{
return $event;
}
- /*
+ /**
* @brief returns the parsed calendar data
* @param int $id - id of the event
* @param bool $security - check access rights or not
@@ -97,7 +97,7 @@ class OC_Calendar_App{
return $vobject;
}
- /*
+ /**
* @brief checks if an event was edited and dies if it was
* @param (object) $vevent - vevent object of the event
* @param (int) $lastmodified - time of last modification as unix timestamp
@@ -112,7 +112,7 @@ class OC_Calendar_App{
return true;
}
- /*
+ /**
* @brief returns the default categories of ownCloud
* @return (array) $categories
*/
@@ -136,7 +136,7 @@ class OC_Calendar_App{
);
}
- /*
+ /**
* @brief returns the vcategories object of the user
* @return (object) $vcategories
*/
@@ -147,7 +147,7 @@ class OC_Calendar_App{
return self::$categories;
}
- /*
+ /**
* @brief returns the categories of the vcategories object
* @return (array) $categories
*/
@@ -202,12 +202,16 @@ class OC_Calendar_App{
self::getVCategories()->loadFromVObject($object, true);
}
}
-
+
+ /**
+ * @brief returns the options for the repeat rule of an repeating event
+ * @return array - valid inputs for the repeat rule of an repeating event
+ */
public static function getRepeatOptions(){
return OC_Calendar_Object::getRepeatOptions(self::$l10n);
}
- /*
+ /**
* @brief returns the options for the end of an repeating event
* @return array - valid inputs for the end of an repeating events
*/
@@ -215,7 +219,7 @@ class OC_Calendar_App{
return OC_Calendar_Object::getEndOptions(self::$l10n);
}
- /*
+ /**
* @brief returns the options for an monthly repeating event
* @return array - valid inputs for monthly repeating events
*/
@@ -223,7 +227,7 @@ class OC_Calendar_App{
return OC_Calendar_Object::getMonthOptions(self::$l10n);
}
- /*
+ /**
* @brief returns the options for an weekly repeating event
* @return array - valid inputs for weekly repeating events
*/
@@ -231,7 +235,7 @@ class OC_Calendar_App{
return OC_Calendar_Object::getWeeklyOptions(self::$l10n);
}
- /*
+ /**
* @brief returns the options for an yearly repeating event
* @return array - valid inputs for yearly repeating events
*/
@@ -239,7 +243,7 @@ class OC_Calendar_App{
return OC_Calendar_Object::getYearOptions(self::$l10n);
}
- /*
+ /**
* @brief returns the options for an yearly repeating event which occurs on specific days of the year
* @return array - valid inputs for yearly repeating events
*/
@@ -247,7 +251,7 @@ class OC_Calendar_App{
return OC_Calendar_Object::getByYearDayOptions();
}
- /*
+ /**
* @brief returns the options for an yearly repeating event which occurs on specific month of the year
* @return array - valid inputs for yearly repeating events
*/
@@ -255,7 +259,7 @@ class OC_Calendar_App{
return OC_Calendar_Object::getByMonthOptions(self::$l10n);
}
- /*
+ /**
* @brief returns the options for an yearly repeating event which occurs on specific week numbers of the year
* @return array - valid inputs for yearly repeating events
*/
@@ -263,7 +267,7 @@ class OC_Calendar_App{
return OC_Calendar_Object::getByWeekNoOptions();
}
- /*
+ /**
* @brief returns the options for an yearly or monthly repeating event which occurs on specific days of the month
* @return array - valid inputs for yearly or monthly repeating events
*/
@@ -271,7 +275,7 @@ class OC_Calendar_App{
return OC_Calendar_Object::getByMonthDayOptions();
}
- /*
+ /**
* @brief returns the options for an monthly repeating event which occurs on specific weeks of the month
* @return array - valid inputs for monthly repeating events
*/
@@ -279,7 +283,7 @@ class OC_Calendar_App{
return OC_Calendar_Object::getWeekofMonth(self::$l10n);
}
- /*
+ /**
* @brief checks the access for a calendar / an event
* @param (int) $id - id of the calendar / event
* @param (string) $type - type of the id (calendar/event)
@@ -320,7 +324,7 @@ class OC_Calendar_App{
}
}
- /*
+ /**
* @brief analyses the parameter for calendar parameter and returns the objects
* @param (string) $calendarid - calendarid
* @param (int) $start - unixtimestamp of start
@@ -360,7 +364,7 @@ class OC_Calendar_App{
return $events;
}
- /*
+ /**
* @brief generates the output for an event which will be readable for our js
* @param (mixed) $event - event object / array
* @param (int) $start - DateTime object of start
@@ -368,12 +372,14 @@ class OC_Calendar_App{
* @return (array) $output - readable output
*/
public static function generateEventOutput($event, $start, $end){
- if(isset($event['calendardata'])){
- $object = OC_VObject::parse($event['calendardata']);
- $vevent = $object->VEVENT;
- }else{
- $vevent = $event['vevent'];
+ if(!isset($event['calendardata']) && !isset($event['vevent'])){
+ return false;
+ }
+ if(!isset($event['calendardata']) && isset($event['vevent'])){
+ $event['calendardata'] = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:ownCloud's Internal iCal System\n" . $event['vevent']->serialize() . "END:VCALENDAR";
}
+ $object = OC_VObject::parse($event['calendardata']);
+ $vevent = $object->VEVENT;
$return = array();
$id = $event['id'];
$allday = ($vevent->DTSTART->getDateType() == Sabre_VObject_Element_DateTime::DATE)?true:false;
@@ -404,7 +410,7 @@ class OC_Calendar_App{
$return[] = array_merge($staticoutput, $dynamicoutput);
}
}else{
- if(OC_Calendar_Object::isrepeating($id)){
+ if(OC_Calendar_Object::isrepeating($id) || $event['repeating'] == 1){
$object->expand($start, $end);
}
foreach($object->getComponents() as $singleevent){
@@ -412,7 +418,7 @@ class OC_Calendar_App{
continue;
}
$dynamicoutput = OC_Calendar_Object::generateStartEndDate($singleevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($singleevent), $allday, self::$tz);
- $return[] = array_merge($staticoutput, $dynamicoutput);
+ $return[] = array_merge($staticoutput, $dynamicoutput);
}
}
return $return;
diff --git a/apps/calendar/lib/calendar.php b/apps/calendar/lib/calendar.php
index 1bfab5cd645..128b55c48e9 100644
--- a/apps/calendar/lib/calendar.php
+++ b/apps/calendar/lib/calendar.php
@@ -5,24 +5,11 @@
* later.
* See the COPYING-README file.
*/
-/*
+/**
*
* The following SQL statement is just a help for developers and will not be
* executed!
*
- * CREATE TABLE calendar_objects (
- * id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
- * calendarid INTEGER UNSIGNED NOT NULL,
- * objecttype VARCHAR(40) NOT NULL,
- * startdate DATETIME,
- * enddate DATETIME,
- * repeating INT(1),
- * summary VARCHAR(255),
- * calendardata TEXT,
- * uri VARCHAR(100),
- * lastmodified INT(11)
- * );
- *
* CREATE TABLE calendar_calendars (
* id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
* userid VARCHAR(255),
@@ -35,6 +22,7 @@
* timezone TEXT,
* components VARCHAR(20)
* );
+ *
*/
/**
@@ -212,7 +200,20 @@ class OC_Calendar_Calendar{
return true;
}
-
+
+ /**
+ * @brief merges two calendars
+ * @param integer $id1
+ * @param integer $id2
+ * @return boolean
+ */
+ public static function mergeCalendar($id1, $id2){
+ $stmt = OCP\DB::prepare('UPDATE *PREFIX*calendar_objects SET calendarid = ? WHERE calendarid = ?');
+ $stmt->execute(array($id1, $id2));
+ self::touchCalendar($id1);
+ self::deleteCalendar($id2);
+ }
+
/**
* @brief Creates a URI for Calendar
* @param string $name name of the calendar
@@ -238,6 +239,11 @@ class OC_Calendar_Calendar{
list($prefix,$userid) = Sabre_DAV_URLUtil::splitPath($principaluri);
return $userid;
}
+
+ /**
+ * @brief returns the possible color for calendars
+ * @return array
+ */
public static function getCalendarColorOptions(){
return array(
'#ff0000', // "Red"
@@ -251,6 +257,11 @@ class OC_Calendar_Calendar{
);
}
+ /**
+ * @brief generates the Event Source Info for our JS
+ * @param array $calendar calendar data
+ * @return array
+ */
public static function getEventSourceInfo($calendar){
return array(
'url' => OCP\Util::linkTo('calendar', 'ajax/events.php').'?calendar_id='.$calendar['id'],
diff --git a/apps/calendar/lib/export.php b/apps/calendar/lib/export.php
new file mode 100644
index 00000000000..8f26891f366
--- /dev/null
+++ b/apps/calendar/lib/export.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Copyright (c) 2012 Georg Ehrke <ownclouddev@georgswebsite.de>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+/**
+ * This class does export and converts all times to UTC
+ */
+class OC_Calendar_Export{
+ /**
+ * @brief Use one of these constants as second parameter if you call OC_Calendar_Export::export()
+ */
+ const CALENDAR = 'calendar';
+ const EVENT = 'event';
+
+ /**
+ * @brief export a calendar or an event
+ * @param integer $id id of calendar / event
+ * @param string $type use OC_Calendar_Export constants
+ * @return string
+ */
+ public static function export($id, $type){
+ if($type == self::EVENT){
+ $return = self::event($id);
+ }else{
+ $return = self::calendar($id);
+ }
+ return self::fixLineBreaks($return);
+ }
+
+ /**
+ * @brief exports a calendar and convert all times to UTC
+ * @param integer $id id of the calendar
+ * @return string
+ */
+ private static function calendar($id){
+ $events = OC_Calendar_Object::all($id);
+ $calendar = OC_Calendar_Calendar::find($id);
+ $return = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:ownCloud Calendar " . OCP\App::getAppVersion('calendar') . "\nX-WR-CALNAME:" . $calendar['displayname'] . "\n";
+ foreach($events as $event){
+ $return .= self::generateEvent($event);
+ }
+ $return .= "END:VCALENDAR";
+ return $return;
+ }
+
+ /**
+ * @brief exports an event and convert all times to UTC
+ * @param integer $id id of the event
+ * @return string
+ */
+ private static function event($id){
+ $event = OC_Calendar_Object::find($id);
+ $return = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:ownCloud Calendar " . OCP\App::getAppVersion('calendar') . "\nX-WR-CALNAME:" . $event['summary'] . "\n";
+ $return .= self::generateEvent($event);
+ $return .= "END:VCALENDAR";
+ return $return;
+ }
+
+ /**
+ * @brief generates the VEVENT with UTC dates
+ * @param array $event
+ * @return string
+ */
+ private static function generateEvent($event){
+ $object = OC_VObject::parse($event['calendardata']);
+ $dtstart = $object->VEVENT->DTSTART;
+ $start_dt = $dtstart->getDateTime();
+ $dtend = OC_Calendar_Object::getDTEndFromVEvent($object->VEVENT);
+ $end_dt = $dtend->getDateTime();
+ if($dtstart->getDateType() !== Sabre_VObject_Element_DateTime::DATE){
+ $start_dt->setTimezone(new DateTimeZone('UTC'));
+ $end_dt->setTimezone(new DateTimeZone('UTC'));
+ $object->VEVENT->setDateTime('DTSTART', $start_dt, Sabre_VObject_Property_DateTime::UTC);
+ $object->VEVENT->setDateTime('DTEND', $end_dt, Sabre_VObject_Property_DateTime::UTC);
+ }
+ return $object->VEVENT->serialize();
+ }
+
+ /**
+ * @brief fixes new line breaks
+ * (fixes problems with Apple iCal)
+ * @param string $string to fix
+ * @return string
+ */
+ private static function fixLineBreaks($string){
+ $string = str_replace("\r\n", "\n", $string);
+ $string = str_replace("\r", "\n", $string);
+ $string = str_replace("\n", "\r\n", $string);
+ return $string;
+ }
+}
diff --git a/apps/calendar/lib/object.php b/apps/calendar/lib/object.php
index 0531a56fc50..140542bf4fb 100644
--- a/apps/calendar/lib/object.php
+++ b/apps/calendar/lib/object.php
@@ -1,10 +1,31 @@
<?php
/**
* Copyright (c) 2011 Jakob Sack <mail@jakobsack.de>
+ * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
+ * Copyright (c) 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.
*/
+ /**
+ *
+ * The following SQL statement is just a help for developers and will not be
+ * executed!
+ *
+ * CREATE TABLE calendar_objects (
+ * id INTEGER UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
+ * calendarid INTEGER UNSIGNED NOT NULL,
+ * objecttype VARCHAR(40) NOT NULL,
+ * startdate DATETIME,
+ * enddate DATETIME,
+ * repeating INT(1),
+ * summary VARCHAR(255),
+ * calendardata TEXT,
+ * uri VARCHAR(100),
+ * lastmodified INT(11)
+ * );
+ *
+ */
/**
* This class manages our calendar objects
@@ -311,7 +332,12 @@ class OC_Calendar_Object{
public static function getUTCforMDB($datetime){
return date('Y-m-d H:i', $datetime->format('U') - $datetime->getOffset());
}
-
+
+ /**
+ * @brief returns the DTEND of an $vevent object
+ * @param object $vevent vevent object
+ * @return object
+ */
public static function getDTEndFromVEvent($vevent){
if ($vevent->DTEND) {
$dtend = $vevent->DTEND;
@@ -336,9 +362,12 @@ class OC_Calendar_Object{
}
return $dtend;
}
-
- public static function getRepeatOptions($l10n)
- {
+
+ /**
+ * @brief returns the options for the repeat rule of an repeating event
+ * @return array - valid inputs for the repeat rule of an repeating event
+ */
+ public static function getRepeatOptions($l10n){
return array(
'doesnotrepeat' => $l10n->t('Does not repeat'),
'daily' => $l10n->t('Daily'),
@@ -349,26 +378,35 @@ class OC_Calendar_Object{
'yearly' => $l10n->t('Yearly')
);
}
-
- public static function getEndOptions($l10n)
- {
+
+ /**
+ * @brief returns the options for the end of an repeating event
+ * @return array - valid inputs for the end of an repeating events
+ */
+ public static function getEndOptions($l10n){
return array(
'never' => $l10n->t('never'),
'count' => $l10n->t('by occurrences'),
'date' => $l10n->t('by date')
);
}
-
- public static function getMonthOptions($l10n)
- {
+
+ /**
+ * @brief returns the options for an monthly repeating event
+ * @return array - valid inputs for monthly repeating events
+ */
+ public static function getMonthOptions($l10n){
return array(
'monthday' => $l10n->t('by monthday'),
'weekday' => $l10n->t('by weekday')
);
}
-
- public static function getWeeklyOptions($l10n)
- {
+
+ /**
+ * @brief returns the options for an weekly repeating event
+ * @return array - valid inputs for weekly repeating events
+ */
+ public static function getWeeklyOptions($l10n){
return array(
'MO' => $l10n->t('Monday'),
'TU' => $l10n->t('Tuesday'),
@@ -379,9 +417,12 @@ class OC_Calendar_Object{
'SU' => $l10n->t('Sunday')
);
}
-
- public static function getWeekofMonth($l10n)
- {
+
+ /**
+ * @brief returns the options for an monthly repeating event which occurs on specific weeks of the month
+ * @return array - valid inputs for monthly repeating events
+ */
+ public static function getWeekofMonth($l10n){
return array(
'auto' => $l10n->t('events week of month'),
'1' => $l10n->t('first'),
@@ -392,7 +433,11 @@ class OC_Calendar_Object{
'-1' => $l10n->t('last')
);
}
-
+
+ /**
+ * @brief returns the options for an yearly repeating event which occurs on specific days of the year
+ * @return array - valid inputs for yearly repeating events
+ */
public static function getByYearDayOptions(){
$return = array();
foreach(range(1,366) as $num){
@@ -400,7 +445,11 @@ class OC_Calendar_Object{
}
return $return;
}
-
+
+ /**
+ * @brief returns the options for an yearly or monthly repeating event which occurs on specific days of the month
+ * @return array - valid inputs for yearly or monthly repeating events
+ */
public static function getByMonthDayOptions(){
$return = array();
foreach(range(1,31) as $num){
@@ -408,7 +457,11 @@ class OC_Calendar_Object{
}
return $return;
}
-
+
+ /**
+ * @brief returns the options for an yearly repeating event which occurs on specific month of the year
+ * @return array - valid inputs for yearly repeating events
+ */
public static function getByMonthOptions($l10n){
return array(
'1' => $l10n->t('January'),
@@ -425,7 +478,11 @@ class OC_Calendar_Object{
'12' => $l10n->t('December')
);
}
-
+
+ /**
+ * @brief returns the options for an yearly repeating event
+ * @return array - valid inputs for yearly repeating events
+ */
public static function getYearOptions($l10n){
return array(
'bydate' => $l10n->t('by events date'),
@@ -434,13 +491,21 @@ class OC_Calendar_Object{
'bydaymonth' => $l10n->t('by day and month')
);
}
-
+
+ /**
+ * @brief returns the options for an yearly repeating event which occurs on specific week numbers of the year
+ * @return array - valid inputs for yearly repeating events
+ */
public static function getByWeekNoOptions(){
return range(1, 52);
}
-
- public static function validateRequest($request)
- {
+
+ /**
+ * @brief validates a request
+ * @param array $request
+ * @return mixed (array / boolean)
+ */
+ public static function validateRequest($request){
$errnum = 0;
$errarr = array('title'=>'false', 'cal'=>'false', 'from'=>'false', 'fromtime'=>'false', 'to'=>'false', 'totime'=>'false', 'endbeforestart'=>'false');
if($request['title'] == ''){
@@ -587,17 +652,24 @@ class OC_Calendar_Object{
}
return false;
}
-
- protected static function checkTime($time)
- {
+
+ /**
+ * @brief validates time
+ * @param string $time
+ * @return boolean
+ */
+ protected static function checkTime($time){
list($hours, $minutes) = explode(':', $time);
return empty($time)
|| $hours < 0 || $hours > 24
|| $minutes < 0 || $minutes > 60;
}
-
- public static function createVCalendarFromRequest($request)
- {
+
+ /**
+ * @brief creates an VCalendar Object from the request data
+ * @param array $request
+ * @return object created $vcalendar
+ */ public static function createVCalendarFromRequest($request){
$vcalendar = new OC_VObject('VCALENDAR');
$vcalendar->add('PRODID', 'ownCloud Calendar');
$vcalendar->add('VERSION', '2.0');
@@ -610,9 +682,14 @@ class OC_Calendar_Object{
$vevent->setUID();
return self::updateVCalendarFromRequest($request, $vcalendar);
}
-
- public static function updateVCalendarFromRequest($request, $vcalendar)
- {
+
+ /**
+ * @brief updates an VCalendar Object from the request data
+ * @param array $request
+ * @param object $vcalendar
+ * @return object updated $vcalendar
+ */
+ public static function updateVCalendarFromRequest($request, $vcalendar){
$title = $request["title"];
$location = $request["location"];
$categories = $request["categories"];
@@ -792,29 +869,52 @@ class OC_Calendar_Object{
$vevent->setString('DESCRIPTION', $description);
$vevent->setString('CATEGORIES', $categories);
- /*if($repeat == "true"){
+ /**if($repeat == "true"){
$vevent->RRULE = $repeat;
}*/
return $vcalendar;
}
-
+
+ /**
+ * @brief returns the owner of an object
+ * @param integer $id
+ * @return string
+ */
public static function getowner($id){
$event = self::find($id);
$cal = OC_Calendar_Calendar::find($event['calendarid']);
return $cal['userid'];
}
+ /**
+ * @brief returns the calendarid of an object
+ * @param integer $id
+ * @return integer
+ */
public static function getCalendarid($id){
$event = self::find($id);
return $event['calendarid'];
}
-
+
+ /**
+ * @brief checks if an object is repeating
+ * @param integer $id
+ * @return boolean
+ */
public static function isrepeating($id){
$event = self::find($id);
return ($event['repeating'] == 1)?true:false;
}
-
+
+ /**
+ * @brief converts the start_dt and end_dt to a new timezone
+ * @param object $dtstart
+ * @param object $dtend
+ * @param boolean $allday
+ * @param string $tz
+ * @return array
+ */
public static function generateStartEndDate($dtstart, $dtend, $allday, $tz){
$start_dt = $dtstart->getDateTime();
$end_dt = $dtend->getDateTime();
diff --git a/apps/calendar/lib/repeat.php b/apps/calendar/lib/repeat.php
index 204f96a5a2a..b9fbee8fe0a 100644
--- a/apps/calendar/lib/repeat.php
+++ b/apps/calendar/lib/repeat.php
@@ -5,12 +5,12 @@
* later.
* See the COPYING-README file.
*/
-/*
+/**
* This class manages the caching of repeating events
* Events will be cached for the current year ± 5 years
*/
class OC_Calendar_Repeat{
- /*
+ /**
* @brief returns the cache of an event
* @param (int) $id - id of the event
* @return (array)
@@ -24,7 +24,7 @@ class OC_Calendar_Repeat{
}
return $return;
}
- /*
+ /**
* @brief returns the cache of an event in a specific peroid
* @param (int) $id - id of the event
* @param (DateTime) $from - start for period in UTC
@@ -44,7 +44,7 @@ class OC_Calendar_Repeat{
}
return $return;
}
- /*
+ /**
* @brief returns the cache of all repeating events of a calendar
* @param (int) $id - id of the calendar
* @return (array)
@@ -58,7 +58,7 @@ class OC_Calendar_Repeat{
}
return $return;
}
- /*
+ /**
* @brief returns the cache of all repeating events of a calendar in a specific period
* @param (int) $id - id of the event
* @param (string) $from - start for period in UTC
@@ -78,7 +78,7 @@ class OC_Calendar_Repeat{
}
return $return;
}
- /*
+ /**
* @brief generates the cache the first time
* @param (int) id - id of the event
* @return (bool)
@@ -104,7 +104,7 @@ class OC_Calendar_Repeat{
}
return true;
}
- /*
+ /**
* @brief generates the cache the first time for all repeating event of an calendar
* @param (int) id - id of the calendar
* @return (bool)
@@ -116,7 +116,7 @@ class OC_Calendar_Repeat{
}
return true;
}
- /*
+ /**
* @brief updates an event that is already cached
* @param (int) id - id of the event
* @return (bool)
@@ -126,7 +126,7 @@ class OC_Calendar_Repeat{
self::generate($id);
return true;
}
- /*
+ /**
* @brief updates all repating events of a calendar that are already cached
* @param (int) id - id of the calendar
* @return (bool)
@@ -136,7 +136,7 @@ class OC_Calendar_Repeat{
self::generateCalendar($id);
return true;
}
- /*
+ /**
* @brief checks if an event is already cached
* @param (int) id - id of the event
* @return (bool)
@@ -148,7 +148,7 @@ class OC_Calendar_Repeat{
return false;
}
}
- /*
+ /**
* @brief checks if an event is already cached in a specific period
* @param (int) id - id of the event
* @param (DateTime) $from - start for period in UTC
@@ -163,7 +163,7 @@ class OC_Calendar_Repeat{
}
}
- /*
+ /**
* @brief checks if a whole calendar is already cached
* @param (int) id - id of the calendar
* @return (bool)
@@ -183,7 +183,7 @@ class OC_Calendar_Repeat{
return true;
}
}
- /*
+ /**
* @brief removes the cache of an event
* @param (int) id - id of the event
* @return (bool)
@@ -192,7 +192,7 @@ class OC_Calendar_Repeat{
$stmt = OCP\DB::prepare('DELETE FROM *PREFIX*calendar_repeat WHERE eventid = ?');
$stmt->execute(array($id));
}
- /*
+ /**
* @brief removes the cache of all events of a calendar
* @param (int) id - id of the calendar
* @return (bool)
diff --git a/apps/calendar/lib/share.php b/apps/calendar/lib/share.php
index 54c531892f0..4fe88171403 100644
--- a/apps/calendar/lib/share.php
+++ b/apps/calendar/lib/share.php
@@ -5,17 +5,17 @@
* later.
* See the COPYING-README file.
*/
-/*
+/**
* This class manages shared calendars
*/
class OC_Calendar_Share{
const CALENDAR = 'calendar';
const EVENT = 'event';
- /*
+ /**
* @brief: returns informations about all calendar or events which users are sharing with the user - userid
- * @param: (string) $userid - id of the user
- * @param: (string) $type - use const self::CALENDAR or self::EVENT
- * @return: (array) $return - information about calendars
+ * @param: string $userid - id of the user
+ * @param: string $type - use const self::CALENDAR or self::EVENT
+ * @return: array $return - information about calendars
*/
public static function allSharedwithuser($userid, $type, $active=null, $permission=null){
$group_where = self::group_sql(OC_Group::getUserGroups($userid));
@@ -33,11 +33,11 @@ class OC_Calendar_Share{
}
return $return;
}
- /*
+ /**
* @brief: returns all users a calendar / event is shared with
- * @param: (int) id - id of the calendar / event
- * @param: (string) $type - use const self::CALENDAR or self::EVENT
- * @return: (array) $users - information about users a calendar / event is shared with
+ * @param: integer id - id of the calendar / event
+ * @param: string $type - use const self::CALENDAR or self::EVENT
+ * @return: array $users - information about users a calendar / event is shared with
*/
public static function allUsersSharedwith($id, $type){
$stmt = OCP\DB::prepare('SELECT * FROM *PREFIX*calendar_share_' . $type . ' WHERE ' . $type . 'id = ? ORDER BY share');
@@ -48,13 +48,13 @@ class OC_Calendar_Share{
}
return $users;
}
- /*
+ /**
* @brief: shares a calendar / event
- * @param: (string) $owner - userid of the owner
- * @param: (string) $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
- * @param: (string) $sharetype - type of sharing (can be: user/group/public)
- * @param: (string) $id - id of the calendar / event
- * @param: (string) $type - use const self::CALENDAR or self::EVENT
+ * @param: string $owner - userid of the owner
+ * @param: string $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
+ * @param: string $sharetype - type of sharing (can be: user/group/public)
+ * @param: string $id - id of the calendar / event
+ * @param: string $type - use const self::CALENDAR or self::EVENT
* @return (mixed) - token (if $sharetype == public) / bool (if $sharetype != public)
*/
public static function share($owner, $share, $sharetype, $id, $type){
@@ -80,14 +80,14 @@ class OC_Calendar_Share{
return true;
}
}
- /*
+ /**
* @brief: stops sharing a calendar / event
- * @param: (string) $owner - userid of the owner
- * @param: (string) $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
- * @param: (string) $sharetype - type of sharing (can be: user/group/public)
- * @param: (string) $id - id of the calendar / event
- * @param: (string) $type - use const self::CALENDAR or self::EVENT
- * @return (bool)
+ * @param: string $owner - userid of the owner
+ * @param: string $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
+ * @param: string $sharetype - type of sharing (can be: user/group/public)
+ * @param: string $id - id of the calendar / event
+ * @param: string $type - use const self::CALENDAR or self::EVENT
+ * @return boolean
*/
public static function unshare($owner, $share, $sharetype, $id, $type){
$stmt = OCP\DB::prepare('DELETE FROM *PREFIX*calendar_share_' . $type . ' WHERE owner = ? ' . (($sharetype != 'public')?'AND share = ?':'') . ' AND sharetype = ? AND ' . $type . 'id = ?');
@@ -98,14 +98,14 @@ class OC_Calendar_Share{
}
return true;
}
- /*
+ /**
* @brief: changes the permission for a calendar / event
- * @param: (string) $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
- * @param: (string) $sharetype - type of sharing (can be: user/group/public)
- * @param: (string) $id - id of the calendar / event
- * @param: (int) $permission - permission of user the calendar / event is shared with (if $sharetype == public then $permission = 0)
- * @param: (string) $type - use const self::CALENDAR or self::EVENT
- * @return (bool)
+ * @param: string $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
+ * @param: string $sharetype - type of sharing (can be: user/group/public)
+ * @param: string $id - id of the calendar / event
+ * @param: integer $permission - permission of user the calendar / event is shared with (if $sharetype == public then $permission = 0)
+ * @param: string $type - use const self::CALENDAR or self::EVENT
+ * @return boolean
*/
public static function changepermission($share, $sharetype, $id, $permission, $type){
if($sharetype == 'public' && $permission == 1){
@@ -115,9 +115,9 @@ class OC_Calendar_Share{
$stmt->execute(array($permission, $share, $sharetype, $id));
return true;
}
- /*
+ /**
* @brief: generates a token for public calendars / events
- * @return: (string) $token
+ * @return: string $token
*/
private static function generate_token($id, $type){
$uniqid = uniqid();
@@ -138,14 +138,14 @@ class OC_Calendar_Share{
$token = md5($string);
return substr($token, rand(0,16), 15);
}
- /*
+ /**
* @brief: checks if it is already shared
- * @param: (string) $owner - userid of the owner
- * @param: (string) $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
- * @param: (string) $sharetype - type of sharing (can be: user/group/public)
- * @param: (string) $id - id of the calendar / event
- * @param: (string) $type - use const self::CALENDAR or self::EVENT
- * @return (bool)
+ * @param: string $owner - userid of the owner
+ * @param: string $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
+ * @param: string $sharetype - type of sharing (can be: user/group/public)
+ * @param: string $id - id of the calendar / event
+ * @param: string $type - use const self::CALENDAR or self::EVENT
+ * @return boolean
*/
public static function is_already_shared($owner, $share, $sharetype, $id, $type){
$stmt = OCP\DB::prepare('SELECT * FROM *PREFIX*calendar_share_' . $type . ' WHERE owner = ? AND share = ? AND sharetype = ? AND ' . $type . 'id = ?');
@@ -181,12 +181,12 @@ class OC_Calendar_Share{
}
return $active_where;
}
- /*
+ /**
* @brief: checks the permission for editing an event
- * @param: (string) $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
- * @param: (string) $id - id of the calendar / event
- * @param: (string) $type - use const self::CALENDAR or self::EVENT
- * @return (bool)
+ * @param: string $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
+ * @param: string $id - id of the calendar / event
+ * @param: string $type - use const self::CALENDAR or self::EVENT
+ * @return boolean
*/
public static function is_editing_allowed($share, $id, $type){
$group_where = self::group_sql(OC_Group::getUserGroups($share));
@@ -202,12 +202,12 @@ class OC_Calendar_Share{
}
return false;
}
- /*
+ /**
* @brief: checks the access of
- * @param: (string) $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
- * @param: (string) $id - id of the calendar / event
- * @param: (string) $type - use const self::CALENDAR or self::EVENT
- * @return (bool)
+ * @param: string $share - userid (if $sharetype == user) / groupid (if $sharetype == group) / token (if $sharetype == public)
+ * @param: string $id - id of the calendar / event
+ * @param: string $type - use const self::CALENDAR or self::EVENT
+ * @return boolean
*/
public static function check_access($share, $id, $type){
$group_where = self::group_sql(OC_Group::getUserGroups($share));
@@ -223,9 +223,9 @@ class OC_Calendar_Share{
return false;
}
}
- /*
+ /**
* @brief: returns the calendardata of an event or a calendar
- * @param: (string) $token - token which should be searched
+ * @param: string $token - token which should be searched
* @return: mixed - bool if false, array with type and id if true
*/
public static function getElementByToken($token){
@@ -248,19 +248,19 @@ class OC_Calendar_Share{
return $return;
}
- /*
+ /**
* @brief sets the active status of the calendar
- * @param (string) $
+ * @param string
*/
public static function set_active($share, $id, $active){
$stmt = OCP\DB::prepare("UPDATE *PREFIX*calendar_share_calendar SET active = ? WHERE share = ? AND sharetype = 'user' AND calendarid = ?");
$stmt->execute(array($active, $share, $id));
}
- /*
- * @brief delete all shared calendars / events after a user was deleted
- * @param (string) $userid
- * @return (bool)
+ /**
+ * @brief deletes all shared calendars / events after a user was deleted
+ * @param string $userid
+ * @return boolean
*/
public static function post_userdelete($userid){
$stmt = OCP\DB::prepare('DELETE FROM *PREFIX*calendar_share_calendar WHERE owner = ?');
@@ -273,4 +273,26 @@ class OC_Calendar_Share{
$stmt->execute(array($userid));
return true;
}
+
+ /**
+ * @brief deletes all shared events of a calendar
+ * @param integer $calid
+ * @return boolean
+ */
+ public static function post_caldelete($calid){
+ $stmt = OCP\DB::prepare('DELETE FROM *PREFIX*calendar_share_calendar WHERE calendarid = ?');
+ $stmt->execute(array($calid));
+ return true;
+ }
+
+ /**
+ * @brief deletes all shares of an event
+ * @param integer $eventid
+ * @return boolean
+ */
+ public static function post_eventdelete($eventid){
+ $stmt = OCP\DB::prepare('DELETE FROM *PREFIX*calendar_share_event WHERE eventid = ?');
+ $stmt->execute(array($eventid));
+ return true;
+ }
} \ No newline at end of file