diff options
author | John Molakvoæ <skjnldsv@users.noreply.github.com> | 2024-11-06 08:54:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-06 08:54:40 +0100 |
commit | 8fab143aa486904f7a17c4f1c2f6364cd43bf9d9 (patch) | |
tree | 91381cb6382ea0d1b006ba00c9e4b7d7b418bb97 /apps | |
parent | 01ad23aaaa3e18fa30fb6bef85e8bd2cc3c3e054 (diff) | |
parent | bcfb02f5d79796cae2fe45b9b64926eae51680a1 (diff) | |
download | nextcloud-server-8fab143aa486904f7a17c4f1c2f6364cd43bf9d9.tar.gz nextcloud-server-8fab143aa486904f7a17c4f1c2f6364cd43bf9d9.zip |
Merge pull request #48721 from nextcloud/feat/allow-getter-setter-decl-fors
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files/composer/composer/autoload_classmap.php | 4 | ||||
-rw-r--r-- | apps/files/composer/composer/autoload_static.php | 4 | ||||
-rw-r--r-- | apps/files/lib/AppInfo/Application.php | 12 | ||||
-rw-r--r-- | apps/files/lib/Listener/DeclarativeSettingsGetValueEventListener.php | 39 | ||||
-rw-r--r-- | apps/files/lib/Listener/DeclarativeSettingsSetValueEventListener.php | 40 | ||||
-rw-r--r-- | apps/files/lib/Settings/DeclarativeAdminSettings.php (renamed from apps/files/lib/Listener/DeclarativeSettingsRegisterFormEventListener.php) | 36 |
6 files changed, 28 insertions, 107 deletions
diff --git a/apps/files/composer/composer/autoload_classmap.php b/apps/files/composer/composer/autoload_classmap.php index 4be3f54c006..e9e45bbd84a 100644 --- a/apps/files/composer/composer/autoload_classmap.php +++ b/apps/files/composer/composer/autoload_classmap.php @@ -58,9 +58,6 @@ return array( 'OCA\\Files\\Event\\LoadSidebar' => $baseDir . '/../lib/Event/LoadSidebar.php', 'OCA\\Files\\Exception\\TransferOwnershipException' => $baseDir . '/../lib/Exception/TransferOwnershipException.php', 'OCA\\Files\\Helper' => $baseDir . '/../lib/Helper.php', - 'OCA\\Files\\Listener\\DeclarativeSettingsGetValueEventListener' => $baseDir . '/../lib/Listener/DeclarativeSettingsGetValueEventListener.php', - 'OCA\\Files\\Listener\\DeclarativeSettingsRegisterFormEventListener' => $baseDir . '/../lib/Listener/DeclarativeSettingsRegisterFormEventListener.php', - 'OCA\\Files\\Listener\\DeclarativeSettingsSetValueEventListener' => $baseDir . '/../lib/Listener/DeclarativeSettingsSetValueEventListener.php', 'OCA\\Files\\Listener\\LoadSearchPluginsListener' => $baseDir . '/../lib/Listener/LoadSearchPluginsListener.php', 'OCA\\Files\\Listener\\LoadSidebarListener' => $baseDir . '/../lib/Listener/LoadSidebarListener.php', 'OCA\\Files\\Listener\\RenderReferenceEventListener' => $baseDir . '/../lib/Listener/RenderReferenceEventListener.php', @@ -79,5 +76,6 @@ return array( 'OCA\\Files\\Service\\TagService' => $baseDir . '/../lib/Service/TagService.php', 'OCA\\Files\\Service\\UserConfig' => $baseDir . '/../lib/Service/UserConfig.php', 'OCA\\Files\\Service\\ViewConfig' => $baseDir . '/../lib/Service/ViewConfig.php', + 'OCA\\Files\\Settings\\DeclarativeAdminSettings' => $baseDir . '/../lib/Settings/DeclarativeAdminSettings.php', 'OCA\\Files\\Settings\\PersonalSettings' => $baseDir . '/../lib/Settings/PersonalSettings.php', ); diff --git a/apps/files/composer/composer/autoload_static.php b/apps/files/composer/composer/autoload_static.php index 292768fc64f..59695e60fc7 100644 --- a/apps/files/composer/composer/autoload_static.php +++ b/apps/files/composer/composer/autoload_static.php @@ -73,9 +73,6 @@ class ComposerStaticInitFiles 'OCA\\Files\\Event\\LoadSidebar' => __DIR__ . '/..' . '/../lib/Event/LoadSidebar.php', 'OCA\\Files\\Exception\\TransferOwnershipException' => __DIR__ . '/..' . '/../lib/Exception/TransferOwnershipException.php', 'OCA\\Files\\Helper' => __DIR__ . '/..' . '/../lib/Helper.php', - 'OCA\\Files\\Listener\\DeclarativeSettingsGetValueEventListener' => __DIR__ . '/..' . '/../lib/Listener/DeclarativeSettingsGetValueEventListener.php', - 'OCA\\Files\\Listener\\DeclarativeSettingsRegisterFormEventListener' => __DIR__ . '/..' . '/../lib/Listener/DeclarativeSettingsRegisterFormEventListener.php', - 'OCA\\Files\\Listener\\DeclarativeSettingsSetValueEventListener' => __DIR__ . '/..' . '/../lib/Listener/DeclarativeSettingsSetValueEventListener.php', 'OCA\\Files\\Listener\\LoadSearchPluginsListener' => __DIR__ . '/..' . '/../lib/Listener/LoadSearchPluginsListener.php', 'OCA\\Files\\Listener\\LoadSidebarListener' => __DIR__ . '/..' . '/../lib/Listener/LoadSidebarListener.php', 'OCA\\Files\\Listener\\RenderReferenceEventListener' => __DIR__ . '/..' . '/../lib/Listener/RenderReferenceEventListener.php', @@ -94,6 +91,7 @@ class ComposerStaticInitFiles 'OCA\\Files\\Service\\TagService' => __DIR__ . '/..' . '/../lib/Service/TagService.php', 'OCA\\Files\\Service\\UserConfig' => __DIR__ . '/..' . '/../lib/Service/UserConfig.php', 'OCA\\Files\\Service\\ViewConfig' => __DIR__ . '/..' . '/../lib/Service/ViewConfig.php', + 'OCA\\Files\\Settings\\DeclarativeAdminSettings' => __DIR__ . '/..' . '/../lib/Settings/DeclarativeAdminSettings.php', 'OCA\\Files\\Settings\\PersonalSettings' => __DIR__ . '/..' . '/../lib/Settings/PersonalSettings.php', ); diff --git a/apps/files/lib/AppInfo/Application.php b/apps/files/lib/AppInfo/Application.php index 3d2d0527072..d50a8d14f5a 100644 --- a/apps/files/lib/AppInfo/Application.php +++ b/apps/files/lib/AppInfo/Application.php @@ -16,9 +16,6 @@ use OCA\Files\Controller\ApiController; use OCA\Files\DirectEditingCapabilities; use OCA\Files\Event\LoadSearchPlugins; use OCA\Files\Event\LoadSidebar; -use OCA\Files\Listener\DeclarativeSettingsGetValueEventListener; -use OCA\Files\Listener\DeclarativeSettingsRegisterFormEventListener; -use OCA\Files\Listener\DeclarativeSettingsSetValueEventListener; use OCA\Files\Listener\LoadSearchPluginsListener; use OCA\Files\Listener\LoadSidebarListener; use OCA\Files\Listener\RenderReferenceEventListener; @@ -28,6 +25,7 @@ use OCA\Files\Search\FilesSearchProvider; use OCA\Files\Service\TagService; use OCA\Files\Service\UserConfig; use OCA\Files\Service\ViewConfig; +use OCA\Files\Settings\DeclarativeAdminSettings; use OCP\Activity\IManager as IActivityManager; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; @@ -49,9 +47,6 @@ use OCP\IRequest; use OCP\IServerContainer; use OCP\ITagManager; use OCP\IUserSession; -use OCP\Settings\Events\DeclarativeSettingsGetValueEvent; -use OCP\Settings\Events\DeclarativeSettingsRegisterFormEvent; -use OCP\Settings\Events\DeclarativeSettingsSetValueEvent; use OCP\Share\IManager as IShareManager; use OCP\Util; use Psr\Container\ContainerInterface; @@ -111,6 +106,8 @@ class Application extends App implements IBootstrap { $context->registerCapability(Capabilities::class); $context->registerCapability(DirectEditingCapabilities::class); + $context->registerDeclarativeSettings(DeclarativeAdminSettings::class); + $context->registerEventListener(LoadSidebar::class, LoadSidebarListener::class); $context->registerEventListener(RenderReferenceEvent::class, RenderReferenceEventListener::class); $context->registerEventListener(BeforeNodeRenamedEvent::class, SyncLivePhotosListener::class); @@ -119,9 +116,6 @@ class Application extends App implements IBootstrap { $context->registerEventListener(BeforeNodeCopiedEvent::class, SyncLivePhotosListener::class); $context->registerEventListener(NodeCopiedEvent::class, SyncLivePhotosListener::class); $context->registerEventListener(LoadSearchPlugins::class, LoadSearchPluginsListener::class); - $context->registerEventListener(DeclarativeSettingsRegisterFormEvent::class, DeclarativeSettingsRegisterFormEventListener::class); - $context->registerEventListener(DeclarativeSettingsGetValueEvent::class, DeclarativeSettingsGetValueEventListener::class); - $context->registerEventListener(DeclarativeSettingsSetValueEvent::class, DeclarativeSettingsSetValueEventListener::class); $context->registerSearchProvider(FilesSearchProvider::class); diff --git a/apps/files/lib/Listener/DeclarativeSettingsGetValueEventListener.php b/apps/files/lib/Listener/DeclarativeSettingsGetValueEventListener.php deleted file mode 100644 index b1d0ee3a395..00000000000 --- a/apps/files/lib/Listener/DeclarativeSettingsGetValueEventListener.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php - -declare(strict_types=1); -/** - * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -namespace OCA\Files\Listener; - -use OCA\Files\AppInfo\Application; -use OCA\Files\Service\SettingsService; -use OCP\EventDispatcher\Event; -use OCP\EventDispatcher\IEventListener; -use OCP\Settings\Events\DeclarativeSettingsGetValueEvent; - -/** @template-implements IEventListener<DeclarativeSettingsGetValueEvent> */ -class DeclarativeSettingsGetValueEventListener implements IEventListener { - - public function __construct( - private SettingsService $service, - ) { - } - - public function handle(Event $event): void { - if (!($event instanceof DeclarativeSettingsGetValueEvent)) { - return; - } - - if ($event->getApp() !== Application::APP_ID) { - return; - } - - $event->setValue( - match($event->getFieldId()) { - 'windows_support' => $this->service->hasFilesWindowsSupport(), - } - ); - } -} diff --git a/apps/files/lib/Listener/DeclarativeSettingsSetValueEventListener.php b/apps/files/lib/Listener/DeclarativeSettingsSetValueEventListener.php deleted file mode 100644 index a3be2b9141e..00000000000 --- a/apps/files/lib/Listener/DeclarativeSettingsSetValueEventListener.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php - -declare(strict_types=1); -/** - * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -namespace OCA\Files\Listener; - -use OCA\Files\AppInfo\Application; -use OCA\Files\Service\SettingsService; -use OCP\EventDispatcher\Event; -use OCP\EventDispatcher\IEventListener; -use OCP\Settings\Events\DeclarativeSettingsSetValueEvent; - -/** @template-implements IEventListener<DeclarativeSettingsSetValueEvent> */ -class DeclarativeSettingsSetValueEventListener implements IEventListener { - - public function __construct( - private SettingsService $service, - ) { - } - - public function handle(Event $event): void { - if (!($event instanceof DeclarativeSettingsSetValueEvent)) { - return; - } - - if ($event->getApp() !== Application::APP_ID) { - return; - } - - switch ($event->getFieldId()) { - case 'windows_support': - $this->service->setFilesWindowsSupport((bool)$event->getValue()); - $event->stopPropagation(); - break; - } - } -} diff --git a/apps/files/lib/Listener/DeclarativeSettingsRegisterFormEventListener.php b/apps/files/lib/Settings/DeclarativeAdminSettings.php index 51832e89ecb..e509ad2233b 100644 --- a/apps/files/lib/Listener/DeclarativeSettingsRegisterFormEventListener.php +++ b/apps/files/lib/Settings/DeclarativeAdminSettings.php @@ -2,32 +2,42 @@ declare(strict_types=1); /** - * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -namespace OCA\Files\Listener; +namespace OCA\Files\Settings; -use OCA\Files\AppInfo\Application; -use OCP\EventDispatcher\Event; -use OCP\EventDispatcher\IEventListener; +use OCA\Files\Service\SettingsService; use OCP\IL10N; +use OCP\IUser; use OCP\Settings\DeclarativeSettingsTypes; -use OCP\Settings\Events\DeclarativeSettingsRegisterFormEvent; +use OCP\Settings\IDeclarativeSettingsFormWithHandlers; -/** @template-implements IEventListener<DeclarativeSettingsRegisterFormEvent> */ -class DeclarativeSettingsRegisterFormEventListener implements IEventListener { +class DeclarativeAdminSettings implements IDeclarativeSettingsFormWithHandlers { public function __construct( private IL10N $l, + private SettingsService $service, ) { } - public function handle(Event $event): void { - if (!($event instanceof DeclarativeSettingsRegisterFormEvent)) { - return; + public function getValue(string $fieldId, IUser $user): mixed { + return match($fieldId) { + 'windows_support' => $this->service->hasFilesWindowsSupport(), + default => throw new \InvalidArgumentException('Unexpected field id ' . $fieldId), + }; + } + + public function setValue(string $fieldId, mixed $value, IUser $user): void { + switch ($fieldId) { + case 'windows_support': + $this->service->setFilesWindowsSupport((bool)$value); + break; } + } - $event->registerSchema(Application::APP_ID, [ + public function getSchema(): array { + return [ 'id' => 'files-filename-support', 'priority' => 10, 'section_type' => DeclarativeSettingsTypes::SECTION_TYPE_ADMIN, @@ -45,6 +55,6 @@ class DeclarativeSettingsRegisterFormEventListener implements IEventListener { 'default' => false, ], ], - ]); + ]; } } |