Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 18 additions & 3 deletions src/main/java/edu/harvard/iq/dataverse/DatasetPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -5461,6 +5461,14 @@ public Map<String, CVoc> getCVocConf(){
if (jo.containsKey("readonly") && jo.getString("readonly").toLowerCase().equals("true"))
cvocReadonly = true;
logger.fine("cvoc - readonly: " + cvocReadonly);
boolean cvocHideReadonlyUrls = false;
if (jo.containsKey("hideReadonlyUrls") && jo.getString("hideReadonlyUrls").toLowerCase().equals("true"))
cvocHideReadonlyUrls = true;
logger.fine("cvoc - cvocHideReadonlyUrls: " + cvocHideReadonlyUrls);
int cvocMinChars = 0;
if (jo.containsKey("minChars") && jo.getInt("minChars") >= 0)
cvocMinChars = jo.getInt("minChars");
logger.fine("cvoc - minChars: " + cvocMinChars);
String cvocProtocol = "skosmos";//default
if (jo.containsKey("protocol"))
cvocProtocol = jo.getString("protocol");
Expand All @@ -5485,10 +5493,9 @@ public Map<String, CVoc> getCVocConf(){
if (jo.containsKey("cvoc-url"))
cvocUrl = jo.getString("cvoc-url");
logger.fine("cvoc - cvoc-url: " + cvocUrl);
CVoc cvoc = new CVoc(cvocUrl, cvocLang, cvocProtocol, cvocTermParentUri, cvocReadonly, vocabsList, vocabCodesList
CVoc cvoc = new CVoc(cvocUrl, cvocLang, cvocProtocol, cvocTermParentUri, cvocReadonly, cvocHideReadonlyUrls, cvocMinChars, vocabsList, vocabCodesList
, cvocJsUrl, cvocMapId, cvocMapQuery);
cvocMap.put(jo.getString("vocab-name"), cvoc);

}
}
return cvocMap;
Expand All @@ -5502,14 +5509,18 @@ public class CVoc {
String mapId;
String mapQuery;
boolean readonly;
boolean hideReadonlyUrls;
int minChars;
List<String> vocabs;
List<String> keys;
public CVoc(String cvocUrl, String language, String protocol, String termParentUri, boolean readonly,
public CVoc(String cvocUrl, String language, String protocol, String termParentUri, boolean readonly, boolean hideReadonlyUrls, int minChars,
List<String> vocabs, List<String> keys, String jsUrl, String mapId, String mapQuery){
this.cvocUrl = cvocUrl;
this.language = language;
this.protocol = protocol;
this.readonly = readonly;
this.hideReadonlyUrls = hideReadonlyUrls;
this.minChars = minChars;
this.vocabs = vocabs;
this.termParentUri = termParentUri;
this.keys = keys;
Expand All @@ -5531,6 +5542,10 @@ public String getTermParentUri() {
public boolean isReadonly() {
return readonly;
}
public boolean isHideReadonlyUrls() {
return hideReadonlyUrls;
}
public int getMinChars() { return minChars; }
public List<String> getVocabs() {
return vocabs;
}
Expand Down
20 changes: 16 additions & 4 deletions src/main/webapp/datasetFieldForEditFragment.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,32 @@
<script src="#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getJsUrl()}">
</script>
<script>
//<![CDATA[
$(document).ready(function() {
var jsonResult = {};
var cvocUrl = "#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getCVocUrl()}";
var cvocLang = "#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getLanguage()}";
var cvocProtocol = "#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getProtocol()}";
var termParentUri ="#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getTermParentUri()}";
var vocabsize = "#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getVocabs().size()}";
var readonly = "#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).isReadonly()}";
var readonly = "#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).isReadonly()}" === "true";
var hideReadonlyUrls = "#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).isHideReadonlyUrls()}" === "true";
//$("#akmi_#{valCount.index+1}_#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getKeys()[3]}").find("input[name*='cv_vocab_url_'").css('background-color' , '#EEEEEE');
$("#akmi_#{valCount.index+1}_#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getKeys()[3]}").find("input[name*='cv_vocab_url_'").val(termParentUri);
if (vocabsize == 1 &amp;&amp; readonly)
if (vocabsize == 1 && readonly) {
// make it look readonly
$("#akmi_#{valCount.index+1}_#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getKeys()[0]}").find("input[name*='cv_vocabs_'").css('background-color' , '#EEEEEE');
// Note that we could decide to not display this at all
//$("#akmi_#{valCount.index+1}_#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getKeys()[0]}").parent().css('display' , 'none');
}
if (readonly && hideReadonlyUrls) {
// do not display URL fields and their labels
$("#akmi_#{valCount.index+1}_#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getKeys()[2]}").parent().css('display' , 'none');
$("#akmi_#{valCount.index+1}_#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getKeys()[3]}").parent().css('display' , 'none');
}
var selectedVocab = "";
var vocabFieldValue = $("#akmi_#{valCount.index+1}_#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getKeys()[0]}").find("input[name*='cv_vocabs_'").val();
if (vocabFieldValue =='' &amp;&amp; vocabsize == 1) {
if (vocabFieldValue =='' && vocabsize == 1) {
selectedVocab = "#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getVocabs()[0]}";
$("#akmi_#{valCount.index+1}_#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getKeys()[0]}").find("input[name*='cv_vocabs_'").val(selectedVocab);
}
Expand All @@ -81,7 +92,7 @@
cv = { 'cvocUrl' : cvocUrl, 'protocol': cvocProtocol, 'lang': cvocLang, 'termParentUri': termParentUri, 'selectedVocab': selectedVocab, 'term': request.term };
autointerface(request, response, cv, mapping);
},
minLength: 1,
minLength: #{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getMinChars()},
select: function(event, ui) {
$.each(ui, function(i, v) {
$("#akmi_#{valCount.index+1}_#{cvoc.get(dsfv.datasetField.datasetFieldType.parentDatasetFieldType.name).getKeys()[2]}").find("input[name*='cv_url_']").val(v.id);
Expand All @@ -90,6 +101,7 @@
}
);
});
//]]>
</script>
<style type="text/css">
ul.ui-autocomplete {
Expand Down