diff options
Diffstat (limited to 'app/Http/RequestHandlers')
| -rw-r--r-- | app/Http/RequestHandlers/ControlPanel.php | 3 | ||||
| -rw-r--r-- | app/Http/RequestHandlers/ModulesCustomTagsAction.php | 50 | ||||
| -rw-r--r-- | app/Http/RequestHandlers/ModulesCustomTagsPage.php | 47 | ||||
| -rw-r--r-- | app/Http/RequestHandlers/SiteTagsAction.php | 14 | ||||
| -rw-r--r-- | app/Http/RequestHandlers/SiteTagsPage.php | 31 |
5 files changed, 40 insertions, 105 deletions
diff --git a/app/Http/RequestHandlers/ControlPanel.php b/app/Http/RequestHandlers/ControlPanel.php index 02e8c944f2..1814fb2e02 100644 --- a/app/Http/RequestHandlers/ControlPanel.php +++ b/app/Http/RequestHandlers/ControlPanel.php @@ -28,7 +28,6 @@ use Fisharebest\Webtrees\Module\ModuleAnalyticsInterface; use Fisharebest\Webtrees\Module\ModuleBlockInterface; use Fisharebest\Webtrees\Module\ModuleChartInterface; use Fisharebest\Webtrees\Module\ModuleCustomInterface; -use Fisharebest\Webtrees\Module\ModuleCustomTagsInterface; use Fisharebest\Webtrees\Module\ModuleDataFixInterface; use Fisharebest\Webtrees\Module\ModuleFooterInterface; use Fisharebest\Webtrees\Module\ModuleHistoricEventsInterface; @@ -186,8 +185,6 @@ class ControlPanel implements RequestHandlerInterface 'chart_modules_disabled' => $this->module_service->findByInterface(ModuleChartInterface::class, true), 'chart_modules_enabled' => $this->module_service->findByInterface(ModuleChartInterface::class), 'custom_updates' => $custom_updates, - 'custom_tags_modules_disabled' => $this->module_service->findByInterface(ModuleCustomTagsInterface::class, true), - 'custom_tags_modules_enabled' => $this->module_service->findByInterface(ModuleCustomTagsInterface::class), 'data_fix_modules_disabled' => $this->module_service->findByInterface(ModuleDataFixInterface::class, true), 'data_fix_modules_enabled' => $this->module_service->findByInterface(ModuleDataFixInterface::class), 'other_modules' => $this->module_service->otherModules(true), diff --git a/app/Http/RequestHandlers/ModulesCustomTagsAction.php b/app/Http/RequestHandlers/ModulesCustomTagsAction.php deleted file mode 100644 index 5dc6912529..0000000000 --- a/app/Http/RequestHandlers/ModulesCustomTagsAction.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php - -/** - * webtrees: online genealogy - * Copyright (C) 2022 webtrees development team - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU 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 General Public License for more details. - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - -declare(strict_types=1); - -namespace Fisharebest\Webtrees\Http\RequestHandlers; - -use Fisharebest\Webtrees\FlashMessages; -use Fisharebest\Webtrees\I18N; -use Fisharebest\Webtrees\Module\ModuleCustomTagsInterface; -use Psr\Http\Message\ResponseInterface; -use Psr\Http\Message\ServerRequestInterface; - -use function redirect; -use function route; - -/** - * Update a list of modules. - */ -class ModulesCustomTagsAction extends AbstractModuleComponentAction -{ - /** - * @param ServerRequestInterface $request - * - * @return ResponseInterface - */ - public function handle(ServerRequestInterface $request): ResponseInterface - { - $this->updateStatus(ModuleCustomTagsInterface::class, $request); - $this->updateAccessLevel(ModuleCustomTagsInterface::class, $request); - - FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); - - return redirect(route(ModulesCustomTagsPage::class)); - } -} diff --git a/app/Http/RequestHandlers/ModulesCustomTagsPage.php b/app/Http/RequestHandlers/ModulesCustomTagsPage.php deleted file mode 100644 index 3c77a259cd..0000000000 --- a/app/Http/RequestHandlers/ModulesCustomTagsPage.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php - -/** - * webtrees: online genealogy - * Copyright (C) 2022 webtrees development team - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU 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 General Public License for more details. - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - -declare(strict_types=1); - -namespace Fisharebest\Webtrees\Http\RequestHandlers; - -use Fisharebest\Webtrees\I18N; -use Fisharebest\Webtrees\Module\ModuleCustomTagsInterface; -use Psr\Http\Message\ResponseInterface; -use Psr\Http\Message\ServerRequestInterface; - -use function view; - -/** - * Show a list of modules. - */ -class ModulesCustomTagsPage extends AbstractModuleComponentPage -{ - /** - * @param ServerRequestInterface $request - * - * @return ResponseInterface - */ - public function handle(ServerRequestInterface $request): ResponseInterface - { - return $this->listComponents( - ModuleCustomTagsInterface::class, - view('icons/chart') . ' ' . I18N::translate('Custom GEDCOM tags'), - '' - ); - } -} diff --git a/app/Http/RequestHandlers/SiteTagsAction.php b/app/Http/RequestHandlers/SiteTagsAction.php index 8e6fac07b3..85ee2efc3e 100644 --- a/app/Http/RequestHandlers/SiteTagsAction.php +++ b/app/Http/RequestHandlers/SiteTagsAction.php @@ -23,11 +23,13 @@ use Fisharebest\Webtrees\FlashMessages; use Fisharebest\Webtrees\Gedcom; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Site; +use Fisharebest\Webtrees\Validator; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use function array_keys; +use function implode; use function redirect; use function route; @@ -43,13 +45,19 @@ class SiteTagsAction implements RequestHandlerInterface */ public function handle(ServerRequestInterface $request): ResponseInterface { - $params = (array) $request->getParsedBody(); - foreach (array_keys(Gedcom::HIDDEN_TAGS) as $setting) { - $value = (bool) ($params['HIDE_' . $setting] ?? false); + $value = Validator::parsedBody($request)->boolean('HIDE_' . $setting, false); Site::setPreference('HIDE_' . $setting, (string) $value); } + $custom_family_tags = Validator::parsedBody($request)->array('custom_family_tags'); + $custom_individual_tags = Validator::parsedBody($request)->array('custom_individual_tags'); + $custom_gedcom_l_tags = Validator::parsedBody($request)->boolean('custom_gedcom_l_tags', false); + + Site::setPreference('CUSTOM_FAMILY_TAGS', implode(',', $custom_family_tags)); + Site::setPreference('CUSTOM_INDIVIDUAL_TAGS', implode(',', $custom_individual_tags)); + Site::setPreference('CUSTOM_GEDCOM_L_TAGS', (string) $custom_gedcom_l_tags); + FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success'); return redirect(route(ControlPanel::class)); diff --git a/app/Http/RequestHandlers/SiteTagsPage.php b/app/Http/RequestHandlers/SiteTagsPage.php index 0b55704e2c..5e5d19d1cd 100644 --- a/app/Http/RequestHandlers/SiteTagsPage.php +++ b/app/Http/RequestHandlers/SiteTagsPage.php @@ -19,13 +19,18 @@ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\RequestHandlers; +use Fisharebest\Webtrees\Gedcom; use Fisharebest\Webtrees\Http\ViewResponseTrait; use Fisharebest\Webtrees\I18N; use Fisharebest\Webtrees\Registry; +use Fisharebest\Webtrees\Site; +use Illuminate\Support\Collection; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; +use function explode; + /** * Edit the tree preferences. */ @@ -42,9 +47,31 @@ class SiteTagsPage implements RequestHandlerInterface { $this->layout = 'layouts/administration'; + $custom_family_tags = explode(',', Site::getPreference('CUSTOM_FAMILY_TAGS')); + $custom_individual_tags = explode(',', Site::getPreference('CUSTOM_INDIVIDUAL_TAGS')); + + $all_family_tags = new Collection(Gedcom::CUSTOM_FAMILY_TAGS); + $all_individual_tags = new Collection(Gedcom::CUSTOM_INDIVIDUAL_TAGS); + + $all_family_tags = $all_family_tags->mapWithKeys( + static fn (string $tag): array => [$tag => Registry::elementFactory()->make('FAM:' . $tag)->label() . ' - ' . $tag] + ); + + $all_individual_tags = $all_individual_tags->mapWithKeys( + static fn (string $tag): array => [$tag => Registry::elementFactory()->make('INDI:' . $tag)->label(). ' - ' . $tag] + ); + + $custom_gedcom_l_tags = (bool) Site::getPreference('CUSTOM_GEDCOM_L_TAGS'); + + return $this->viewResponse('admin/tags', [ - 'element_factory' => Registry::elementFactory(), - 'title' => I18N::translate('GEDCOM tags'), + 'all_family_tags' => $all_family_tags->sort()->all(), + 'all_individual_tags' => $all_individual_tags->sort()->all(), + 'custom_family_tags' => $custom_family_tags, + 'custom_gedcom_l_tags' => $custom_gedcom_l_tags, + 'custom_individual_tags' => $custom_individual_tags, + 'element_factory' => Registry::elementFactory(), + 'title' => I18N::translate('GEDCOM tags'), ]); } } |
