summaryrefslogtreecommitdiff
path: root/app/Http/Controllers/EditSourceController.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Http/Controllers/EditSourceController.php')
-rw-r--r--app/Http/Controllers/EditSourceController.php169
1 files changed, 90 insertions, 79 deletions
diff --git a/app/Http/Controllers/EditSourceController.php b/app/Http/Controllers/EditSourceController.php
index cdecd8dd55..35ff98ba15 100644
--- a/app/Http/Controllers/EditSourceController.php
+++ b/app/Http/Controllers/EditSourceController.php
@@ -26,97 +26,108 @@ use Symfony\Component\HttpFoundation\Response;
/**
* Controller for edit forms and responses.
*/
-class EditSourceController extends AbstractEditController {
- /**
- * Show a form to create a new source.
- *
- * @param Request $request
- *
- * @return Response
- */
- public function createSource(Request $request): Response {
- return new Response(view('modals/create-source'));
- }
+class EditSourceController extends AbstractEditController
+{
+ /**
+ * Show a form to create a new source.
+ *
+ * @param Request $request
+ *
+ * @return Response
+ */
+ public function createSource(Request $request): Response
+ {
+ return new Response(view('modals/create-source'));
+ }
- /**
- * Process a form to create a new source.
- *
- * @param Request $request
- *
- * @return JsonResponse
- */
- public function createSourceAction(Request $request): JsonResponse {
- /** @var Tree $tree */
- $tree = $request->attributes->get('tree');
- $title = $request->get('source-title', '');
- $abbreviation = $request->get('source-abbreviation', '');
- $author = $request->get('source-author', '');
- $publication = $request->get('source-publication', '');
- $repository = $request->get('source-repository', '');
- $call_number = $request->get('source-call-number', '');
- $text = $request->get('source-text', '');
- $privacy_restriction = $request->get('privacy-restriction', '');
- $edit_restriction = $request->get('edit-restriction', '');
+ /**
+ * Process a form to create a new source.
+ *
+ * @param Request $request
+ *
+ * @return JsonResponse
+ */
+ public function createSourceAction(Request $request): JsonResponse
+ {
+ /** @var Tree $tree */
+ $tree = $request->attributes->get('tree');
+ $title = $request->get('source-title', '');
+ $abbreviation = $request->get('source-abbreviation', '');
+ $author = $request->get('source-author', '');
+ $publication = $request->get('source-publication', '');
+ $repository = $request->get('source-repository', '');
+ $call_number = $request->get('source-call-number', '');
+ $text = $request->get('source-text', '');
+ $privacy_restriction = $request->get('privacy-restriction', '');
+ $edit_restriction = $request->get('edit-restriction', '');
- // Fix whitespace
- $title = trim(preg_replace('/\s+/', ' ', $title));
- $abbreviation = trim(preg_replace('/\s+/', ' ', $abbreviation));
- $author = trim(preg_replace('/\s+/', ' ', $author));
- $publication = trim(preg_replace('/\s+/', ' ', $publication));
- $repository = trim(preg_replace('/\s+/', ' ', $repository));
- $call_number = trim(preg_replace('/\s+/', ' ', $call_number));
+ // Fix whitespace
+ $title = trim(preg_replace('/\s+/', ' ', $title));
+ $abbreviation = trim(preg_replace('/\s+/', ' ', $abbreviation));
+ $author = trim(preg_replace('/\s+/', ' ', $author));
+ $publication = trim(preg_replace('/\s+/', ' ', $publication));
+ $repository = trim(preg_replace('/\s+/', ' ', $repository));
+ $call_number = trim(preg_replace('/\s+/', ' ', $call_number));
- // Convert line endings to GEDDCOM continuations
- $text = str_replace(["\r\n", "\r", "\n"], "\n1 CONT ", $text);
+ // Convert line endings to GEDDCOM continuations
+ $text = str_replace([
+ "\r\n",
+ "\r",
+ "\n",
+ ], "\n1 CONT ", $text);
- $gedcom = "0 @XREF@ SOUR\n\n1 TITL " . $title;
+ $gedcom = "0 @XREF@ SOUR\n\n1 TITL " . $title;
- if ($abbreviation !== '') {
- $gedcom .= "\n1 ABBR " . $abbreviation;
- }
+ if ($abbreviation !== '') {
+ $gedcom .= "\n1 ABBR " . $abbreviation;
+ }
- if ($author !== '') {
- $gedcom .= "\n1 AUTH " . $author;
- }
+ if ($author !== '') {
+ $gedcom .= "\n1 AUTH " . $author;
+ }
- if ($publication !== '') {
- $gedcom .= "\n1 PUBL " . $publication;
- }
+ if ($publication !== '') {
+ $gedcom .= "\n1 PUBL " . $publication;
+ }
- if ($text !== '') {
- $gedcom .= "\n1 TEXT " . $text;
- }
+ if ($text !== '') {
+ $gedcom .= "\n1 TEXT " . $text;
+ }
- if ($repository !== '') {
- $gedcom .= "\n1 REPO @" . $repository . '@';
+ if ($repository !== '') {
+ $gedcom .= "\n1 REPO @" . $repository . '@';
- if ($call_number !== '') {
- $gedcom .= "\n2 CALN " . $call_number;
- }
- }
+ if ($call_number !== '') {
+ $gedcom .= "\n2 CALN " . $call_number;
+ }
+ }
- if (in_array($privacy_restriction, ['none', 'privacy', 'confidential'])) {
- $gedcom .= "\n1 RESN " . $privacy_restriction;
- }
+ if (in_array($privacy_restriction, [
+ 'none',
+ 'privacy',
+ 'confidential',
+ ])) {
+ $gedcom .= "\n1 RESN " . $privacy_restriction;
+ }
- if (in_array($edit_restriction, ['locked'])) {
- $gedcom .= "\n1 RESN " . $edit_restriction;
- }
+ if (in_array($edit_restriction, ['locked'])) {
+ $gedcom .= "\n1 RESN " . $edit_restriction;
+ }
- $record = $tree->createRecord($gedcom);
+ $record = $tree->createRecord($gedcom);
- // id and text are for select2 / autocomplete
- // html is for interactive modals
- return new JsonResponse([
- 'id' => $record->getXref(),
- 'text' => view('selects/source', [
- 'source' => $record,
- ]),
- 'html' => view('modals/record-created', [
- 'title' => I18N::translate('The source has been created'),
- 'name' => $record->getFullName(),
- 'url' => $record->url(),
- ])
- ]);
- }
+ // id and text are for select2 / autocomplete
+ // html is for interactive modals
+ return new JsonResponse([
+ 'id' => $record->getXref(),
+ 'text' => view('selects/source', [
+ 'source' => $record,
+ ]),
+ 'html' => view('modals/record-created', [
+ 'title' => I18N::translate('The source has been created'),
+ 'name' => $record->getFullName(),
+ 'url' => $record->url(),
+ ]),
+ ]);
+ }
}