From 9580d0ef290c5ba2431e6c2c52c7a6d660b031ec Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Tue, 7 Aug 2012 14:57:52 -0400 Subject: [PATCH] Initial calendar sharing backend --- apps/calendar/appinfo/app.php | 2 + apps/calendar/lib/share/calendar.php | 58 +++++++++++++++++++ .../part.choosecalendar.rowfields.php | 2 +- 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 apps/calendar/lib/share/calendar.php diff --git a/apps/calendar/appinfo/app.php b/apps/calendar/appinfo/app.php index 4fdba291262..8a793d1fac2 100644 --- a/apps/calendar/appinfo/app.php +++ b/apps/calendar/appinfo/app.php @@ -10,6 +10,7 @@ OC::$CLASSPATH['OC_Calendar_Share'] = 'apps/calendar/lib/share.php'; OC::$CLASSPATH['OC_Search_Provider_Calendar'] = 'apps/calendar/lib/search.php'; OC::$CLASSPATH['OC_Calendar_Export'] = 'apps/calendar/lib/export.php'; OC::$CLASSPATH['OC_Calendar_Import'] = 'apps/calendar/lib/import.php'; +OC::$CLASSPATH['OC_Share_Backend_Calendar'] = 'apps/calendar/lib/share/calendar.php'; //General Hooks OCP\Util::connectHook('OC_User', 'post_createUser', 'OC_Calendar_Hooks', 'createUser'); OCP\Util::connectHook('OC_User', 'post_deleteUser', 'OC_Calendar_Hooks', 'deleteUser'); @@ -35,3 +36,4 @@ OCP\App::addNavigationEntry( array( 'name' => $l->t('Calendar'))); OCP\App::registerPersonal('calendar', 'settings'); OC_Search::registerProvider('OC_Search_Provider_Calendar'); +OCP\Share::registerBackend('calendar', 'OC_Share_Backend_Calendar'); diff --git a/apps/calendar/lib/share/calendar.php b/apps/calendar/lib/share/calendar.php new file mode 100644 index 00000000000..9b68437531f --- /dev/null +++ b/apps/calendar/lib/share/calendar.php @@ -0,0 +1,58 @@ +. +*/ + +class OC_Share_Backend_Calendar implements OCP\Share_Backend_Collection { + + const FORMAT_CALENDAR = 0; + + private static $calendar; + + public function isValidSource($itemSource, $uidOwner) { + if (self::$calendar = OC_Calendar_App::getCalendar($itemSource)) { + return true; + } + return false; + } + + public function generateTarget($itemSource, $shareWith, $exclude = null) { + if (isset(self::$calendar)) { + return self::$calendar['displayname']; + } + return false; + } + + public function formatItems($items, $format, $parameters = null) { + $calendars = array(); + if ($format == self::FORMAT_CALENDAR) { + foreach ($items as $item) { + $calendar = OC_Calendar_App::getCalendar($item['item_source']); + $calendar['displaynamename'] = $item['item_target']; + $calendars[] = $calendar; + } + } + return $calendars; + } + + public function getChildren($itemSource) { + // TODO + } + +} \ No newline at end of file diff --git a/apps/calendar/templates/part.choosecalendar.rowfields.php b/apps/calendar/templates/part.choosecalendar.rowfields.php index d29113c9a61..64aaa797197 100644 --- a/apps/calendar/templates/part.choosecalendar.rowfields.php +++ b/apps/calendar/templates/part.choosecalendar.rowfields.php @@ -5,7 +5,7 @@ - +