@@ -41,37 +41,44 @@ public function __construct($action, $method, $dataset, $page)
4141 'value ' => $ datasetMetadata ['title ' ],
4242 'size ' => 'large ' ,
4343 ]))
44- ->addField (new FieldRichTextarea ('datasetDescription ' , [
45- 'label ' => __ ('plugins.generic.dataverse.metadataForm.description ' ),
46- 'isRequired ' => true ,
47- 'toolbar ' => 'bold italic superscript subscript | link | blockquote bullist numlist | image | code ' ,
48- 'plugins ' => 'paste,link,lists,image,code ' ,
49- 'value ' => $ datasetMetadata ['description ' ]
50- ]))
51- ->addField (new FieldControlledVocab ('datasetKeywords ' , [
52- 'label ' => __ ('plugins.generic.dataverse.metadataForm.keyword ' ),
53- 'tooltip ' => __ ('manager.setup.metadata.keywords.description ' ),
54- 'apiUrl ' => $ this ->getVocabSuggestionUrlBase (),
55- 'isMultilingual ' => true ,
56- 'locales ' => $ this ->locales ,
57- 'value ' => $ datasetMetadata ['keywords ' ]
58- ]));
44+ ->addField (new FieldRichTextarea ('datasetDescription ' , [
45+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.description ' ),
46+ 'isRequired ' => true ,
47+ 'toolbar ' => 'bold italic superscript subscript | link | blockquote bullist numlist | image | code ' ,
48+ 'plugins ' => 'paste,link,lists,image,code ' ,
49+ 'value ' => $ datasetMetadata ['description ' ]
50+ ]))
51+ ->addField (new FieldControlledVocab ('datasetKeywords ' , [
52+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.keyword ' ),
53+ 'tooltip ' => __ ('manager.setup.metadata.keywords.description ' ),
54+ 'apiUrl ' => $ this ->getVocabSuggestionUrlBase (),
55+ 'isMultilingual ' => true ,
56+ 'locales ' => $ this ->locales ,
57+ 'value ' => $ datasetMetadata ['keywords ' ]
58+ ]));
5959 }
6060
61- $ this ->addField (new FieldSelect ('datasetSubject ' , [
62- 'label ' => __ ('plugins.generic.dataverse.metadataForm.subject .label ' ),
63- 'description ' => ($ page == 'submission ' ? __ ('plugins.generic.dataverse.metadataForm.subject .description ' ) : '' ),
61+ $ this ->addField (new FieldSelect ('datasetLanguage ' , [
62+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.language .label ' ),
63+ 'description ' => ($ page == 'submission ' ? __ ('plugins.generic.dataverse.metadataForm.language .description ' ) : '' ),
6464 'isRequired ' => true ,
65- 'options ' => $ dataverseMetadata -> getDataverseSubjects (),
66- 'value ' => $ datasetMetadata ['subject ' ],
65+ 'options ' => $ this -> getAvailableLanguages (),
66+ 'value ' => $ datasetMetadata ['language ' ],
6767 ]))
68- ->addField (new FieldSelect ('datasetLicense ' , [
69- 'label ' => __ ('plugins.generic.dataverse.metadataForm.license.label ' ),
70- 'description ' => ($ page == 'submission ' ? __ ('plugins.generic.dataverse.metadataForm.license.description ' ) : '' ),
71- 'isRequired ' => true ,
72- 'options ' => $ this ->mapLicensesForDisplay ($ dataverseLicenses ),
73- 'value ' => $ datasetMetadata ['license ' ],
74- ]));
68+ ->addField (new FieldSelect ('datasetSubject ' , [
69+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.subject.label ' ),
70+ 'description ' => ($ page == 'submission ' ? __ ('plugins.generic.dataverse.metadataForm.subject.description ' ) : '' ),
71+ 'isRequired ' => true ,
72+ 'options ' => $ dataverseMetadata ->getDataverseSubjects (),
73+ 'value ' => $ datasetMetadata ['subject ' ],
74+ ]))
75+ ->addField (new FieldSelect ('datasetLicense ' , [
76+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.license.label ' ),
77+ 'description ' => ($ page == 'submission ' ? __ ('plugins.generic.dataverse.metadataForm.license.description ' ) : '' ),
78+ 'isRequired ' => true ,
79+ 'options ' => $ this ->mapLicensesForDisplay ($ dataverseLicenses ),
80+ 'value ' => $ datasetMetadata ['license ' ],
81+ ]));
7582
7683 try {
7784 $ flattenedFields = $ this ->getFlattenedRequiredMetadataFields ();
@@ -112,7 +119,7 @@ private function buildFieldConfig($field, $dataset): array
112119 private function mapControlledVocabularyOptions (array $ values ): array
113120 {
114121 return array_map (
115- static fn ($ value ) => ['label ' => $ value , 'value ' => $ value ],
122+ fn ($ value ) => ['label ' => $ value , 'value ' => $ value ],
116123 $ values
117124 );
118125 }
@@ -141,6 +148,7 @@ private function getDatasetMetadata($dataset)
141148 'title ' => '' ,
142149 'description ' => '' ,
143150 'keywords ' => [Locale::getLocale () => []],
151+ 'language ' => '' ,
144152 'subject ' => '' ,
145153 'license ' => ''
146154 ];
@@ -153,6 +161,7 @@ private function getDatasetMetadata($dataset)
153161 'title ' => $ dataset ->getTitle (),
154162 'description ' => $ dataset ->getDescription (),
155163 'keywords ' => $ mappedKeywords ,
164+ 'language ' => $ dataset ->getLanguage (),
156165 'subject ' => $ dataset ->getSubject (),
157166 'license ' => $ dataset ->getLicense ()
158167 ];
@@ -165,6 +174,19 @@ private function getVocabSuggestionUrlBase()
165174 return $ request ->getDispatcher ()->url ($ request , Application::ROUTE_API , $ contextPath , 'vocabs ' , null , null , ['vocab ' => 'submissionKeyword ' ]);
166175 }
167176
177+ private function getAvailableLanguages (): array
178+ {
179+ $ context = Application::get ()->getRequest ()->getContext ();
180+ $ availableLanguages = [];
181+
182+ foreach ($ context ->getSupportedSubmissionLocales () as $ locale ) {
183+ $ languageName = \Locale::getDisplayLanguage ($ locale , 'en ' );
184+ $ availableLanguages [] = ['key ' => $ languageName , 'label ' => $ languageName ];
185+ }
186+
187+ return $ availableLanguages ;
188+ }
189+
168190 private function mapCurrentLocale (): array
169191 {
170192 $ localeKey = Locale::getLocale ();
0 commit comments