/** * Copyright (c) 2012 Georg Ehrke <*****@*****.**> * This file is licensed under the Affero General Public License version 3 or * later. * See the COPYING-README file. */ $data = $_POST['data']; $data = explode(',', $data); $data = end($data); $data = base64_decode($data); OCP\JSON::checkLoggedIn(); OCP\App::checkAppEnabled('calendar'); $import = new OC_Calendar_Import($data); $import->setUserID(OCP\User::getUser()); $import->setTimeZone(OC_Calendar_App::$tz); $import->disableProgressCache(); if (!$import->isValid()) { OCP\JSON::error(); exit; } $newcalendarname = strip_tags($import->createCalendarName()); $newid = OC_Calendar_Calendar::addCalendar(OCP\User::getUser(), $newcalendarname, 'VEVENT,VTODO,VJOURNAL', null, 0, $import->createCalendarColor()); $import->setCalendarID($newid); $import->import(); $count = $import->getCount(); if ($count == 0) { OC_Calendar_Calendar::deleteCalendar($newid); OCP\JSON::error(array('message' => OC_Calendar_App::$l10n->t('The file contained either no events or all events are already saved in your calendar.'))); } else { OCP\JSON::success(array('message' => $count . ' ' . OC_Calendar_App::$l10n->t('events has been saved in the new calendar') . ' ' . $newcalendarname, 'eventSource' => OC_Calendar_Calendar::getEventSourceInfo(OC_Calendar_Calendar::find($newid)))); }
<?php //Prerendering for iCalendar file $file = \OC\Files\Filesystem::file_get_contents($_['path'] . '/' . $_['filename']); if (!$file) { OCP\JSON::error(array('error' => '404')); } $import = new OC_Calendar_Import($file); $import->setUserID(OCP\User::getUser()); $newcalendarname = OCP\Util::sanitizeHTML($import->createCalendarName()); $guessedcalendarname = OCP\Util::sanitizeHTML($import->guessCalendarName()); $calendarcolor = OCP\Util::sanitizeHTML($import->createCalendarColor()); //loading calendars for select box $calendar_options = OC_Calendar_Calendar::allCalendars(OCP\USER::getUser()); $calendar_options[] = array('id' => 'newcal', 'displayname' => $l->t('create a new calendar')); $defaultcolors = OC_Calendar_Calendar::getCalendarColorOptions(); ?> <div id="calendar_import_dialog" title="<?php p($l->t("Import a calendar file")); ?> "> <div id="calendar_import_form"> <form> <input type="hidden" id="calendar_import_filename" value="<?php p($_['filename']); ?> "> <input type="hidden" id="calendar_import_path" value="<?php p($_['path']); ?> ">