diff options
| -rw-r--r-- | app/Http/RequestHandlers/EditNoteAction.php (renamed from app/Http/Controllers/EditNoteController.php) | 34 | ||||
| -rw-r--r-- | app/Http/RequestHandlers/EditNotePage.php | 63 | ||||
| -rw-r--r-- | app/Http/Routes/WebRoutes.php | 6 | ||||
| -rw-r--r-- | phpstan-baseline.neon | 10 | ||||
| -rw-r--r-- | resources/views/edit/shared-note.phtml | 11 | ||||
| -rw-r--r-- | resources/views/note-page-menu.phtml | 5 | ||||
| -rw-r--r-- | resources/views/note-page.phtml | 3 |
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') ?> |
