|
38 | 38 | use PKP\components\forms\publication\PKPPublicationIdentifiersForm;
|
39 | 39 | use PKP\components\forms\publication\PKPPublicationLicenseForm;
|
40 | 40 | use PKP\components\forms\publication\TitleAbstractForm;
|
| 41 | +use PKP\components\forms\submission\ChangeSubmissionLanguageMetadataForm; |
41 | 42 | use PKP\context\Context;
|
42 | 43 | use PKP\core\Core;
|
43 | 44 | use PKP\core\PKPApplication;
|
@@ -109,7 +110,8 @@ class PKPSubmissionController extends PKPBaseController
|
109 | 110 | 'getPublicationMetadataForm',
|
110 | 111 | 'getPublicationIdentifierForm',
|
111 | 112 | 'getPublicationLicenseForm',
|
112 |
| - 'getPublicationTitleAbstractForm' |
| 113 | + 'getPublicationTitleAbstractForm', |
| 114 | + 'getChangeLanguageMetadata' |
113 | 115 | ];
|
114 | 116 |
|
115 | 117 | /** @var array Handlers that must be authorized to write to a publication */
|
@@ -298,6 +300,7 @@ public function getGroupRoutes(): void
|
298 | 300 | Route::get('metadata', $this->getPublicationMetadataForm(...))->name('submission.publication._components.metadata');
|
299 | 301 | Route::get('reference', $this->getPublicationReferenceForm(...))->name('submission.publication._components.reference');
|
300 | 302 | Route::get('titleAbstract', $this->getPublicationTitleAbstractForm(...))->name('submission.publication._components.titleAbstract');
|
| 303 | + Route::get('changeLanguageMetadata', $this->getChangeLanguageMetadata(...))->name('submission.publication._components.changeLanguageMetadata'); |
301 | 304 | })->whereNumber(['submissionId', 'publicationId']);
|
302 | 305 | });
|
303 | 306 |
|
@@ -379,6 +382,7 @@ public function authorize(PKPRequest $request, array &$args, array $roleAssignme
|
379 | 382 | 'getPublicationIdentifierForm',
|
380 | 383 | 'getPublicationLicenseForm',
|
381 | 384 | 'getPublicationTitleAbstractForm',
|
| 385 | + 'getChangeLanguageMetadata' |
382 | 386 | ]
|
383 | 387 | )) {
|
384 | 388 | $this->addPolicy(new SubmissionCompletePolicy($request, $args));
|
@@ -1961,10 +1965,42 @@ protected function getPublicationTitleAbstractForm(Request $illuminateRequest):
|
1961 | 1965 | return response()->json([ 'error' => $data['error'],], $data['status']);
|
1962 | 1966 | }
|
1963 | 1967 |
|
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'); |
1965 | 1971 | $titleAbstract = new TitleAbstractForm($data['publicationApiUrl'], $locales, $data['publication']);
|
1966 | 1972 |
|
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); |
1968 | 2004 | }
|
1969 | 2005 |
|
1970 | 2006 | /**
|
|
0 commit comments