From 1c67357db8432174c2a80bbb9c729f4ead44ca0d Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 22 Aug 2019 17:34:27 +0200 Subject: [PATCH] section and settings for users Signed-off-by: Arthur Schiwon --- apps/workflowengine/appinfo/info.xml | 3 + .../composer/composer/autoload_classmap.php | 2 + .../composer/composer/autoload_static.php | 2 + apps/workflowengine/lib/Settings/Admin.php | 102 +----------------- apps/workflowengine/lib/Settings/Personal.php | 32 ++++++ apps/workflowengine/lib/Settings/Section.php | 2 +- .../templates/{admin.php => settings.php} | 0 7 files changed, 45 insertions(+), 98 deletions(-) create mode 100644 apps/workflowengine/lib/Settings/Personal.php rename apps/workflowengine/templates/{admin.php => settings.php} (100%) diff --git a/apps/workflowengine/appinfo/info.xml b/apps/workflowengine/appinfo/info.xml index ddb2053828..e535ffa143 100644 --- a/apps/workflowengine/appinfo/info.xml +++ b/apps/workflowengine/appinfo/info.xml @@ -36,6 +36,9 @@ + OCA\WorkflowEngine\Settings\Admin OCA\WorkflowEngine\Settings\Section + OCA\WorkflowEngine\Settings\Admin + OCA\WorkflowEngine\Settings\Section diff --git a/apps/workflowengine/composer/composer/autoload_classmap.php b/apps/workflowengine/composer/composer/autoload_classmap.php index 81047b1061..637f1a8abf 100644 --- a/apps/workflowengine/composer/composer/autoload_classmap.php +++ b/apps/workflowengine/composer/composer/autoload_classmap.php @@ -30,6 +30,8 @@ return array( 'OCA\\WorkflowEngine\\Manager' => $baseDir . '/../lib/Manager.php', 'OCA\\WorkflowEngine\\Migration\\PopulateNewlyIntroducedDatabaseFields' => $baseDir . '/../lib/Migration/PopulateNewlyIntroducedDatabaseFields.php', 'OCA\\WorkflowEngine\\Migration\\Version2019Date20190808074233' => $baseDir . '/../lib/Migration/Version2019Date20190808074233.php', + 'OCA\\WorkflowEngine\\Settings\\ASettings' => $baseDir . '/../lib/Settings/ASettings.php', 'OCA\\WorkflowEngine\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', + 'OCA\\WorkflowEngine\\Settings\\Personal' => $baseDir . '/../lib/Settings/Personal.php', 'OCA\\WorkflowEngine\\Settings\\Section' => $baseDir . '/../lib/Settings/Section.php', ); diff --git a/apps/workflowengine/composer/composer/autoload_static.php b/apps/workflowengine/composer/composer/autoload_static.php index d016377ea5..edf3f3b051 100644 --- a/apps/workflowengine/composer/composer/autoload_static.php +++ b/apps/workflowengine/composer/composer/autoload_static.php @@ -45,7 +45,9 @@ class ComposerStaticInitWorkflowEngine 'OCA\\WorkflowEngine\\Manager' => __DIR__ . '/..' . '/../lib/Manager.php', 'OCA\\WorkflowEngine\\Migration\\PopulateNewlyIntroducedDatabaseFields' => __DIR__ . '/..' . '/../lib/Migration/PopulateNewlyIntroducedDatabaseFields.php', 'OCA\\WorkflowEngine\\Migration\\Version2019Date20190808074233' => __DIR__ . '/..' . '/../lib/Migration/Version2019Date20190808074233.php', + 'OCA\\WorkflowEngine\\Settings\\ASettings' => __DIR__ . '/..' . '/../lib/Settings/ASettings.php', 'OCA\\WorkflowEngine\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', + 'OCA\\WorkflowEngine\\Settings\\Personal' => __DIR__ . '/..' . '/../lib/Settings/Personal.php', 'OCA\\WorkflowEngine\\Settings\\Section' => __DIR__ . '/..' . '/../lib/Settings/Section.php', ); diff --git a/apps/workflowengine/lib/Settings/Admin.php b/apps/workflowengine/lib/Settings/Admin.php index 8ffd8533d3..39932d5f1f 100644 --- a/apps/workflowengine/lib/Settings/Admin.php +++ b/apps/workflowengine/lib/Settings/Admin.php @@ -24,103 +24,11 @@ declare(strict_types=1); namespace OCA\WorkflowEngine\Settings; -use OCA\WorkflowEngine\AppInfo\Application; -use OCA\WorkflowEngine\Manager; -use OCP\AppFramework\Http\TemplateResponse; -use OCP\IInitialStateService; -use OCP\IL10N; -use OCP\Settings\ISettings; -use OCP\WorkflowEngine\IEntity; -use OCP\WorkflowEngine\IEntityEvent; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; +class Admin extends ASettings { -class Admin implements ISettings { - - /** @var IL10N */ - private $l10n; - - /** @var string */ - private $appName; - - /** @var EventDispatcherInterface */ - private $eventDispatcher; - - /** @var Manager */ - private $manager; - - /** @var IInitialStateService */ - private $initialStateService; - - /** - * @param string $appName - * @param IL10N $l - * @param EventDispatcherInterface $eventDispatcher - */ - public function __construct( - $appName, - IL10N $l, - EventDispatcherInterface $eventDispatcher, - Manager $manager, - IInitialStateService $initialStateService - ) { - $this->appName = $appName; - $this->l10n = $l; - $this->eventDispatcher = $eventDispatcher; - $this->manager = $manager; - $this->initialStateService = $initialStateService; + function isAdmin(): bool { + return true; } - - /** - * @return TemplateResponse - */ - public function getForm() { - $this->eventDispatcher->dispatch('OCP\WorkflowEngine::loadAdditionalSettingScripts'); - - $entities = $this->manager->getEntitiesList(); - - $this->initialStateService->provideInitialState( - Application::APP_ID, - 'entities', - $this->entitiesToArray($entities) - ); - - return new TemplateResponse(Application::APP_ID, 'admin', [], 'blank'); - } - - /** - * @return string the section ID, e.g. 'sharing' - */ - public function getSection() { - return 'workflow'; - } - - /** - * @return int whether the form should be rather on the top or bottom of - * the admin section. The forms are arranged in ascending order of the - * priority values. It is required to return a value between 0 and 100. - * - * E.g.: 70 - */ - public function getPriority() { - return 0; - } - - private function entitiesToArray(array $entities) { - return array_map(function (IEntity $entity) { - $events = array_map(function(IEntityEvent $entityEvent) { - return [ - 'eventName' => $entityEvent->getEventName(), - 'displayName' => $entityEvent->getDisplayName() - ]; - }, $entity->getEvents()); - - return [ - 'id' => $entity->getId(), - 'icon' => $entity->getIcon(), - 'name' => $entity->getName(), - 'events' => $events, - ]; - }, $entities); - } - } + + diff --git a/apps/workflowengine/lib/Settings/Personal.php b/apps/workflowengine/lib/Settings/Personal.php new file mode 100644 index 0000000000..d6ed220577 --- /dev/null +++ b/apps/workflowengine/lib/Settings/Personal.php @@ -0,0 +1,32 @@ + + * + * @author Arthur Schiwon + * + * @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\WorkflowEngine\Settings; + +class Personal extends ASettings { + + function isAdmin(): bool { + return false; + } +} diff --git a/apps/workflowengine/lib/Settings/Section.php b/apps/workflowengine/lib/Settings/Section.php index 0ed6b222ff..031e9438d9 100644 --- a/apps/workflowengine/lib/Settings/Section.php +++ b/apps/workflowengine/lib/Settings/Section.php @@ -53,7 +53,7 @@ class Section implements IIconSection { * {@inheritdoc} */ public function getName() { - return $this->l->t('Tag management'); + return $this->l->t('Workflows'); } /** diff --git a/apps/workflowengine/templates/admin.php b/apps/workflowengine/templates/settings.php similarity index 100% rename from apps/workflowengine/templates/admin.php rename to apps/workflowengine/templates/settings.php