From ea07be326121e7410b0cbffe91218d267cb0ff28 Mon Sep 17 00:00:00 2001 From: Paul Boon Date: Thu, 25 Feb 2021 15:55:27 +0100 Subject: [PATCH 1/3] Added minChars option to the cvoc configuration, default 0, ignoring negative numbers --- .../java/edu/harvard/iq/dataverse/DatasetPage.java | 10 ++++++++-- src/main/webapp/datasetFieldForEditFragment.xhtml | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index b58a8e8181b..14fbf0f6d1a 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -5461,6 +5461,9 @@ public Map getCVocConf(){ if (jo.containsKey("readonly") && jo.getString("readonly").toLowerCase().equals("true")) cvocReadonly = true; logger.fine("cvoc - readonly: " + cvocReadonly); + int cvocMinChars = 0; + if (jo.containsKey("minChars") && jo.getInt("minChars") >= 0) + cvocMinChars = jo.getInt("minChars"); String cvocProtocol = "skosmos";//default if (jo.containsKey("protocol")) cvocProtocol = jo.getString("protocol"); @@ -5485,7 +5488,7 @@ public Map 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, cvocMinChars, vocabsList, vocabCodesList , cvocJsUrl, cvocMapId, cvocMapQuery); cvocMap.put(jo.getString("vocab-name"), cvoc); @@ -5502,14 +5505,16 @@ public class CVoc { String mapId; String mapQuery; boolean readonly; + int minChars; List vocabs; List 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, int minChars, List vocabs, List keys, String jsUrl, String mapId, String mapQuery){ this.cvocUrl = cvocUrl; this.language = language; this.protocol = protocol; this.readonly = readonly; + this.minChars = minChars; this.vocabs = vocabs; this.termParentUri = termParentUri; this.keys = keys; @@ -5531,6 +5536,7 @@ public String getTermParentUri() { public boolean isReadonly() { return readonly; } + public int getMinChars() { return minChars; } public List getVocabs() { return vocabs; } diff --git a/src/main/webapp/datasetFieldForEditFragment.xhtml b/src/main/webapp/datasetFieldForEditFragment.xhtml index 486c189cc40..f9c963d53aa 100644 --- a/src/main/webapp/datasetFieldForEditFragment.xhtml +++ b/src/main/webapp/datasetFieldForEditFragment.xhtml @@ -81,7 +81,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); From d4a5d16cb010e54517b015da9a51eda95143edbb Mon Sep 17 00:00:00 2001 From: Paul Boon Date: Thu, 25 Feb 2021 16:00:46 +0100 Subject: [PATCH 2/3] Added log info for minChars option --- src/main/java/edu/harvard/iq/dataverse/DatasetPage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 14fbf0f6d1a..2fbaa672ddf 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -5464,6 +5464,7 @@ public Map getCVocConf(){ 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"); @@ -5491,7 +5492,6 @@ public Map getCVocConf(){ CVoc cvoc = new CVoc(cvocUrl, cvocLang, cvocProtocol, cvocTermParentUri, cvocReadonly, cvocMinChars, vocabsList, vocabCodesList , cvocJsUrl, cvocMapId, cvocMapQuery); cvocMap.put(jo.getString("vocab-name"), cvoc); - } } return cvocMap; From 577888018be1039f632940489c1208a93c54ab57 Mon Sep 17 00:00:00 2001 From: Paul Boon Date: Tue, 2 Mar 2021 10:24:38 +0100 Subject: [PATCH 3/3] Added option to hide cvoc URL fields when readonly and some javascript refactoring --- .../edu/harvard/iq/dataverse/DatasetPage.java | 13 +++++++++++-- .../webapp/datasetFieldForEditFragment.xhtml | 18 +++++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java index 2fbaa672ddf..7faabdcb5f0 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DatasetPage.java @@ -5461,6 +5461,10 @@ public Map 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"); @@ -5489,7 +5493,7 @@ public Map 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, cvocMinChars, 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); } @@ -5505,15 +5509,17 @@ public class CVoc { String mapId; String mapQuery; boolean readonly; + boolean hideReadonlyUrls; int minChars; List vocabs; List keys; - public CVoc(String cvocUrl, String language, String protocol, String termParentUri, boolean readonly, int minChars, + public CVoc(String cvocUrl, String language, String protocol, String termParentUri, boolean readonly, boolean hideReadonlyUrls, int minChars, List vocabs, List 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; @@ -5536,6 +5542,9 @@ public String getTermParentUri() { public boolean isReadonly() { return readonly; } + public boolean isHideReadonlyUrls() { + return hideReadonlyUrls; + } public int getMinChars() { return minChars; } public List getVocabs() { return vocabs; diff --git a/src/main/webapp/datasetFieldForEditFragment.xhtml b/src/main/webapp/datasetFieldForEditFragment.xhtml index f9c963d53aa..497cd08590a 100644 --- a/src/main/webapp/datasetFieldForEditFragment.xhtml +++ b/src/main/webapp/datasetFieldForEditFragment.xhtml @@ -49,6 +49,7 @@