From ca2124a2a17d1dc977bc5a3d31a6066b0833e58a Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 25 Oct 2016 18:23:51 +0200 Subject: [PATCH] Register the settings of the files app via info.xml Signed-off-by: Joas Schilling --- apps/files/appinfo/info.xml | 8 ++ apps/files/lib/Activity.php | 21 +--- .../lib/Activity/Settings/FileChanged.php | 98 +++++++++++++++++++ .../lib/Activity/Settings/FileCreated.php | 98 +++++++++++++++++++ .../lib/Activity/Settings/FileDeleted.php | 98 +++++++++++++++++++ .../lib/Activity/Settings/FileFavorite.php | 98 +++++++++++++++++++ .../lib/Activity/Settings/FileRestored.php | 98 +++++++++++++++++++ 7 files changed, 499 insertions(+), 20 deletions(-) create mode 100644 apps/files/lib/Activity/Settings/FileChanged.php create mode 100644 apps/files/lib/Activity/Settings/FileCreated.php create mode 100644 apps/files/lib/Activity/Settings/FileDeleted.php create mode 100644 apps/files/lib/Activity/Settings/FileFavorite.php create mode 100644 apps/files/lib/Activity/Settings/FileRestored.php diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml index d19c57dffe0..53452f4b071 100644 --- a/apps/files/appinfo/info.xml +++ b/apps/files/appinfo/info.xml @@ -18,6 +18,14 @@ + + OCA\Files\Activity\Settings\FileChanged + OCA\Files\Activity\Settings\FileCreated + OCA\Files\Activity\Settings\FileDeleted + OCA\Files\Activity\Settings\FileFavorite + OCA\Files\Activity\Settings\FileRestored + + OCA\Files\Activity\Filter\FileChanges OCA\Files\Activity\Filter\Favorites diff --git a/apps/files/lib/Activity.php b/apps/files/lib/Activity.php index f60f4f16f0a..0155a3b7e9e 100644 --- a/apps/files/lib/Activity.php +++ b/apps/files/lib/Activity.php @@ -96,17 +96,7 @@ class Activity implements IExtension { * ] */ public function getNotificationTypes($languageCode) { - $l = $this->getL10N($languageCode); - return [ - self::TYPE_SHARE_CREATED => (string) $l->t('A new file or folder has been created'), - self::TYPE_SHARE_CHANGED => (string) $l->t('A file or folder has been changed or renamed'), - self::TYPE_FAVORITES => [ - 'desc' => (string) $l->t('Limit notifications about creation and changes to your favorite files (Stream only)'), - 'methods' => [self::METHOD_STREAM], - ], - self::TYPE_SHARE_DELETED => (string) $l->t('A file or folder has been deleted'), - self::TYPE_SHARE_RESTORED => (string) $l->t('A file or folder has been restored'), - ]; + return false; } /** @@ -117,15 +107,6 @@ class Activity implements IExtension { * @return array|false */ public function getDefaultTypes($method) { - if ($method === self::METHOD_STREAM) { - $settings = array(); - $settings[] = self::TYPE_SHARE_CREATED; - $settings[] = self::TYPE_SHARE_CHANGED; - $settings[] = self::TYPE_SHARE_DELETED; - $settings[] = self::TYPE_SHARE_RESTORED; - return $settings; - } - return false; } diff --git a/apps/files/lib/Activity/Settings/FileChanged.php b/apps/files/lib/Activity/Settings/FileChanged.php new file mode 100644 index 00000000000..d0ff69faf5b --- /dev/null +++ b/apps/files/lib/Activity/Settings/FileChanged.php @@ -0,0 +1,98 @@ + + * + * @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 . + * + */ + +namespace OCA\Files\Activity\Settings; + + +use OCP\Activity\ISetting; +use OCP\IL10N; + +class FileChanged 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 9.2.0 + */ + public function getIdentifier() { + return 'file_changed'; + } + + /** + * @return string A translated string + * @since 9.2.0 + */ + public function getName() { + return $this->l->t('A file or folder has been changed or renamed'); + } + + /** + * @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 9.2.0 + */ + public function getPriority() { + return 1; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function canChangeStream() { + return true; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledStream() { + return true; + } + + /** + * @return bool True when the option can be changed for the mail + * @since 9.2.0 + */ + public function canChangeMail() { + return true; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledMail() { + return false; + } +} + diff --git a/apps/files/lib/Activity/Settings/FileCreated.php b/apps/files/lib/Activity/Settings/FileCreated.php new file mode 100644 index 00000000000..e0ae23a5fe5 --- /dev/null +++ b/apps/files/lib/Activity/Settings/FileCreated.php @@ -0,0 +1,98 @@ + + * + * @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 . + * + */ + +namespace OCA\Files\Activity\Settings; + + +use OCP\Activity\ISetting; +use OCP\IL10N; + +class FileCreated 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 9.2.0 + */ + public function getIdentifier() { + return 'file_created'; + } + + /** + * @return string A translated string + * @since 9.2.0 + */ + public function getName() { + return $this->l->t('A new file or folder has been created'); + } + + /** + * @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 9.2.0 + */ + public function getPriority() { + return 0; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function canChangeStream() { + return true; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledStream() { + return true; + } + + /** + * @return bool True when the option can be changed for the mail + * @since 9.2.0 + */ + public function canChangeMail() { + return true; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledMail() { + return false; + } +} + diff --git a/apps/files/lib/Activity/Settings/FileDeleted.php b/apps/files/lib/Activity/Settings/FileDeleted.php new file mode 100644 index 00000000000..9378186fab5 --- /dev/null +++ b/apps/files/lib/Activity/Settings/FileDeleted.php @@ -0,0 +1,98 @@ + + * + * @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 . + * + */ + +namespace OCA\Files\Activity\Settings; + + +use OCP\Activity\ISetting; +use OCP\IL10N; + +class FileDeleted 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 9.2.0 + */ + public function getIdentifier() { + return 'file_deleted'; + } + + /** + * @return string A translated string + * @since 9.2.0 + */ + public function getName() { + return $this->l->t('A new file or folder has been deleted'); + } + + /** + * @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 9.2.0 + */ + public function getPriority() { + return 3; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function canChangeStream() { + return true; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledStream() { + return true; + } + + /** + * @return bool True when the option can be changed for the mail + * @since 9.2.0 + */ + public function canChangeMail() { + return true; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledMail() { + return false; + } +} + diff --git a/apps/files/lib/Activity/Settings/FileFavorite.php b/apps/files/lib/Activity/Settings/FileFavorite.php new file mode 100644 index 00000000000..00ac41b8e82 --- /dev/null +++ b/apps/files/lib/Activity/Settings/FileFavorite.php @@ -0,0 +1,98 @@ + + * + * @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 . + * + */ + +namespace OCA\Files\Activity\Settings; + + +use OCP\Activity\ISetting; +use OCP\IL10N; + +class FileFavorite 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 9.2.0 + */ + public function getIdentifier() { + return 'file_favorite'; + } + + /** + * @return string A translated string + * @since 9.2.0 + */ + public function getName() { + return $this->l->t('Limit notifications about creation and changes to your favorite files (Stream only)'); + } + + /** + * @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 9.2.0 + */ + public function getPriority() { + return 2; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function canChangeStream() { + return true; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledStream() { + return false; + } + + /** + * @return bool True when the option can be changed for the mail + * @since 9.2.0 + */ + public function canChangeMail() { + return false; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledMail() { + return false; + } +} + diff --git a/apps/files/lib/Activity/Settings/FileRestored.php b/apps/files/lib/Activity/Settings/FileRestored.php new file mode 100644 index 00000000000..bc6ec171254 --- /dev/null +++ b/apps/files/lib/Activity/Settings/FileRestored.php @@ -0,0 +1,98 @@ + + * + * @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 . + * + */ + +namespace OCA\Files\Activity\Settings; + + +use OCP\Activity\ISetting; +use OCP\IL10N; + +class FileRestored 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 9.2.0 + */ + public function getIdentifier() { + return 'file_restored'; + } + + /** + * @return string A translated string + * @since 9.2.0 + */ + public function getName() { + return $this->l->t('A new file or folder has been restored'); + } + + /** + * @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 9.2.0 + */ + public function getPriority() { + return 4; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function canChangeStream() { + return true; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledStream() { + return true; + } + + /** + * @return bool True when the option can be changed for the mail + * @since 9.2.0 + */ + public function canChangeMail() { + return true; + } + + /** + * @return bool True when the option can be changed for the stream + * @since 9.2.0 + */ + public function isDefaultEnabledMail() { + return false; + } +} + -- 2.39.5