<?php

/**
 * 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.
 */
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('calendar');
OCP\JSON::callCheck();
$errarr = OC_Calendar_Object::validateRequest($_POST);
$event_id = -1;
if ($errarr) {
    //show validate errors
    OCP\JSON::error($errarr);
    exit;
} else {
    $cal = $_POST['calendar'];
    $vcalendar = OC_Calendar_Object::createVCalendarFromRequest($_POST);
    try {
        $event_id = OC_Calendar_Object::add($cal, $vcalendar->serialize());
    } catch (Exception $e) {
        OCP\JSON::error(array('message' => $e->getMessage()));
        exit;
    }
    OCP\JSON::success(array('event_id' => $event_id));
}
Exemplo n.º 2
0
 public function import()
 {
     if (!$this->isValid()) {
         return false;
     }
     $numofcomponents = count($this->calobject->getComponents());
     if ($this->overwrite) {
         foreach (OC_Calendar_Object::all($this->id) as $obj) {
             OC_Calendar_Object::delete($obj['id']);
         }
     }
     foreach ($this->calobject->getComponents() as $object) {
         if (!$object instanceof Sabre\VObject\Component\VEvent && !$object instanceof Sabre\VObject\Component\VJournal && !$object instanceof Sabre\VObject\Component\VTodo) {
             continue;
         }
         if (!is_null($object->DTSTART)) {
             $dtend = OC_Calendar_Object::getDTEndFromVEvent($object);
             if ($object->DTEND) {
                 $object->DTEND->setDateTime($dtend->getDateTime(), $object->DTSTART->getDateType());
             }
         }
         $vcalendar = $this->createVCalendar($object->serialize());
         $insertid = OC_Calendar_Object::add($this->id, $vcalendar);
         $this->abscount++;
         if ($this->isDuplicate($insertid)) {
             OC_Calendar_Object::delete($insertid);
         } else {
             $this->count++;
         }
         $this->updateProgress(intval($this->abscount / $numofcomponents * 100));
     }
     OC_Cache::remove($this->progresskey);
     return true;
 }
Exemplo n.º 3
0
<?php

/**
 * 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.
 */
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('calendar');
OCP\JSON::callCheck();
$errarr = OC_Calendar_Object::validateRequest($_POST);
if ($errarr) {
    //show validate errors
    OCP\JSON::error($errarr);
    exit;
} else {
    $cal = $_POST['calendar'];
    $calendar = OC_Calendar_Calendar::find($cal);
    if ($calendar['userid'] != OCP\USER::getUser()) {
        $l = OC_L10N::get('core');
        OC_JSON::error(array('data' => array('message' => $l->t('Authentication error'))));
        exit;
    }
    $vcalendar = OC_Calendar_Object::createVCalendarFromRequest($_POST);
    $result = OC_Calendar_Object::add($cal, $vcalendar->serialize());
    OCP\JSON::success();
}
Exemplo n.º 4
0
<?php

// Init owncloud
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('tasks');
OCP\JSON::callCheck();
$calendars = OC_Calendar_Calendar::allCalendars(OCP\User::getUser(), true);
$first_calendar = reset($calendars);
$cid = $first_calendar['id'];
$input = $_POST['text'];
$request = array();
$request['summary'] = $input;
$request["categories"] = null;
$request['priority'] = null;
$request['percent_complete'] = null;
$request['completed'] = null;
$request['location'] = null;
$request['due'] = null;
$request['description'] = null;
$vcalendar = OC_Task_App::createVCalendarFromRequest($request);
$id = OC_Calendar_Object::add($cid, $vcalendar->serialize());
$user_timezone = OCP\Config::getUserValue(OCP\User::getUser(), 'calendar', 'timezone', date_default_timezone_get());
$task = OC_Task_App::arrayForJSON($id, $vcalendar->VTODO, $user_timezone);
OCP\JSON::success(array('task' => $task));
    }
    if ($_GET["path"] != "") {
        $filename = $_GET["path"] . "/" . $_GET["file"];
    } else {
        $filename = "/" . $_GET["file"];
    }
} else {
    $id = OC_Calendar_Calendar::addCalendar(OC_User::getUser(), $_POST['calname']);
    OC_Calendar_Calendar::setCalendarActive($id, 1);
    $calid = $id;
    if ($_POST["path"] != "") {
        $filename = $_POST["path"] . "/" . $_POST["file"];
    } else {
        $filename = "/" . $_POST["file"];
    }
}
$vcalendar = OC_Filesystem::file_get_contents($filename);
$vcalendar = explode("BEGIN:VEVENT", $vcalendar);
for ($i = 1; $i < count($vcalendar); $i++) {
    $vcalendar[$i] = "BEGIN:VEVENT" . $vcalendar[$i];
}
for ($i = 1; $i < count($vcalendar) - 1; $i++) {
    $vcalendar[$i] = $vcalendar[$i] . "END:VCALENDAR";
}
for ($i = 1; $i < count($vcalendar); $i++) {
    $vcalendar[$i] = $vcalendar[0] . $vcalendar[$i];
}
for ($i = 1; $i < count($vcalendar); $i++) {
    OC_Calendar_Object::add($calid, $vcalendar[$i]);
}
OC_JSON::success();
Exemplo n.º 6
0
 /**
  * @NoAdminRequired
  */
 public function addTask()
 {
     $taskName = $this->params('name');
     $calendarId = $this->params('calendarID');
     $starred = $this->params('starred');
     $due = $this->params('due');
     $start = $this->params('start');
     $response = new JSONResponse();
     $user_timezone = \OC_Calendar_App::getTimezone();
     $request = array('summary' => $taskName, 'categories' => null, 'priority' => $starred, 'location' => null, 'due' => $due, 'start' => $start, 'description' => null);
     $vcalendar = Helper::createVCalendarFromRequest($request);
     $taskId = \OC_Calendar_Object::add($calendarId, $vcalendar->serialize());
     $task = Helper::arrayForJSON($taskId, $vcalendar->VTODO, $user_timezone);
     $task['calendarid'] = $calendarId;
     $task['tmpID'] = $this->params('tmpID');
     $result = array('data' => array('task' => $task));
     $response->setData($result);
     return $response;
 }
Exemplo n.º 7
0
<?php

/**
 * 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.
 */
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('calendar');
OCP\JSON::callCheck();
$errarr = OC_Calendar_Object::validateRequest($_POST);
if ($errarr) {
    //show validate errors
    OCP\JSON::error($errarr);
    exit;
} else {
    $cal = $_POST['calendar'];
    $vcalendar = OC_Calendar_Object::createVCalendarFromRequest($_POST);
    try {
        $objectId = OC_Calendar_Object::add($cal, $vcalendar->serialize());
        OC_Calendar_Object::addAlarmsDB($_POST['alarmsDuration'], $_POST['alarmsOptionField'], $_POST['alarmsType'], $_POST['alarmsTimeType'], $vcalendar->VEVENT, $objectId);
    } catch (Exception $e) {
        OCP\JSON::error(array('message' => $e->getMessage()));
        exit;
    }
    OCP\JSON::success();
}
Exemplo n.º 8
0
        if (!isset($cals[$cal])) {
            continue;
            // from corrupt/incomplete calendar
        }
        $cdata = $cals[$cal];
        // if we have multiple components from different calendar objects,
        // we should really merge their elements (enhancement?) -- 1st one wins for now.
        if (!count($prefix)) {
            $prefix = array_slice($lines, $cal, $cdata['first'] - $cal);
        }
        if (!count($suffix)) {
            $suffix = array_slice($lines, $cdata['last'] + 1, $cdata['end'] - $cdata['last']);
        }
        $content = array_merge($content, array_slice($lines, $begin, $details['end'] - $begin + 1));
    }
    if (count($content)) {
        $import = join($nl, array_merge($prefix, $content, $suffix)) . $nl;
        OC_Calendar_Object::add($id, $import);
    }
}
// finished import
if (is_writable('import_tmp/')) {
    $progressfopen = fopen($progressfile, 'w');
    fwrite($progressfopen, '100');
    fclose($progressfopen);
}
sleep(3);
if (is_writable('import_tmp/')) {
    unlink($progressfile);
}
OCP\JSON::success();
Exemplo n.º 9
0
 /**
  * create new task
  * 
  * @param  string $taskName
  * @param  int    $calendarId
  * @param  bool   $starred
  * @param  mixed  $due
  * @param  mixed  $start
  * @param  int    $tmpID
  * @return array
  */
 public function add($taskName, $calendarId, $starred, $due, $start, $tmpID)
 {
     $user_timezone = \OC_Calendar_App::getTimezone();
     $request = array('summary' => $taskName, 'categories' => null, 'priority' => $starred, 'location' => null, 'due' => $due, 'start' => $start, 'description' => null);
     $vcalendar = Helper::createVCalendarFromRequest($request);
     $taskID = \OC_Calendar_Object::add($calendarId, $vcalendar->serialize());
     $task = Helper::arrayForJSON($taskID, $vcalendar->VTODO, $user_timezone, $calendarId);
     $task['tmpID'] = $tmpID;
     return $task;
 }
Exemplo n.º 10
0
 /**
  * create new task
  * 
  * @param  string $taskName
  * @param  int    $calendarId
  * @param  bool   $starred
  * @param  mixed  $due
  * @param  mixed  $start
  * @param  int    $tmpID
  * @return array
  */
 public function add($taskName, $related, $calendarId, $starred, $due, $start, $tmpID)
 {
     $request = array('summary' => $taskName, 'related' => $related, 'starred' => $starred, 'due' => $due, 'start' => $start);
     $vcalendar = $this->helper->createVCalendar($request);
     $vtodo = $vcalendar->VTODO;
     $vtodo->ID = \OC_Calendar_Object::add($calendarId, $vcalendar->serialize());
     $task = $this->taskParser->parseTask($vtodo, $calendarId);
     $task['tmpID'] = $tmpID;
     return $task;
 }