diff options
author | Bart Visscher <bartv@thisnet.nl> | 2012-02-22 20:11:38 +0100 |
---|---|---|
committer | Bart Visscher <bartv@thisnet.nl> | 2012-02-22 20:11:38 +0100 |
commit | 7f754c02f3728bf8d71e3e61264504c88e92bdd2 (patch) | |
tree | 0d841ebfa2df8cb36caffdfaea01a324776e33d2 /apps/tasks/lib | |
parent | 499ec15c26f23ee854a562358c43a11cd7a75e8e (diff) | |
download | nextcloud-server-7f754c02f3728bf8d71e3e61264504c88e92bdd2.tar.gz nextcloud-server-7f754c02f3728bf8d71e3e61264504c88e92bdd2.zip |
Change code from using OC_Tasks_VTodo to OC_Tasks_App
Diffstat (limited to 'apps/tasks/lib')
-rw-r--r-- | apps/tasks/lib/app.php | 162 | ||||
-rw-r--r-- | apps/tasks/lib/vtodo.php | 133 |
2 files changed, 163 insertions, 132 deletions
diff --git a/apps/tasks/lib/app.php b/apps/tasks/lib/app.php new file mode 100644 index 00000000000..92be5944244 --- /dev/null +++ b/apps/tasks/lib/app.php @@ -0,0 +1,162 @@ +<?php +/** + * ownCloud - Calendar + * + * @author Bart Visscher + * @copyright 2011 Bart Visscher bartv@thisnet.nl + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +/** + * This class manages our tasks + */ +OC_Task_App::$l10n = new OC_L10N('tasks'); +class OC_Task_App { + public static $l10n; + + public static function getPriorityOptions() + { + return array( + '' => self::$l10n->t('Unspecified'), + '1' => self::$l10n->t('1=highest'), + '2' => '2', + '3' => '3', + '4' => '4', + '5' => self::$l10n->t('5=medium'), + '6' => '6', + '7' => '7', + '8' => '8', + '9' => self::$l10n->t('9=lowest'), + ); + } + + public static function validateRequest($request) + { + $errors = array(); + if($request['summary'] == ''){ + $errors['summary'] = self::$l10n->t('Empty Summary'); + } + + if(isset($request['categories']) && !is_array($request['categories'])){ + $errors['categories'] = self::$l10n->t('Not an array'); + } + + try { + $timezone = OC_Preferences::getValue(OC_USER::getUser(), "calendar", "timezone", "Europe/London"); + $timezone = new DateTimeZone($timezone); + new DateTime($request['due'], $timezone); + } catch (Exception $e) { + $errors['due'] = self::$l10n->t('Invalid date/time'); + } + + if ($request['percent_complete'] < 0 || $request['percent_complete'] > 100){ + $errors['percent_complete'] = self::$l10n->t('Invalid percent complete'); + } + if ($request['percent_complete'] == 100 && !empty($request['completed'])){ + try { + $timezone = OC_Preferences::getValue(OC_USER::getUser(), "calendar", "timezone", "Europe/London"); + $timezone = new DateTimeZone($timezone); + new DateTime($request['completed'], $timezone); + } catch (Exception $e) { + $errors['completed'] = self::$l10n->t('Invalid date/time'); + } + } + + $priority_options = self::getPriorityOptions(); + if (!in_array($request['priority'], array_keys($priority_options))) { + $errors['priority'] = self::$l10n->t('Invalid priority'); + } + return $errors; + } + + public static function createVCalendarFromRequest($request) + { + $vcalendar = new Sabre_VObject_Component('VCALENDAR'); + $vcalendar->add('PRODID', 'ownCloud Calendar'); + $vcalendar->add('VERSION', '2.0'); + + $now = new DateTime(); + + $vtodo = new Sabre_VObject_Component('VTODO'); + $vcalendar->add($vtodo); + + $created = new Sabre_VObject_Element_DateTime('CREATED'); + $created->setDateTime($now, Sabre_VObject_Element_DateTime::UTC); + $vtodo->add($created); + + $uid = self::createUID(); + $vtodo->add('UID',$uid); + + return self::updateVCalendarFromRequest($request, $vcalendar); + } + + public static function updateVCalendarFromRequest($request, $vcalendar) + { + $summary = $request['summary']; + $categories = isset($request["categories"]) ? $request["categories"] : array(); + $priority = $request['priority']; + $percent_complete = $request['percent_complete']; + $completed = $request['completed']; + $location = $request['location']; + $due = $request['due']; + $description = $request['description']; + + $vtodo = $vcalendar->VTODO; + + $vtodo->setDateTime('LAST-MODIFIED', 'now', Sabre_VObject_Element_DateTime::UTC); + $vtodo->setDateTime('DTSTAMP', 'now', Sabre_VObject_Element_DateTime::UTC); + $vtodo->setString('SUMMARY', $summary); + + $vtodo->setString('LOCATION', $location); + $vtodo->setString('DESCRIPTION', $description); + $vtodo->setString('CATEGORIES', join(',', $categories)); + $vtodo->setString('PRIORITY', $priority); + + if ($due) { + $timezone = OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezone', date_default_timezone_get()); + $timezone = new DateTimeZone($timezone); + $due = new DateTime($due, $timezone); + $vtodo->setDateTime('DUE', $due); + } else { + unset($vtodo->DUE); + } + + if (!empty($percent_complete)) { + $vtodo->setString('PERCENT-COMPLETE', $percent_complete); + }else{ + $vtodo->__unset('PERCENT-COMPLETE'); + } + + if ($percent_complete == 100){ + if (!$completed){ + $completed = 'now'; + } + } else { + $completed = null; + } + if ($completed) { + $timezone = OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezone', date_default_timezone_get()); + $timezone = new DateTimeZone($timezone); + $completed = new DateTime($completed, $timezone); + $vtodo->setDateTime('COMPLETED', $completed); + } else { + unset($vtodo->COMPLETED); + } + + return $vcalendar; + } +} + diff --git a/apps/tasks/lib/vtodo.php b/apps/tasks/lib/vtodo.php index 967f5b87a54..dc2bfaf964c 100644 --- a/apps/tasks/lib/vtodo.php +++ b/apps/tasks/lib/vtodo.php @@ -21,138 +21,7 @@ */ /** - * This class manages our calendars + * This class manages our tasks */ class OC_Task_VTodo extends OC_Calendar_Object{ - public static function getPriorityOptions($l10n) - { - return array( - '' => $l10n->t('Unspecified'), - '1' => $l10n->t('1=highest'), - '2' => '2', - '3' => '3', - '4' => '4', - '5' => $l10n->t('5=medium'), - '6' => '6', - '7' => '7', - '8' => '8', - '9' => $l10n->t('9=lowest'), - ); - } - public static function validateRequest($request, $l10n=null) - { - $errors = array(); - if($request['summary'] == ''){ - $errors['summary'] = $l10n->t('Empty Summary'); - } - - if(isset($request['categories']) && !is_array($request['categories'])){ - $errors['categories'] = $l10n->t('Not an array'); - } - - try { - $timezone = OC_Preferences::getValue(OC_USER::getUser(), "calendar", "timezone", "Europe/London"); - $timezone = new DateTimeZone($timezone); - new DateTime($request['due'], $timezone); - } catch (Exception $e) { - $errors['due'] = $l10n->t('Invalid date/time'); - } - - if ($request['percent_complete'] < 0 || $request['percent_complete'] > 100){ - $errors['percent_complete'] = $l10n->t('Invalid percent complete'); - } - if ($request['percent_complete'] == 100 && !empty($request['completed'])){ - try { - $timezone = OC_Preferences::getValue(OC_USER::getUser(), "calendar", "timezone", "Europe/London"); - $timezone = new DateTimeZone($timezone); - new DateTime($request['completed'], $timezone); - } catch (Exception $e) { - $errors['completed'] = $l10n->t('Invalid date/time'); - } - } - - $priority_options = OC_Task_VTodo::getPriorityOptions($l10n); - if (!in_array($request['priority'], array_keys($priority_options))) { - $errors['priority'] = $l10n->t('Invalid priority'); - } - return $errors; - } - - public static function createVCalendarFromRequest($request) - { - $vcalendar = new Sabre_VObject_Component('VCALENDAR'); - $vcalendar->add('PRODID', 'ownCloud Calendar'); - $vcalendar->add('VERSION', '2.0'); - - $now = new DateTime(); - - $vtodo = new Sabre_VObject_Component('VTODO'); - $vcalendar->add($vtodo); - - $created = new Sabre_VObject_Element_DateTime('CREATED'); - $created->setDateTime($now, Sabre_VObject_Element_DateTime::UTC); - $vtodo->add($created); - - $uid = self::createUID(); - $vtodo->add('UID',$uid); - - return self::updateVCalendarFromRequest($request, $vcalendar); - } - - public static function updateVCalendarFromRequest($request, $vcalendar) - { - $summary = $request['summary']; - $categories = isset($request["categories"]) ? $request["categories"] : array(); - $priority = $request['priority']; - $percent_complete = $request['percent_complete']; - $completed = $request['completed']; - $location = $request['location']; - $due = $request['due']; - $description = $request['description']; - - $vtodo = $vcalendar->VTODO; - - $vtodo->setDateTime('LAST-MODIFIED', 'now', Sabre_VObject_Element_DateTime::UTC); - $vtodo->setDateTime('DTSTAMP', 'now', Sabre_VObject_Element_DateTime::UTC); - $vtodo->setString('SUMMARY', $summary); - - $vtodo->setString('LOCATION', $location); - $vtodo->setString('DESCRIPTION', $description); - $vtodo->setString('CATEGORIES', join(',', $categories)); - $vtodo->setString('PRIORITY', $priority); - - if ($due) { - $timezone = OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezone', date_default_timezone_get()); - $timezone = new DateTimeZone($timezone); - $due = new DateTime($due, $timezone); - $vtodo->setDateTime('DUE', $due); - } else { - unset($vtodo->DUE); - } - - if (!empty($percent_complete)) { - $vtodo->setString('PERCENT-COMPLETE', $percent_complete); - }else{ - $vtodo->__unset('PERCENT-COMPLETE'); - } - - if ($percent_complete == 100){ - if (!$completed){ - $completed = 'now'; - } - } else { - $completed = null; - } - if ($completed) { - $timezone = OC_Preferences::getValue(OC_USER::getUser(), 'calendar', 'timezone', date_default_timezone_get()); - $timezone = new DateTimeZone($timezone); - $completed = new DateTime($completed, $timezone); - $vtodo->setDateTime('COMPLETED', $completed); - } else { - unset($vtodo->COMPLETED); - } - - return $vcalendar; - } } - |