Skip to content

Commit 289a22c

Browse files
committed
Fixing display condition of CVOC Conf of keyword in template edition outside of inrae collections
1 parent 98d6ef6 commit 289a22c

3 files changed

Lines changed: 46 additions & 19 deletions

File tree

src/main/java/edu/harvard/iq/dataverse/DatasetPage.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -377,26 +377,27 @@ public void setShowIngestSuccess(boolean showIngestSuccess) {
377377
}
378378

379379
public boolean isDatasetFieldEnabled(Long datasetFieldTypeId){
380-
381-
if(datasetFieldTypeId != null) {
382-
Dataverse dv = dataset.getOwner();
383-
DatasetFieldType datasetFieldType = fieldService.find(datasetFieldTypeId);
384-
385-
// Keyword External Vocabulary Support is enabled only under inrae collections
386-
if(dv != null && "keyword".equals(datasetFieldType.getName())) {
387-
if("inrae".equals(dv.getAlias())) {
380+
// Always available except keyword field
381+
if (datasetFieldTypeId == null) {
382+
return true;
383+
}
384+
DatasetFieldType dft = fieldService.find(datasetFieldTypeId);
385+
if(dft == null || !"keyword".equals(dft.getName())) {
386+
return true;
387+
}
388+
// Keyword field is available only under inrae collections
389+
Dataverse dv = dataset.getOwner();
390+
if (dv != null) {
391+
if ("inrae".equals(dv.getAlias())) {
392+
return true;
393+
}
394+
for (Dataverse owner : dv.getOwners()) {
395+
if ("inrae".equals(owner.getAlias())) {
388396
return true;
389397
}
390-
for (Dataverse owner : dv.getOwners()) {
391-
if("inrae".equals(owner.getAlias())) {
392-
return true;
393-
}
394-
}
395-
return false;
396398
}
397399
}
398-
// Otherwise, enable by default
399-
return true;
400+
return false;
400401
}
401402

402403
// TODO: Consider renaming "configureTools" to "fileConfigureTools".

src/main/java/edu/harvard/iq/dataverse/TemplatePage.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ public class TemplatePage implements java.io.Serializable {
3838

3939
@EJB
4040
EjbDataverseEngine commandEngine;
41+
42+
@EJB
43+
DatasetFieldServiceBean fieldService;
4144

4245
@EJB
4346
DataverseFieldTypeInputLevelServiceBean dataverseFieldTypeInputLevelService;
@@ -259,4 +262,27 @@ public String getInstructionsLabelFor(String fieldType) {
259262
return (fieldInstructions!=null && !fieldInstructions.isBlank()) ? fieldInstructions : BundleUtil.getStringFromBundle("template.instructions.empty.label");
260263
}
261264

265+
public boolean isDatasetFieldEnabled(Long datasetFieldTypeId) {
266+
// Always available except keyword field
267+
if (datasetFieldTypeId == null) {
268+
return true;
269+
}
270+
DatasetFieldType dft = fieldService.find(datasetFieldTypeId);
271+
if(dft == null || !"keyword".equals(dft.getName())) {
272+
return true;
273+
}
274+
// Keyword field is available only under inrae collections
275+
Dataverse dv = dataverseService.find(ownerId);
276+
if (dv != null) {
277+
if ("inrae".equals(dv.getAlias())) {
278+
return true;
279+
}
280+
for (Dataverse owner : dv.getOwners()) {
281+
if ("inrae".equals(owner.getAlias())) {
282+
return true;
283+
}
284+
}
285+
}
286+
return false;
287+
}
262288
}

src/main/webapp/metadataFragment.xhtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
<span class="glyphicon glyphicon-question-sign tooltip-icon"
7474
data-toggle="tooltip" data-placement="auto right" data-original-title="#{dsf.datasetFieldType.localeDescription}"></span>
7575
</th>
76-
<c:set var="cvocOnDsf" value="#{DatasetPage.isDatasetFieldEnabled(dsf.datasetFieldType.id) and cvocConf.containsKey(dsf.datasetFieldType.id)}"/>
76+
<c:set var="cvocOnDsf" value="#{cvocConf.containsKey(dsf.datasetFieldType.id) and ((datasetPage and DatasetPage.isDatasetFieldEnabled(dsf.datasetFieldType.id)) or (templatePage and TemplatePage.isDatasetFieldEnabled(dsf.datasetFieldType.id)))}"/>
7777
<td jsf:rendered="#{!anonymized or !settingsWrapper.shouldBeAnonymized(dsf)}">
7878
<!-- Primitive datasetFields -->
7979
<ui:fragment rendered="#{dsf.datasetFieldType.primitive}">
@@ -277,7 +277,7 @@
277277
<ui:include src="datasetFieldForEditFragment.xhtml">
278278
<ui:param name="dsfv" value="#{dsfv}"/>
279279
<ui:param name="dsfvIndex" value="#{valCount.index}"/>
280-
<ui:param name="cvoc" value="#{cvocConf.containsKey(dsf.datasetFieldType.id) and DatasetPage.isDatasetFieldEnabled(dsf.datasetFieldType.id) ? cvocConf.get(dsf.datasetFieldType.id): null}"/>
280+
<ui:param name="cvoc" value="#{cvocConf.containsKey(dsf.datasetFieldType.id) and ((datasetPage and DatasetPage.isDatasetFieldEnabled(dsf.datasetFieldType.id)) or (templatePage and TemplatePage.isDatasetFieldEnabled(dsf.datasetFieldType.id))) ? cvocConf.get(dsf.datasetFieldType.id): null}"/>
281281
</ui:include>
282282
</div>
283283
<!-- Add / Remove buttons -->
@@ -377,7 +377,7 @@
377377
<ui:include src="datasetFieldForEditFragment.xhtml">
378378
<ui:param name="dsfv" value="#{subdsf.singleValue}"/>
379379
<ui:param name="dsfvIndex" value="0"/>
380-
<ui:param name="cvoc" value="#{cvocConf.containsKey(dsf.datasetFieldType.id) and DatasetPage.isDatasetFieldEnabled(dsf.datasetFieldType.id) ? cvocConf.get(dsf.datasetFieldType.id): cvocConf.containsKey(dsfv.datasetField.datasetFieldType.id) and DatasetPage.isDatasetFieldEnabled(sfv.datasetField.datasetFieldType.id) ? cvocConf.get(dsfv.datasetField.datasetFieldType.id): null}"/>
380+
<ui:param name="cvoc" value="#{cvocConf.containsKey(dsf.datasetFieldType.id) and ((datasetPage and DatasetPage.isDatasetFieldEnabled(dsf.datasetFieldType.id)) or (templatePage and TemplatePage.isDatasetFieldEnabled(dsf.datasetFieldType.id))) ? cvocConf.get(dsf.datasetFieldType.id): cvocConf.containsKey(dsfv.datasetField.datasetFieldType.id) and ((datasetPage and DatasetPage.isDatasetFieldEnabled(dsfv.datasetField.datasetFieldType.id)) or (templatePage and TemplatePage.isDatasetFieldEnabled(dsfv.datasetField.datasetFieldType.id))) ? cvocConf.get(dsfv.datasetField.datasetFieldType.id): null}"/>
381381
</ui:include>
382382
</ui:fragment>
383383
<!-- MOVED SELECT ONE TO dataFieldForEdit -->

0 commit comments

Comments
 (0)