Skip to content

Commit 40eaf66

Browse files
authored
Merge branch 'pkp:main' into structured-citations
2 parents 336d6f7 + a92a27f commit 40eaf66

File tree

1 file changed

+39
-3
lines changed

1 file changed

+39
-3
lines changed

api/v1/submissions/PKPSubmissionController.php

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
use PKP\components\forms\publication\PKPPublicationIdentifiersForm;
3939
use PKP\components\forms\publication\PKPPublicationLicenseForm;
4040
use PKP\components\forms\publication\TitleAbstractForm;
41+
use PKP\components\forms\submission\ChangeSubmissionLanguageMetadataForm;
4142
use PKP\context\Context;
4243
use PKP\core\Core;
4344
use PKP\core\PKPApplication;
@@ -109,7 +110,8 @@ class PKPSubmissionController extends PKPBaseController
109110
'getPublicationMetadataForm',
110111
'getPublicationIdentifierForm',
111112
'getPublicationLicenseForm',
112-
'getPublicationTitleAbstractForm'
113+
'getPublicationTitleAbstractForm',
114+
'getChangeLanguageMetadata'
113115
];
114116

115117
/** @var array Handlers that must be authorized to write to a publication */
@@ -298,6 +300,7 @@ public function getGroupRoutes(): void
298300
Route::get('metadata', $this->getPublicationMetadataForm(...))->name('submission.publication._components.metadata');
299301
Route::get('reference', $this->getPublicationReferenceForm(...))->name('submission.publication._components.reference');
300302
Route::get('titleAbstract', $this->getPublicationTitleAbstractForm(...))->name('submission.publication._components.titleAbstract');
303+
Route::get('changeLanguageMetadata', $this->getChangeLanguageMetadata(...))->name('submission.publication._components.changeLanguageMetadata');
301304
})->whereNumber(['submissionId', 'publicationId']);
302305
});
303306

@@ -379,6 +382,7 @@ public function authorize(PKPRequest $request, array &$args, array $roleAssignme
379382
'getPublicationIdentifierForm',
380383
'getPublicationLicenseForm',
381384
'getPublicationTitleAbstractForm',
385+
'getChangeLanguageMetadata'
382386
]
383387
)) {
384388
$this->addPolicy(new SubmissionCompletePolicy($request, $args));
@@ -1961,10 +1965,42 @@ protected function getPublicationTitleAbstractForm(Request $illuminateRequest):
19611965
return response()->json([ 'error' => $data['error'],], $data['status']);
19621966
}
19631967

1964-
$locales = $this->getPublicationFormLocales($data['context'], $data['submission']);
1968+
$submission = $data['submission']; /** @var Submission $submission */
1969+
$locales = $this->getPublicationFormLocales($data['context'], $submission);
1970+
$submissionLocale = $submission->getData('locale');
19651971
$titleAbstract = new TitleAbstractForm($data['publicationApiUrl'], $locales, $data['publication']);
19661972

1967-
return response()->json($titleAbstract->getConfig(), Response::HTTP_OK);
1973+
return response()->json($this->getLocalizedForm($titleAbstract, $submissionLocale, $locales), Response::HTTP_OK);
1974+
}
1975+
1976+
/**
1977+
* Get ChangeSubmissionLanguageMetadata Form component
1978+
*/
1979+
protected function getChangeLanguageMetadata(Request $illuminateRequest): JsonResponse
1980+
{
1981+
$request = $this->getRequest();
1982+
$data = $this->getSubmissionAndPublicationData($illuminateRequest);
1983+
1984+
if (isset($data['error'])) {
1985+
return response()->json(['error' => $data['error']], $data['status']);
1986+
}
1987+
1988+
$context = $data['context']; /** @var Context $context*/
1989+
$submission = $data['submission']; /** @var Submission $submission */
1990+
$publication = $data['publication']; /** @var Publication $publication*/
1991+
$locales = $this->getPublicationFormLocales($context, $submission);
1992+
1993+
$changeSubmissionLanguageApiUrl = $request->getDispatcher()->url(
1994+
$request,
1995+
Application::ROUTE_API,
1996+
$context->getData('urlPath'),
1997+
"submissions/{$submission->getId()}/publications/{$publication->getId()}/changeLocale"
1998+
);
1999+
2000+
$changeSubmissionLanguageMetadataForm = new ChangeSubmissionLanguageMetadataForm($changeSubmissionLanguageApiUrl, $submission, $publication, $context);
2001+
$submissionLocale = $submission->getData('locale');
2002+
2003+
return response()->json($this->getLocalizedForm($changeSubmissionLanguageMetadataForm, $submissionLocale, $locales), Response::HTTP_OK);
19682004
}
19692005

19702006
/**

0 commit comments

Comments
 (0)