summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Http/RequestHandlers/EditNoteAction.php (renamed from app/Http/Controllers/EditNoteController.php)34
-rw-r--r--app/Http/RequestHandlers/EditNotePage.php63
-rw-r--r--app/Http/Routes/WebRoutes.php6
-rw-r--r--phpstan-baseline.neon10
-rw-r--r--resources/views/edit/shared-note.phtml11
-rw-r--r--resources/views/note-page-menu.phtml5
-rw-r--r--resources/views/note-page.phtml3
7 files changed, 94 insertions, 38 deletions
diff --git a/app/Http/Controllers/EditNoteController.php b/app/Http/RequestHandlers/EditNoteAction.php
index 25b69232cc..e131973091 100644
--- a/app/Http/Controllers/EditNoteController.php
+++ b/app/Http/RequestHandlers/EditNoteAction.php
@@ -17,21 +17,21 @@
declare(strict_types=1);
-namespace Fisharebest\Webtrees\Http\Controllers;
+namespace Fisharebest\Webtrees\Http\RequestHandlers;
use Fisharebest\Webtrees\Auth;
-use Fisharebest\Webtrees\I18N;
use Fisharebest\Webtrees\Registry;
use Fisharebest\Webtrees\Tree;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Server\RequestHandlerInterface;
use function assert;
/**
- * Controller for edit forms and responses.
+ * Edit note objects.
*/
-class EditNoteController extends AbstractBaseController
+class EditNoteAction implements RequestHandlerInterface
{
/**
* Show a form to create a new note object.
@@ -40,31 +40,7 @@ class EditNoteController extends AbstractBaseController
*
* @return ResponseInterface
*/
- public function editNoteObject(ServerRequestInterface $request): ResponseInterface
- {
- $tree = $request->getAttribute('tree');
- assert($tree instanceof Tree);
-
- $xref = $request->getAttribute('xref');
-
- $note = Registry::noteFactory()->make($xref, $tree);
- $note = Auth::checkNoteAccess($note, true);
-
- return $this->viewResponse('edit/shared-note', [
- 'note' => $note,
- 'title' => I18N::translate('Edit the shared note'),
- 'tree' => $tree,
- ]);
- }
-
- /**
- * Show a form to create a new note object.
- *
- * @param ServerRequestInterface $request
- *
- * @return ResponseInterface
- */
- public function updateNoteObject(ServerRequestInterface $request): ResponseInterface
+ public function handle(ServerRequestInterface $request): ResponseInterface
{
$tree = $request->getAttribute('tree');
assert($tree instanceof Tree);
diff --git a/app/Http/RequestHandlers/EditNotePage.php b/app/Http/RequestHandlers/EditNotePage.php
new file mode 100644
index 0000000000..b74e1fa3b8
--- /dev/null
+++ b/app/Http/RequestHandlers/EditNotePage.php
@@ -0,0 +1,63 @@
+<?php
+
+/**
+ * webtrees: online genealogy
+ * Copyright (C) 2020 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 <http://www.gnu.org/licenses/>.
+ */
+
+declare(strict_types=1);
+
+namespace Fisharebest\Webtrees\Http\RequestHandlers;
+
+use Fisharebest\Webtrees\Auth;
+use Fisharebest\Webtrees\Http\ViewResponseTrait;
+use Fisharebest\Webtrees\I18N;
+use Fisharebest\Webtrees\Registry;
+use Fisharebest\Webtrees\Tree;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Server\RequestHandlerInterface;
+
+use function assert;
+
+/**
+ * Edit note objects.
+ */
+class EditNotePage implements RequestHandlerInterface
+{
+ use ViewResponseTrait;
+
+ /**
+ * Show a form to create a new note object.
+ *
+ * @param ServerRequestInterface $request
+ *
+ * @return ResponseInterface
+ */
+ public function handle(ServerRequestInterface $request): ResponseInterface
+ {
+ $tree = $request->getAttribute('tree');
+ assert($tree instanceof Tree);
+
+ $xref = $request->getAttribute('xref');
+
+ $note = Registry::noteFactory()->make($xref, $tree);
+ $note = Auth::checkNoteAccess($note, true);
+
+ return $this->viewResponse('edit/shared-note', [
+ 'note' => $note,
+ 'title' => I18N::translate('Edit the shared note'),
+ 'tree' => $tree,
+ ]);
+ }
+}
diff --git a/app/Http/Routes/WebRoutes.php b/app/Http/Routes/WebRoutes.php
index e407e11819..3433579884 100644
--- a/app/Http/Routes/WebRoutes.php
+++ b/app/Http/Routes/WebRoutes.php
@@ -90,6 +90,8 @@ use Fisharebest\Webtrees\Http\RequestHandlers\DeleteUser;
use Fisharebest\Webtrees\Http\RequestHandlers\EditFactAction;
use Fisharebest\Webtrees\Http\RequestHandlers\EditFactPage;
use Fisharebest\Webtrees\Http\RequestHandlers\EditName;
+use Fisharebest\Webtrees\Http\RequestHandlers\EditNoteAction;
+use Fisharebest\Webtrees\Http\RequestHandlers\EditNotePage;
use Fisharebest\Webtrees\Http\RequestHandlers\EditRawFactAction;
use Fisharebest\Webtrees\Http\RequestHandlers\EditRawFactPage;
use Fisharebest\Webtrees\Http\RequestHandlers\EditRawRecordAction;
@@ -496,8 +498,8 @@ class WebRoutes
$router->post(EditFactAction::class, '/update-fact/{xref}{/fact_id}');
$router->get('edit-media-file', '/edit-media-file', 'EditMediaController::editMediaFile');
$router->post('edit-media-file-update', '/edit-media-file', 'EditMediaController::editMediaFileAction');
- $router->get('edit-note-object', '/edit-note-object/{xref}', 'EditNoteController::editNoteObject');
- $router->post('edit-note-object-action', '/edit-note-object/{xref}', 'EditNoteController::updateNoteObject');
+ $router->get(EditNotePage::class, '/edit-note-object/{xref}', EditNotePage::class);
+ $router->post(EditNoteAction::class, '/edit-note-object/{xref}', EditNoteAction::class);
$router->get(EditRawFactPage::class, '/edit-raw/{xref}/{fact_id}');
$router->post(EditRawFactAction::class, '/edit-raw/{xref}/{fact_id}');
$router->get(EditRawRecordPage::class, '/edit-raw/{xref}');
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index f276406ed8..2e00a9e55e 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -390,11 +390,6 @@ parameters:
path: app/Http/Controllers/EditMediaController.php
-
- message: "#^Parameter \\#1 \\$gedcom of method Fisharebest\\\\Webtrees\\\\GedcomRecord\\:\\:updateRecord\\(\\) expects string, string\\|null given\\.$#"
- count: 1
- path: app/Http/Controllers/EditNoteController.php
-
- -
message: "#^Parameter \\#1 \\$path of method Psr\\\\Http\\\\Message\\\\UriInterface\\:\\:withPath\\(\\) expects string, string\\|false given\\.$#"
count: 1
path: app/Http/Middleware/BaseUrl.php
@@ -495,6 +490,11 @@ parameters:
path: app/Http/RequestHandlers/DeleteRecord.php
-
+ message: "#^Parameter \\#1 \\$gedcom of method Fisharebest\\\\Webtrees\\\\GedcomRecord\\:\\:updateRecord\\(\\) expects string, string\\|null given\\.$#"
+ count: 1
+ path: app/Http/RequestHandlers/EditNoteAction.php
+
+ -
message: "#^Parameter \\#1 \\$str of function trim expects string, string\\|null given\\.$#"
count: 1
path: app/Http/RequestHandlers/EditRawRecordAction.php
diff --git a/resources/views/edit/shared-note.phtml b/resources/views/edit/shared-note.phtml
index 6b1ed7d924..24400db010 100644
--- a/resources/views/edit/shared-note.phtml
+++ b/resources/views/edit/shared-note.phtml
@@ -1,12 +1,21 @@
<?php
+use Fisharebest\Webtrees\Http\RequestHandlers\EditNoteAction;
use Fisharebest\Webtrees\I18N;
+use Fisharebest\Webtrees\Note;
+use Fisharebest\Webtrees\Tree;
+
+/**
+ * @var Note $note
+ * @var string $title
+ * @var Tree $tree
+ */
?>
<h2 class="wt-page-title"><?= $title ?></h2>
-<form method="post" action="<?= e(route('edit-note-object-action', ['tree' => $tree->name(), 'xref' => $note->xref()])) ?>" class="wt-page-options">
+<form method="post" action="<?= e(route(EditNoteAction::class, ['tree' => $tree->name(), 'xref' => $note->xref()])) ?>" class="wt-page-options">
<?= csrf_field() ?>
<div class="row form-group">
diff --git a/resources/views/note-page-menu.phtml b/resources/views/note-page-menu.phtml
index 132cb1baea..82926aba54 100644
--- a/resources/views/note-page-menu.phtml
+++ b/resources/views/note-page-menu.phtml
@@ -4,6 +4,11 @@ use Fisharebest\Webtrees\Auth;
use Fisharebest\Webtrees\Http\RequestHandlers\DeleteRecord;
use Fisharebest\Webtrees\Http\RequestHandlers\EditRawRecordPage;
use Fisharebest\Webtrees\I18N;
+use Fisharebest\Webtrees\Note;
+
+/**
+ * @var Note $record
+ */
?>
diff --git a/resources/views/note-page.phtml b/resources/views/note-page.phtml
index daa60a9e1f..760fbcce0a 100644
--- a/resources/views/note-page.phtml
+++ b/resources/views/note-page.phtml
@@ -5,6 +5,7 @@ use Fisharebest\Webtrees\Fact;
use Fisharebest\Webtrees\Family;
use Fisharebest\Webtrees\Functions\FunctionsPrint;
use Fisharebest\Webtrees\Functions\FunctionsPrintFacts;
+use Fisharebest\Webtrees\Http\RequestHandlers\EditNotePage;
use Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesAcceptRecord;
use Fisharebest\Webtrees\Http\RequestHandlers\PendingChangesRejectRecord;
use Fisharebest\Webtrees\I18N;
@@ -97,7 +98,7 @@ use Illuminate\Support\Collection;
<?= I18N::translate('Shared note') ?>
<?php if (Auth::isEditor($note->tree())) : ?>
<div class="editfacts nowrap">
- <a class="btn btn-link" href="<?= e(route('edit-note-object', ['xref' => $note->xref(), 'tree' => $note->tree()->name()])) ?>" title="<?= I18N::translate('Edit') ?>">
+ <a class="btn btn-link" href="<?= e(route(EditNotePage::class, ['xref' => $note->xref(), 'tree' => $note->tree()->name()])) ?>" title="<?= I18N::translate('Edit') ?>">
<?= view('icons/edit') ?>
<span class="sr-only">
<?= I18N::translate('Edit') ?>