summaryrefslogtreecommitdiff
path: root/app/Http/RequestHandlers
diff options
context:
space:
mode:
Diffstat (limited to 'app/Http/RequestHandlers')
-rw-r--r--app/Http/RequestHandlers/MapDataDelete.php2
-rw-r--r--app/Http/RequestHandlers/MapDataDeleteUnused.php61
-rw-r--r--app/Http/RequestHandlers/MapDataImportAction.php11
3 files changed, 62 insertions, 12 deletions
diff --git a/app/Http/RequestHandlers/MapDataDelete.php b/app/Http/RequestHandlers/MapDataDelete.php
index ba7c7b3949..ddeb4c67b6 100644
--- a/app/Http/RequestHandlers/MapDataDelete.php
+++ b/app/Http/RequestHandlers/MapDataDelete.php
@@ -28,7 +28,7 @@ use function redirect;
use function route;
/**
- * Delete a place location from the control panel.
+ * Delete a location from the control panel.
*/
class MapDataDelete implements RequestHandlerInterface
{
diff --git a/app/Http/RequestHandlers/MapDataDeleteUnused.php b/app/Http/RequestHandlers/MapDataDeleteUnused.php
new file mode 100644
index 0000000000..1b57b012e6
--- /dev/null
+++ b/app/Http/RequestHandlers/MapDataDeleteUnused.php
@@ -0,0 +1,61 @@
+<?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\PlaceLocation;
+use Fisharebest\Webtrees\Services\MapDataService;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Server\RequestHandlerInterface;
+
+use function redirect;
+use function route;
+
+/**
+ * Delete unused locations from the control panel.
+ */
+class MapDataDeleteUnused implements RequestHandlerInterface
+{
+ private MapDataService $map_data_service;
+
+ /**
+ * Dependency injection.
+ *
+ * @param MapDataService $map_data_service
+ */
+ public function __construct(MapDataService $map_data_service)
+ {
+ $this->map_data_service = $map_data_service;
+ }
+
+ /**
+ * @param ServerRequestInterface $request
+ *
+ * @return ResponseInterface
+ */
+ public function handle(ServerRequestInterface $request): ResponseInterface
+ {
+ $this->map_data_service->deleteUnusedLocations(null, [0]);
+
+ $url = route(MapDataList::class);
+
+ return redirect($url);
+ }
+}
diff --git a/app/Http/RequestHandlers/MapDataImportAction.php b/app/Http/RequestHandlers/MapDataImportAction.php
index 52cd2ebbc5..51b358ea9b 100644
--- a/app/Http/RequestHandlers/MapDataImportAction.php
+++ b/app/Http/RequestHandlers/MapDataImportAction.php
@@ -88,7 +88,6 @@ class MapDataImportAction implements RequestHandlerInterface
$serverfile = $params['serverfile'] ?? '';
$options = $params['import-options'] ?? '';
- $clear_database = (bool) ($params['cleardatabase'] ?? false);
$local_file = $request->getUploadedFiles()['localfile'] ?? null;
$places = [];
@@ -155,16 +154,6 @@ class MapDataImportAction implements RequestHandlerInterface
fclose($fp);
- if ($clear_database) {
- // Child places are deleted via on-delete-cascade...
- DB::table('place_location')
- ->whereNull('parent_id')
- ->delete();
-
- // Automatically import any new/missing places.
- $this->map_data_service->importMissingLocations();
- }
-
$added = 0;
$updated = 0;