From 0ebe9ad70c65dbc733e42aa1b68ca7cd353df9bf Mon Sep 17 00:00:00 2001
From: Georg Ehrke <georg.stefan.germany@googlemail.com>
Date: Sat, 1 Oct 2011 23:19:06 +0200
Subject: [PATCH] added function to export single events

---
 apps/calendar/export.php                   | 34 +++++++++++++++-------
 apps/calendar/templates/part.editevent.php |  1 +
 2 files changed, 25 insertions(+), 10 deletions(-)

diff --git a/apps/calendar/export.php b/apps/calendar/export.php
index feb4755a3a..b3e5ecd683 100644
--- a/apps/calendar/export.php
+++ b/apps/calendar/export.php
@@ -10,15 +10,29 @@ require_once ("../../lib/base.php");
 OC_Util::checkLoggedIn();
 OC_Util::checkAppEnabled('calendar');
 $cal = $_GET["calid"];
-$calendar = OC_Calendar_Calendar::findCalendar($cal);
-if($calendar["userid"] != OC_User::getUser()){
-	header( 'Location: '.OC_Helper::linkTo('', 'index.php'));
-	exit;
-}
-$calobjects = OC_Calendar_Object::all($cal);
-header("Content-Type: text/Calendar");
-header("Content-Disposition: inline; filename=calendar.ics"); 
-for($i = 0;$i <= count($calobjects); $i++){
-	echo $calobjects[$i]["calendardata"] . "\n";
+$event = $_GET["eventid"];
+if(isset($cal)){
+	$calendar = OC_Calendar_Calendar::findCalendar($cal);
+	if($calendar["userid"] != OC_User::getUser()){
+		OC_JSON::error();
+		exit;
+	}
+	$calobjects = OC_Calendar_Object::all($cal);
+	header("Content-Type: text/Calendar");
+	header("Content-Disposition: inline; filename=calendar.ics"); 
+	for($i = 0;$i <= count($calobjects); $i++){
+		echo $calobjects[$i]["calendardata"] . "\n";
+	}
+}elseif(isset($event)){
+	$data = OC_Calendar_Object::find($_GET["eventid"]);
+	$calendarid = $data["calendarid"];
+	$calendar = OC_Calendar_Calendar::findCalendar($calendarid);
+	if($calendar["userid"] != OC_User::getUser()){
+		OC_JSON::error();
+		exit;
+	}
+	header("Content-Type: text/Calendar");
+	header("Content-Disposition: inline; filename=" . $data["summary"] . ".ics"); 
+	echo $data["calendardata"];
 }
 ?>
diff --git a/apps/calendar/templates/part.editevent.php b/apps/calendar/templates/part.editevent.php
index be637aeae5..ae969f2dc3 100644
--- a/apps/calendar/templates/part.editevent.php
+++ b/apps/calendar/templates/part.editevent.php
@@ -6,6 +6,7 @@
 	<span id="actions">
 		<input type="button" class="submit" style="float: left;" value="<?php echo $l->t("Submit");?>" onclick="Calendar.UI.validateEventForm('ajax/editevent.php');">
 		<input type="button" class="submit" style="float: left;" name="delete" value="<?php echo $l->t("Delete");?>" onclick="Calendar.UI.submitDeleteEventForm('ajax/deleteevent.php');">
+		<input type="button" class="submit" style="float: right;" name="export" value="<?php echo $l->t("Export");?>" onclick="window.location='export.php?eventid=<?php echo $_['id'] ?>';">
 	</span>
 	</form>
 </div>
-- 
GitLab