diff options
Diffstat (limited to 'apps/dav/lib/Settings/CalDAVSettings.php')
-rw-r--r-- | apps/dav/lib/Settings/CalDAVSettings.php | 89 |
1 files changed, 45 insertions, 44 deletions
diff --git a/apps/dav/lib/Settings/CalDAVSettings.php b/apps/dav/lib/Settings/CalDAVSettings.php index f7bad2e2e2c..5e19539a899 100644 --- a/apps/dav/lib/Settings/CalDAVSettings.php +++ b/apps/dav/lib/Settings/CalDAVSettings.php @@ -1,66 +1,57 @@ <?php + /** - * @copyright 2017, Georg Ehrke <oc.list@georgehrke.com> - * - * @author Georg Ehrke <oc.list@georgehrke.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Thomas Citharel <nextcloud@tcit.fr> - * - * @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/>. - * + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ - namespace OCA\DAV\Settings; +use OCA\DAV\AppInfo\Application; +use OCP\App\IAppManager; use OCP\AppFramework\Http\TemplateResponse; +use OCP\AppFramework\Services\IInitialState; use OCP\IConfig; -use OCP\Settings\ISettings; +use OCP\IURLGenerator; +use OCP\Settings\IDelegatedSettings; -class CalDAVSettings implements ISettings { +class CalDAVSettings implements IDelegatedSettings { - /** @var IConfig */ - private $config; + private const defaults = [ + 'sendInvitations' => 'yes', + 'generateBirthdayCalendar' => 'yes', + 'sendEventReminders' => 'yes', + 'sendEventRemindersToSharedUsers' => 'yes', + 'sendEventRemindersPush' => 'yes', + ]; /** * CalDAVSettings constructor. * * @param IConfig $config + * @param IInitialState $initialState */ - public function __construct(IConfig $config) { - $this->config = $config; + public function __construct( + private IConfig $config, + private IInitialState $initialState, + private IURLGenerator $urlGenerator, + private IAppManager $appManager, + ) { } - /** - * @return TemplateResponse - */ - public function getForm() { - $parameters = [ - 'send_invitations' => $this->config->getAppValue('dav', 'sendInvitations', 'yes'), - 'generate_birthday_calendar' => $this->config->getAppValue('dav', 'generateBirthdayCalendar', 'yes'), - 'send_reminders_notifications' => $this->config->getAppValue('dav', 'sendEventReminders', 'yes'), - 'send_reminders_notifications_push' => $this->config->getAppValue('dav', 'sendEventRemindersPush', 'no'), - ]; - - return new TemplateResponse('dav', 'settings-admin-caldav', $parameters); + public function getForm(): TemplateResponse { + $this->initialState->provideInitialState('userSyncCalendarsDocUrl', $this->urlGenerator->linkToDocs('user-sync-calendars')); + foreach (self::defaults as $key => $default) { + $value = $this->config->getAppValue(Application::APP_ID, $key, $default); + $this->initialState->provideInitialState($key, $value === 'yes'); + } + return new TemplateResponse(Application::APP_ID, 'settings-admin-caldav'); } - /** - * @return string - */ - public function getSection() { + public function getSection(): ?string { + if (!$this->appManager->isBackendRequired(IAppManager::BACKEND_CALDAV)) { + return null; + } + return 'groupware'; } @@ -70,4 +61,14 @@ class CalDAVSettings implements ISettings { public function getPriority() { return 10; } + + public function getName(): ?string { + return null; // Only setting in this section + } + + public function getAuthorizedAppConfig(): array { + return [ + 'dav' => ['/(' . implode('|', array_keys(self::defaults)) . ')/'] + ]; + } } |