summaryrefslogtreecommitdiffstats
path: root/apps/tasks/lib
diff options
context:
space:
mode:
authorBart Visscher <bartv@thisnet.nl>2012-02-22 20:11:38 +0100
committerBart Visscher <bartv@thisnet.nl>2012-02-22 20:11:38 +0100
commit7f754c02f3728bf8d71e3e61264504c88e92bdd2 (patch)
tree0d841ebfa2df8cb36caffdfaea01a324776e33d2 /apps/tasks/lib
parent499ec15c26f23ee854a562358c43a11cd7a75e8e (diff)
downloadnextcloud-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.php162
-rw-r--r--apps/tasks/lib/vtodo.php133
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;
- }
}
-