]> source.dussan.org Git - nextcloud-server.git/commitdiff
Move CalDAV activity settings to new API
authorJoas Schilling <coding@schilljs.com>
Tue, 29 Nov 2016 14:06:54 +0000 (15:06 +0100)
committerJoas Schilling <coding@schilljs.com>
Tue, 29 Nov 2016 14:06:54 +0000 (15:06 +0100)
Signed-off-by: Joas Schilling <coding@schilljs.com>
apps/dav/appinfo/info.xml
apps/dav/lib/CalDAV/Activity/Extension.php
apps/dav/lib/CalDAV/Activity/Setting/Calendar.php [new file with mode: 0644]
apps/dav/lib/CalDAV/Activity/Setting/Event.php [new file with mode: 0644]
apps/dav/lib/CalDAV/Activity/Setting/Todo.php [new file with mode: 0644]

index 71eac02cbe41d4065e9f636d6edc2666af40893c..a8c4185f6c10f714bc063210e925e3a230b0d7da 100644 (file)
                        <filter>OCA\DAV\CalDAV\Activity\Filter\Calendar</filter>
                        <filter>OCA\DAV\CalDAV\Activity\Filter\Todo</filter>
                </filters>
+
+               <settings>
+                       <setting>OCA\DAV\CalDAV\Activity\Setting\Calendar</setting>
+                       <setting>OCA\DAV\CalDAV\Activity\Setting\Event</setting>
+                       <setting>OCA\DAV\CalDAV\Activity\Setting\Todo</setting>
+               </settings>
+
        </activity>
 </info>
index 3be6895690355070cc1f9ae8523194e5a3c13c52..47f4351aa49ed2a88b12220c625c522f234deeaa 100644 (file)
@@ -73,13 +73,7 @@ class Extension implements IExtension {
         * @return array|false
         */
        public function getNotificationTypes($languageCode) {
-               $l = $this->getL10N($languageCode);
-
-               return array(
-                       self::CALENDAR => (string) $l->t('A <strong>calendar</strong> was modified'),
-                       self::CALENDAR_EVENT => (string) $l->t('A calendar <strong>event</strong> was modified'),
-                       self::CALENDAR_TODO => (string) $l->t('A calendar <strong>todo</strong> was modified'),
-               );
+               return false;
        }
 
        /**
@@ -90,14 +84,7 @@ class Extension implements IExtension {
         * @return array|false
         */
        public function getDefaultTypes($method) {
-               $defaultTypes = [];
-               if ($method === self::METHOD_STREAM) {
-                       $defaultTypes[] = self::CALENDAR;
-                       $defaultTypes[] = self::CALENDAR_EVENT;
-                       $defaultTypes[] = self::CALENDAR_TODO;
-               }
-
-               return $defaultTypes;
+               return false;
        }
 
        /**
@@ -108,14 +95,6 @@ class Extension implements IExtension {
         * @return string|false
         */
        public function getTypeIcon($type) {
-               switch ($type) {
-                       case self::CALENDAR:
-                       case self::CALENDAR_EVENT:
-                               return 'icon-calendar-dark';
-                       case self::CALENDAR_TODO:
-                               return 'icon-checkmark';
-               }
-
                return false;
        }
 
diff --git a/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php b/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php
new file mode 100644 (file)
index 0000000..608ee26
--- /dev/null
@@ -0,0 +1,98 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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 program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\DAV\CalDAV\Activity\Setting;
+
+
+use OCP\Activity\ISetting;
+use OCP\IL10N;
+
+class Calendar implements ISetting {
+
+       /** @var IL10N */
+       protected $l;
+
+       /**
+        * @param IL10N $l
+        */
+       public function __construct(IL10N $l) {
+               $this->l = $l;
+       }
+
+       /**
+        * @return string Lowercase a-z and underscore only identifier
+        * @since 11.0.0
+        */
+       public function getIdentifier() {
+               return 'calendar';
+       }
+
+       /**
+        * @return string A translated string
+        * @since 11.0.0
+        */
+       public function getName() {
+               return $this->l->t('A <strong>calendar</strong> was modified');
+       }
+
+       /**
+        * @return int whether the filter should be rather on the top or bottom of
+        * the admin section. The filters are arranged in ascending order of the
+        * priority values. It is required to return a value between 0 and 100.
+        * @since 11.0.0
+        */
+       public function getPriority() {
+               return 50;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the stream
+        * @since 11.0.0
+        */
+       public function canChangeStream() {
+               return true;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the stream
+        * @since 11.0.0
+        */
+       public function isDefaultEnabledStream() {
+               return true;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the mail
+        * @since 11.0.0
+        */
+       public function canChangeMail() {
+               return true;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the stream
+        * @since 11.0.0
+        */
+       public function isDefaultEnabledMail() {
+               return false;
+       }
+}
+
diff --git a/apps/dav/lib/CalDAV/Activity/Setting/Event.php b/apps/dav/lib/CalDAV/Activity/Setting/Event.php
new file mode 100644 (file)
index 0000000..887cd22
--- /dev/null
@@ -0,0 +1,98 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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 program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\DAV\CalDAV\Activity\Setting;
+
+
+use OCP\Activity\ISetting;
+use OCP\IL10N;
+
+class Event implements ISetting {
+
+       /** @var IL10N */
+       protected $l;
+
+       /**
+        * @param IL10N $l
+        */
+       public function __construct(IL10N $l) {
+               $this->l = $l;
+       }
+
+       /**
+        * @return string Lowercase a-z and underscore only identifier
+        * @since 11.0.0
+        */
+       public function getIdentifier() {
+               return 'calendar_event';
+       }
+
+       /**
+        * @return string A translated string
+        * @since 11.0.0
+        */
+       public function getName() {
+               return $this->l->t('A calendar <strong>event</strong> was modified');
+       }
+
+       /**
+        * @return int whether the filter should be rather on the top or bottom of
+        * the admin section. The filters are arranged in ascending order of the
+        * priority values. It is required to return a value between 0 and 100.
+        * @since 11.0.0
+        */
+       public function getPriority() {
+               return 50;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the stream
+        * @since 11.0.0
+        */
+       public function canChangeStream() {
+               return true;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the stream
+        * @since 11.0.0
+        */
+       public function isDefaultEnabledStream() {
+               return true;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the mail
+        * @since 11.0.0
+        */
+       public function canChangeMail() {
+               return true;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the stream
+        * @since 11.0.0
+        */
+       public function isDefaultEnabledMail() {
+               return false;
+       }
+}
+
diff --git a/apps/dav/lib/CalDAV/Activity/Setting/Todo.php b/apps/dav/lib/CalDAV/Activity/Setting/Todo.php
new file mode 100644 (file)
index 0000000..0c8215f
--- /dev/null
@@ -0,0 +1,98 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program 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 program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\DAV\CalDAV\Activity\Setting;
+
+
+use OCP\Activity\ISetting;
+use OCP\IL10N;
+
+class Todo implements ISetting {
+
+       /** @var IL10N */
+       protected $l;
+
+       /**
+        * @param IL10N $l
+        */
+       public function __construct(IL10N $l) {
+               $this->l = $l;
+       }
+
+       /**
+        * @return string Lowercase a-z and underscore only identifier
+        * @since 11.0.0
+        */
+       public function getIdentifier() {
+               return 'calendar_todos';
+       }
+
+       /**
+        * @return string A translated string
+        * @since 11.0.0
+        */
+       public function getName() {
+               return $this->l->t('A calendar <strong>todo</strong> was modified');
+       }
+
+       /**
+        * @return int whether the filter should be rather on the top or bottom of
+        * the admin section. The filters are arranged in ascending order of the
+        * priority values. It is required to return a value between 0 and 100.
+        * @since 11.0.0
+        */
+       public function getPriority() {
+               return 50;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the stream
+        * @since 11.0.0
+        */
+       public function canChangeStream() {
+               return true;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the stream
+        * @since 11.0.0
+        */
+       public function isDefaultEnabledStream() {
+               return true;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the mail
+        * @since 11.0.0
+        */
+       public function canChangeMail() {
+               return true;
+       }
+
+       /**
+        * @return bool True when the option can be changed for the stream
+        * @since 11.0.0
+        */
+       public function isDefaultEnabledMail() {
+               return false;
+       }
+}
+