summaryrefslogtreecommitdiff
path: root/app/Http
diff options
context:
space:
mode:
Diffstat (limited to 'app/Http')
-rw-r--r--app/Http/RequestHandlers/SiteTagsAction.php57
-rw-r--r--app/Http/RequestHandlers/SiteTagsPage.php50
-rw-r--r--app/Http/Routes/WebRoutes.php4
3 files changed, 111 insertions, 0 deletions
diff --git a/app/Http/RequestHandlers/SiteTagsAction.php b/app/Http/RequestHandlers/SiteTagsAction.php
new file mode 100644
index 0000000000..7d71f32917
--- /dev/null
+++ b/app/Http/RequestHandlers/SiteTagsAction.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * webtrees: online genealogy
+ * Copyright (C) 2021 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\Gedcom;
+use Fisharebest\Webtrees\I18N;
+use Fisharebest\Webtrees\Site;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Server\RequestHandlerInterface;
+
+use function array_keys;
+use function redirect;
+use function route;
+
+/**
+ * Edit the tree preferences.
+ */
+class SiteTagsAction implements RequestHandlerInterface
+{
+ /**
+ * @param ServerRequestInterface $request
+ *
+ * @return ResponseInterface
+ */
+ public function handle(ServerRequestInterface $request): ResponseInterface
+ {
+ $params = (array) $request->getParsedBody();
+
+ foreach (array_keys(Gedcom::HIDDEN_TAGS) as $setting) {
+ $value = (bool) ($params['HIDE_' . $setting] ?? false);
+ Site::setPreference('HIDE_' . $setting, (string) $value);
+ }
+
+ 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
new file mode 100644
index 0000000000..fb6e7a936d
--- /dev/null
+++ b/app/Http/RequestHandlers/SiteTagsPage.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * webtrees: online genealogy
+ * Copyright (C) 2021 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\Http\ViewResponseTrait;
+use Fisharebest\Webtrees\I18N;
+use Fisharebest\Webtrees\Registry;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Server\RequestHandlerInterface;
+
+/**
+ * Edit the tree preferences.
+ */
+class SiteTagsPage implements RequestHandlerInterface
+{
+ use ViewResponseTrait;
+
+ /**
+ * @param ServerRequestInterface $request
+ *
+ * @return ResponseInterface
+ */
+ public function handle(ServerRequestInterface $request): ResponseInterface
+ {
+ $this->layout = 'layouts/administration';
+
+ return $this->viewResponse('admin/tags', [
+ 'element_factory' => Registry::elementFactory(),
+ 'title' => I18N::translate('GEDCOM tags'),
+ ]);
+ }
+}
diff --git a/app/Http/Routes/WebRoutes.php b/app/Http/Routes/WebRoutes.php
index dca3d1acf5..3e2f2039db 100644
--- a/app/Http/Routes/WebRoutes.php
+++ b/app/Http/Routes/WebRoutes.php
@@ -295,6 +295,8 @@ use Fisharebest\Webtrees\Http\RequestHandlers\TreePreferencesAction;
use Fisharebest\Webtrees\Http\RequestHandlers\TreePreferencesPage;
use Fisharebest\Webtrees\Http\RequestHandlers\TreePrivacyAction;
use Fisharebest\Webtrees\Http\RequestHandlers\TreePrivacyPage;
+use Fisharebest\Webtrees\Http\RequestHandlers\SiteTagsAction;
+use Fisharebest\Webtrees\Http\RequestHandlers\SiteTagsPage;
use Fisharebest\Webtrees\Http\RequestHandlers\UnconnectedAction;
use Fisharebest\Webtrees\Http\RequestHandlers\UnconnectedPage;
use Fisharebest\Webtrees\Http\RequestHandlers\UpgradeWizardConfirm;
@@ -433,6 +435,8 @@ class WebRoutes
$router->post(SitePreferencesAction::class, '/site-preferences');
$router->get(SiteRegistrationPage::class, '/site-registration');
$router->post(SiteRegistrationAction::class, '/site-registration');
+ $router->get(SiteTagsPage::class, '/tags');
+ $router->post(SiteTagsAction::class, '/tags');
$router->get(TreePageDefaultEdit::class, '/trees/default-blocks');
$router->post(TreePageDefaultUpdate::class, '/trees/default-blocks');
$router->get(MergeTreesPage::class, '/trees/merge');