summaryrefslogtreecommitdiff
path: root/app/Http/RequestHandlers
diff options
context:
space:
mode:
Diffstat (limited to 'app/Http/RequestHandlers')
-rw-r--r--app/Http/RequestHandlers/ControlPanel.php3
-rw-r--r--app/Http/RequestHandlers/ModulesMapLinksAction.php49
-rw-r--r--app/Http/RequestHandlers/ModulesMapLinksPage.php47
3 files changed, 99 insertions, 0 deletions
diff --git a/app/Http/RequestHandlers/ControlPanel.php b/app/Http/RequestHandlers/ControlPanel.php
index 3f4f62ad87..2eddda1ded 100644
--- a/app/Http/RequestHandlers/ControlPanel.php
+++ b/app/Http/RequestHandlers/ControlPanel.php
@@ -33,6 +33,7 @@ use Fisharebest\Webtrees\Module\ModuleFooterInterface;
use Fisharebest\Webtrees\Module\ModuleHistoricEventsInterface;
use Fisharebest\Webtrees\Module\ModuleLanguageInterface;
use Fisharebest\Webtrees\Module\ModuleListInterface;
+use Fisharebest\Webtrees\Module\ModuleMapLinkInterface;
use Fisharebest\Webtrees\Module\ModuleMenuInterface;
use Fisharebest\Webtrees\Module\ModuleReportInterface;
use Fisharebest\Webtrees\Module\ModuleShareInterface;
@@ -192,6 +193,8 @@ class ControlPanel implements RequestHandlerInterface
'language_modules_enabled' => $this->module_service->findByInterface(ModuleLanguageInterface::class),
'list_modules_disabled' => $this->module_service->findByInterface(ModuleListInterface::class, true),
'list_modules_enabled' => $this->module_service->findByInterface(ModuleListInterface::class),
+ 'map_link_modules_disabled' => $this->module_service->findByInterface(ModuleMapLinkInterface::class, true),
+ 'map_link_modules_enabled' => $this->module_service->findByInterface(ModuleMapLinkInterface::class),
'menu_modules_disabled' => $this->module_service->findByInterface(ModuleMenuInterface::class, true),
'menu_modules_enabled' => $this->module_service->findByInterface(ModuleMenuInterface::class),
'report_modules_disabled' => $this->module_service->findByInterface(ModuleReportInterface::class, true),
diff --git a/app/Http/RequestHandlers/ModulesMapLinksAction.php b/app/Http/RequestHandlers/ModulesMapLinksAction.php
new file mode 100644
index 0000000000..9714a1099a
--- /dev/null
+++ b/app/Http/RequestHandlers/ModulesMapLinksAction.php
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * webtrees: online genealogy
+ * Copyright (C) 20 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\ModuleMapLinkInterface;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+
+use function redirect;
+use function route;
+
+/**
+ * Update a list of modules.
+ */
+class ModulesMapLinksAction extends AbstractModuleComponentAction
+{
+ /**
+ * @param ServerRequestInterface $request
+ *
+ * @return ResponseInterface
+ */
+ public function handle(ServerRequestInterface $request): ResponseInterface
+ {
+ $this->updateStatus(ModuleMapLinkInterface::class, $request);
+
+ FlashMessages::addMessage(I18N::translate('The website preferences have been updated.'), 'success');
+
+ return redirect(route(ControlPanel::class));
+ }
+}
diff --git a/app/Http/RequestHandlers/ModulesMapLinksPage.php b/app/Http/RequestHandlers/ModulesMapLinksPage.php
new file mode 100644
index 0000000000..883af572be
--- /dev/null
+++ b/app/Http/RequestHandlers/ModulesMapLinksPage.php
@@ -0,0 +1,47 @@
+<?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\I18N;
+use Fisharebest\Webtrees\Module\ModuleMapLinkInterface;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+
+use function view;
+
+/**
+ * Show a list of modules.
+ */
+class ModulesMapLinksPage extends AbstractModuleComponentPage
+{
+ /**
+ * @param ServerRequestInterface $request
+ *
+ * @return ResponseInterface
+ */
+ public function handle(ServerRequestInterface $request): ResponseInterface
+ {
+ return $this->listComponents(
+ ModuleMapLinkInterface::class,
+ view('icons/location') . I18N::translate('Map links'),
+ I18N::translate('Show the location of an event on an external map.')
+ );
+ }
+}