@@ -29,33 +29,39 @@ public function __construct($action, $method, $locales, $dataset)
2929 'value ' => $ datasetMetadata ['title ' ],
3030 'size ' => 'large ' ,
3131 ]))
32- ->addField (new FieldRichTextarea ('datasetDescription ' , [
33- 'label ' => __ ('plugins.generic.dataverse.metadataForm.description ' ),
34- 'isRequired ' => true ,
35- 'toolbar ' => 'bold italic superscript subscript | link | blockquote bullist numlist | image | code ' ,
36- 'plugins ' => 'paste,link,lists,image,code ' ,
37- 'value ' => $ datasetMetadata ['description ' ]
38- ]))
39- ->addField (new FieldControlledVocab ('datasetKeywords ' , [
40- 'label ' => __ ('plugins.generic.dataverse.metadataForm.keyword ' ),
41- 'tooltip ' => __ ('manager.setup.metadata.keywords.description ' ),
42- 'apiUrl ' => $ this ->getVocabSuggestionUrlBase (),
43- 'locales ' => $ this ->locales ,
44- 'selected ' => $ datasetMetadata ['keywords ' ],
45- 'value ' => $ datasetMetadata ['keywords ' ]
46- ]))
47- ->addField (new FieldSelect ('datasetSubject ' , [
48- 'label ' => __ ('plugins.generic.dataverse.metadataForm.subject.label ' ),
49- 'isRequired ' => true ,
50- 'options ' => $ dataverseMetadata ->getDataverseSubjects (),
51- 'value ' => $ datasetMetadata ['subject ' ],
52- ]))
53- ->addField (new FieldSelect ('datasetLicense ' , [
54- 'label ' => __ ('plugins.generic.dataverse.metadataForm.license.label ' ),
55- 'isRequired ' => true ,
56- 'options ' => [],
57- 'value ' => $ datasetMetadata ['license ' ],
58- ]));
32+ ->addField (new FieldRichTextarea ('datasetDescription ' , [
33+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.description ' ),
34+ 'isRequired ' => true ,
35+ 'toolbar ' => 'bold italic superscript subscript | link | blockquote bullist numlist | image | code ' ,
36+ 'plugins ' => 'paste,link,lists,image,code ' ,
37+ 'value ' => $ datasetMetadata ['description ' ]
38+ ]))
39+ ->addField (new FieldControlledVocab ('datasetKeywords ' , [
40+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.keyword ' ),
41+ 'tooltip ' => __ ('manager.setup.metadata.keywords.description ' ),
42+ 'apiUrl ' => $ this ->getVocabSuggestionUrlBase (),
43+ 'locales ' => $ this ->locales ,
44+ 'selected ' => $ datasetMetadata ['keywords ' ],
45+ 'value ' => $ datasetMetadata ['keywords ' ]
46+ ]))
47+ ->addField (new FieldSelect ('datasetLanguage ' , [
48+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.language.label ' ),
49+ 'isRequired ' => true ,
50+ 'options ' => $ this ->getAvailableLanguages (),
51+ 'value ' => $ datasetMetadata ['language ' ],
52+ ]))
53+ ->addField (new FieldSelect ('datasetSubject ' , [
54+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.subject.label ' ),
55+ 'isRequired ' => true ,
56+ 'options ' => $ dataverseMetadata ->getDataverseSubjects (),
57+ 'value ' => $ datasetMetadata ['subject ' ],
58+ ]))
59+ ->addField (new FieldSelect ('datasetLicense ' , [
60+ 'label ' => __ ('plugins.generic.dataverse.metadataForm.license.label ' ),
61+ 'isRequired ' => true ,
62+ 'options ' => [],
63+ 'value ' => $ datasetMetadata ['license ' ],
64+ ]));
5965 }
6066
6167 private function getDatasetMetadata ($ dataset )
@@ -65,6 +71,7 @@ private function getDatasetMetadata($dataset)
6571 'title ' => '' ,
6672 'description ' => '' ,
6773 'keywords ' => [],
74+ 'language ' => '' ,
6875 'subject ' => '' ,
6976 'license ' => ''
7077 ];
@@ -74,6 +81,7 @@ private function getDatasetMetadata($dataset)
7481 'title ' => $ dataset ->getTitle (),
7582 'description ' => $ dataset ->getDescription (),
7683 'keywords ' => (array ) $ dataset ->getKeywords () ?? [],
84+ 'language ' => $ dataset ->getLanguage (),
7785 'subject ' => $ dataset ->getSubject (),
7886 'license ' => $ dataset ->getLicense ()
7987 ];
@@ -85,4 +93,17 @@ private function getVocabSuggestionUrlBase()
8593 $ contextPath = $ request ->getContext ()->getPath ();
8694 return $ request ->getDispatcher ()->url ($ request , ROUTE_API , $ contextPath , 'vocabs ' , null , null , ['vocab ' => 'submissionKeyword ' ]);
8795 }
96+
97+ private function getAvailableLanguages (): array
98+ {
99+ $ context = Application::get ()->getRequest ()->getContext ();
100+ $ availableLanguages = [];
101+
102+ foreach ($ context ->getSupportedSubmissionLocales () as $ locale ) {
103+ $ languageName = \Locale::getDisplayLanguage ($ locale , 'en ' );
104+ $ availableLanguages [] = ['key ' => $ languageName , 'label ' => $ languageName ];
105+ }
106+
107+ return $ availableLanguages ;
108+ }
88109}
0 commit comments