Skip to content

Commit 7851e83

Browse files
authored
Merge pull request #11301 from DANS-KNAW-jp/blocked-deposit-page
blocked deposit page, hide host field when only one collection (e.g. root)
2 parents 0177e5d + a9ca7bb commit 7851e83

File tree

4 files changed

+22
-3
lines changed

4 files changed

+22
-3
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
### Reduced chance of losing metadata on Edit Dataset Metadata page
2+
3+
The remedy for the problem consists of two parts:
4+
* Do not show the _host dataverse_ field when there is nothing to choose. This mimics the behaviour for templates.
5+
* When you accidentally start typing in the _host dataverse_ field, undo the change with backspace, fill in the other metadata fields and save the draft, the page used to get blocked due to an exception. Reloading the page would erase all your input. The exception (caused by an invalid argument) is remedied returning the currently selected value.

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@
141141
import jakarta.faces.event.AjaxBehaviorEvent;
142142
import jakarta.servlet.ServletOutputStream;
143143
import jakarta.servlet.http.HttpServletResponse;
144-
import jakarta.servlet.http.HttpServletRequest;
145144

146145
import org.apache.commons.text.StringEscapeUtils;
147146
import org.apache.commons.lang3.mutable.MutableBoolean;
@@ -334,6 +333,7 @@ public enum DisplayMode {
334333
private List<SelectItem> linkingDVSelectItems;
335334
private Dataverse linkingDataverse;
336335
private Dataverse selectedHostDataverse;
336+
private boolean hasDataversesToChoose;
337337

338338
public Dataverse getSelectedHostDataverse() {
339339
return selectedHostDataverse;
@@ -1766,6 +1766,11 @@ public void setDataverseTemplates(List<Template> dataverseTemplates) {
17661766
this.dataverseTemplates = dataverseTemplates;
17671767
}
17681768

1769+
public boolean isHasDataversesToChoose() {
1770+
this.hasDataversesToChoose = dataverseService.findAll().size() > 1;
1771+
return this.hasDataversesToChoose;
1772+
}
1773+
17691774
public Template getDefaultTemplate() {
17701775
return defaultTemplate;
17711776
}

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,29 @@
1313
import jakarta.faces.convert.Converter;
1414
import jakarta.faces.convert.FacesConverter;
1515

16+
import java.util.logging.Logger;
17+
1618
/**
1719
*
1820
* @author skraffmiller
1921
*/
2022
@FacesConverter("dataverseConverter")
2123
public class DataverseConverter implements Converter {
24+
private static final Logger logger = Logger.getLogger(DatasetPage.class.getCanonicalName());
2225

2326

2427
//@EJB
2528
DataverseServiceBean dataverseService = CDI.current().select(DataverseServiceBean.class).get();
2629

2730
@Override
2831
public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) {
29-
return dataverseService.find(new Long(submittedValue));
32+
if (submittedValue == null || !submittedValue.matches("[0-9]+")) {
33+
logger.fine("Submitted value is not a host dataverse number but: " + submittedValue);
34+
return CDI.current().select(DatasetPage.class).get().getSelectedHostDataverse();
35+
}
36+
else {
37+
return dataverseService.find(Long.valueOf(submittedValue));
38+
}
3039
//return dataverseService.findByAlias(submittedValue);
3140
}
3241

src/main/webapp/dataset.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -736,7 +736,7 @@
736736
<!-- Create/Edit editMode -->
737737
<ui:fragment rendered="#{DatasetPage.editMode == 'METADATA' or DatasetPage.editMode == 'CREATE'}">
738738
<p:focus context="datasetForm"/>
739-
<div class="form-group">
739+
<div class="form-group" jsf:rendered="#{DatasetPage.hasDataversesToChoose and DatasetPage.editMode == 'CREATE'}">
740740
<label jsf:for="#{DatasetPage.editMode == 'CREATE' ? 'selectHostDataverse_input' : 'select_HostDataverse_Static'}" class="col-md-3 control-label">
741741
#{bundle.hostDataverse}
742742
<span class="glyphicon glyphicon-question-sign tooltip-icon"

0 commit comments

Comments
 (0)