mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-11 20:13:17 +00:00
[DS-3699] remove model rest page for input form; add use of constant to match section type for submission-forms
This commit is contained in:
@@ -13,12 +13,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import org.apache.commons.lang.NotImplementedException;
|
import org.apache.commons.lang.NotImplementedException;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.dspace.app.rest.model.SubmissionFormFieldRest;
|
|
||||||
import org.dspace.app.rest.model.SubmissionFormInputTypeRest;
|
|
||||||
import org.dspace.app.rest.model.SubmissionFormPageRest;
|
|
||||||
import org.dspace.app.rest.model.SubmissionFormRest;
|
|
||||||
import org.dspace.app.rest.model.ScopeEnum;
|
import org.dspace.app.rest.model.ScopeEnum;
|
||||||
import org.dspace.app.rest.model.SelectableMetadata;
|
import org.dspace.app.rest.model.SelectableMetadata;
|
||||||
|
import org.dspace.app.rest.model.SubmissionFormFieldRest;
|
||||||
|
import org.dspace.app.rest.model.SubmissionFormInputTypeRest;
|
||||||
|
import org.dspace.app.rest.model.SubmissionFormRest;
|
||||||
import org.dspace.app.rest.model.SubmissionVisibilityRest;
|
import org.dspace.app.rest.model.SubmissionVisibilityRest;
|
||||||
import org.dspace.app.rest.model.VisibilityEnum;
|
import org.dspace.app.rest.model.VisibilityEnum;
|
||||||
import org.dspace.app.rest.utils.AuthorityUtils;
|
import org.dspace.app.rest.utils.AuthorityUtils;
|
||||||
@@ -52,22 +51,18 @@ public class SubmissionFormConverter extends DSpaceConverter<DCInputSet, Submiss
|
|||||||
public SubmissionFormRest fromModel(DCInputSet obj) {
|
public SubmissionFormRest fromModel(DCInputSet obj) {
|
||||||
SubmissionFormRest sd = new SubmissionFormRest();
|
SubmissionFormRest sd = new SubmissionFormRest();
|
||||||
sd.setName(obj.getFormName());
|
sd.setName(obj.getFormName());
|
||||||
List<SubmissionFormPageRest> pages = new LinkedList<SubmissionFormPageRest>();
|
|
||||||
DCInput[] step = obj.getFields();
|
DCInput[] step = obj.getFields();
|
||||||
SubmissionFormPageRest sp = getPage(step);
|
List<SubmissionFormFieldRest> fields = getPage(step);
|
||||||
pages.add(sp);
|
sd.setFields(fields);
|
||||||
sd.setPages(pages);
|
|
||||||
return sd;
|
return sd;
|
||||||
}
|
}
|
||||||
|
|
||||||
private SubmissionFormPageRest getPage(DCInput[] page) {
|
private List<SubmissionFormFieldRest> getPage(DCInput[] page) {
|
||||||
SubmissionFormPageRest ifPage = new SubmissionFormPageRest();
|
|
||||||
List<SubmissionFormFieldRest> fields = new LinkedList<SubmissionFormFieldRest>();
|
List<SubmissionFormFieldRest> fields = new LinkedList<SubmissionFormFieldRest>();
|
||||||
for (DCInput dcinput : page) {
|
for (DCInput dcinput : page) {
|
||||||
fields.add(getField(dcinput));
|
fields.add(getField(dcinput));
|
||||||
}
|
}
|
||||||
ifPage.setFields(fields);
|
return fields;
|
||||||
return ifPage;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SubmissionFormFieldRest getField(DCInput dcinput) {
|
private SubmissionFormFieldRest getField(DCInput dcinput) {
|
||||||
@@ -79,9 +74,9 @@ public class SubmissionFormConverter extends DSpaceConverter<DCInputSet, Submiss
|
|||||||
inputField.setMandatoryMessage(dcinput.getWarning());
|
inputField.setMandatoryMessage(dcinput.getWarning());
|
||||||
inputField.setMandatory(dcinput.isRequired());
|
inputField.setMandatory(dcinput.isRequired());
|
||||||
inputField.setScope(ScopeEnum.fromString(dcinput.getScope()));
|
inputField.setScope(ScopeEnum.fromString(dcinput.getScope()));
|
||||||
inputField
|
inputField.setVisibility(new SubmissionVisibilityRest(
|
||||||
.setVisibility(new SubmissionVisibilityRest(VisibilityEnum.fromString(dcinput.isReadOnly("submission")?"read-only":null),
|
VisibilityEnum.fromString(dcinput.isReadOnly("submission") ? "read-only" : null),
|
||||||
VisibilityEnum.fromString(dcinput.isReadOnly("workflow")?"read-only":null)));
|
VisibilityEnum.fromString(dcinput.isReadOnly("workflow") ? "read-only" : null)));
|
||||||
inputField.setRepeatable(dcinput.isRepeatable());
|
inputField.setRepeatable(dcinput.isRepeatable());
|
||||||
|
|
||||||
SubmissionFormInputTypeRest inputRest = new SubmissionFormInputTypeRest();
|
SubmissionFormInputTypeRest inputRest = new SubmissionFormInputTypeRest();
|
||||||
@@ -94,12 +89,13 @@ public class SubmissionFormConverter extends DSpaceConverter<DCInputSet, Submiss
|
|||||||
|
|
||||||
SelectableMetadata selMd = new SelectableMetadata();
|
SelectableMetadata selMd = new SelectableMetadata();
|
||||||
if (authorityUtils.isChoice(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier())) {
|
if (authorityUtils.isChoice(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier())) {
|
||||||
inputRest.setType(getPresentation(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier(), inputType));
|
inputRest.setType(
|
||||||
selMd.setAuthority(
|
getPresentation(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier(), inputType));
|
||||||
authorityUtils.getAuthorityName(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier()));
|
selMd.setAuthority(authorityUtils.getAuthorityName(dcinput.getSchema(), dcinput.getElement(),
|
||||||
selMd.setClosed(authorityUtils.isClosed(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier()));
|
dcinput.getQualifier()));
|
||||||
}
|
selMd.setClosed(
|
||||||
else {
|
authorityUtils.isClosed(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier()));
|
||||||
|
} else {
|
||||||
inputRest.setType(inputType);
|
inputRest.setType(inputType);
|
||||||
}
|
}
|
||||||
selMd.setMetadata(utils.getMetadataKey(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier()));
|
selMd.setMetadata(utils.getMetadataKey(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier()));
|
||||||
@@ -113,9 +109,10 @@ public class SubmissionFormConverter extends DSpaceConverter<DCInputSet, Submiss
|
|||||||
selMd.setLabel((String) pairs.get(idx));
|
selMd.setLabel((String) pairs.get(idx));
|
||||||
selMd.setMetadata(utils.getMetadataKey(dcinput.getSchema(), dcinput.getElement(), pairs.get(idx + 1)));
|
selMd.setMetadata(utils.getMetadataKey(dcinput.getSchema(), dcinput.getElement(), pairs.get(idx + 1)));
|
||||||
if (authorityUtils.isChoice(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier())) {
|
if (authorityUtils.isChoice(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier())) {
|
||||||
selMd.setAuthority(
|
selMd.setAuthority(authorityUtils.getAuthorityName(dcinput.getSchema(), dcinput.getElement(),
|
||||||
authorityUtils.getAuthorityName(dcinput.getSchema(), dcinput.getElement(), pairs.get(idx + 1)));
|
pairs.get(idx + 1)));
|
||||||
selMd.setClosed(authorityUtils.isClosed(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier()));
|
selMd.setClosed(
|
||||||
|
authorityUtils.isClosed(dcinput.getSchema(), dcinput.getElement(), dcinput.getQualifier()));
|
||||||
}
|
}
|
||||||
selectableMetadata.add(selMd);
|
selectableMetadata.add(selMd);
|
||||||
}
|
}
|
||||||
@@ -125,20 +122,17 @@ public class SubmissionFormConverter extends DSpaceConverter<DCInputSet, Submiss
|
|||||||
return inputField;
|
return inputField;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getPresentation(String schema, String element, String qualifier, String inputType)
|
private String getPresentation(String schema, String element, String qualifier, String inputType) {
|
||||||
{
|
|
||||||
String presentation = authorityUtils.getPresentation(schema, element, qualifier);
|
String presentation = authorityUtils.getPresentation(schema, element, qualifier);
|
||||||
if(StringUtils.isNotBlank(presentation)) {
|
if (StringUtils.isNotBlank(presentation)) {
|
||||||
if(INPUT_TYPE_ONEBOX.equals(inputType)) {
|
if (INPUT_TYPE_ONEBOX.equals(inputType)) {
|
||||||
if(AuthorityUtils.PRESENTATION_TYPE_SUGGEST.equals(presentation)) {
|
if (AuthorityUtils.PRESENTATION_TYPE_SUGGEST.equals(presentation)) {
|
||||||
return INPUT_TYPE_ONEBOX;
|
return INPUT_TYPE_ONEBOX;
|
||||||
}
|
} else if (AuthorityUtils.PRESENTATION_TYPE_LOOKUP.equals(presentation)) {
|
||||||
else if(AuthorityUtils.PRESENTATION_TYPE_LOOKUP.equals(presentation)) {
|
|
||||||
return INPUT_TYPE_LOOKUP;
|
return INPUT_TYPE_LOOKUP;
|
||||||
}
|
}
|
||||||
}
|
} else if (INPUT_TYPE_NAME.equals(inputType)) {
|
||||||
else if(INPUT_TYPE_NAME.equals(inputType)) {
|
if (AuthorityUtils.PRESENTATION_TYPE_LOOKUP.equals(presentation)) {
|
||||||
if(AuthorityUtils.PRESENTATION_TYPE_LOOKUP.equals(presentation)) {
|
|
||||||
return INPUT_TYPE_LOOKUP_NAME;
|
return INPUT_TYPE_LOOKUP_NAME;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,80 +0,0 @@
|
|||||||
/**
|
|
||||||
* The contents of this file are subject to the license and copyright
|
|
||||||
* detailed in the LICENSE and NOTICE files at the root of the source
|
|
||||||
* tree and available online at
|
|
||||||
*
|
|
||||||
* http://www.dspace.org/license/
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.dspace.app.rest.model;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The InputFormPage REST Resource. It is not addressable directly, only used
|
|
||||||
* as inline object in the InputForm resource
|
|
||||||
*
|
|
||||||
* @author Andrea Bollini (andrea.bollini at 4science.it)
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@JsonInclude(value=Include.NON_NULL)
|
|
||||||
public class SubmissionFormPageRest {
|
|
||||||
private String header;
|
|
||||||
private boolean mandatory;
|
|
||||||
private List<SubmissionFormFieldRest> fields;
|
|
||||||
|
|
||||||
public String getHeader() {
|
|
||||||
return header;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setHeader(String header) {
|
|
||||||
this.header = header;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isMandatory() {
|
|
||||||
return mandatory;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMandatory(boolean mandatory) {
|
|
||||||
this.mandatory = mandatory;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<SubmissionFormFieldRest> getFields() {
|
|
||||||
return fields;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFields(List<SubmissionFormFieldRest> fields) {
|
|
||||||
this.fields = fields;
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
public ScopeEnum getScope() {
|
|
||||||
ScopeEnum scope = fields.get(0).getScope();
|
|
||||||
for (SubmissionFormFieldRest field : fields) {
|
|
||||||
if (!Objects.equals(field.getScope(), scope)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return scope;
|
|
||||||
}
|
|
||||||
|
|
||||||
@JsonIgnore
|
|
||||||
public SubmissionVisibilityRest getVisibility() {
|
|
||||||
SubmissionVisibilityRest visibility = fields.get(0).getVisibility();
|
|
||||||
for (SubmissionFormFieldRest field : fields) {
|
|
||||||
if (!Objects.equals(field.getVisibility(), visibility)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return visibility;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -26,7 +26,7 @@ public class SubmissionFormRest extends BaseObjectRest<String> {
|
|||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private List<SubmissionFormPageRest> pages;
|
private List<SubmissionFormFieldRest> fields;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getId() {
|
public String getId() {
|
||||||
@@ -41,14 +41,6 @@ public class SubmissionFormRest extends BaseObjectRest<String> {
|
|||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPages(List<SubmissionFormPageRest> pages) {
|
|
||||||
this.pages = pages;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<SubmissionFormPageRest> getPages() {
|
|
||||||
return pages;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getType() {
|
public String getType() {
|
||||||
return NAME;
|
return NAME;
|
||||||
@@ -63,4 +55,12 @@ public class SubmissionFormRest extends BaseObjectRest<String> {
|
|||||||
public String getCategory() {
|
public String getCategory() {
|
||||||
return CATEGORY;
|
return CATEGORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<SubmissionFormFieldRest> getFields() {
|
||||||
|
return fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFields(List<SubmissionFormFieldRest> fields) {
|
||||||
|
this.fields = fields;
|
||||||
|
}
|
||||||
}
|
}
|
@@ -16,6 +16,7 @@ import org.dspace.app.rest.model.SubmissionFormRest;
|
|||||||
import org.dspace.app.rest.model.SubmissionSectionRest;
|
import org.dspace.app.rest.model.SubmissionSectionRest;
|
||||||
import org.dspace.app.rest.model.hateoas.annotations.RelNameDSpaceResource;
|
import org.dspace.app.rest.model.hateoas.annotations.RelNameDSpaceResource;
|
||||||
import org.dspace.app.rest.utils.Utils;
|
import org.dspace.app.rest.utils.Utils;
|
||||||
|
import org.dspace.app.util.SubmissionStepConfig;
|
||||||
import org.springframework.hateoas.Link;
|
import org.springframework.hateoas.Link;
|
||||||
import org.springframework.web.util.UriComponentsBuilder;
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
|
|
||||||
@@ -31,7 +32,7 @@ public class SubmissionSectionResource extends DSpaceResource<SubmissionSectionR
|
|||||||
|
|
||||||
public SubmissionSectionResource(SubmissionSectionRest sd, Utils utils, String... rels) {
|
public SubmissionSectionResource(SubmissionSectionRest sd, Utils utils, String... rels) {
|
||||||
super(sd, utils, rels);
|
super(sd, utils, rels);
|
||||||
if("input-form".equals(sd.getSectionType())) {
|
if(SubmissionStepConfig.INPUT_FORM_STEP_NAME.equals(sd.getSectionType())) {
|
||||||
RestResourceController methodOn = methodOn(RestResourceController.class, SubmissionFormRest.CATEGORY, SubmissionFormRest.NAME);
|
RestResourceController methodOn = methodOn(RestResourceController.class, SubmissionFormRest.CATEGORY, SubmissionFormRest.NAME);
|
||||||
UriComponentsBuilder uriComponentsBuilder = linkTo(methodOn
|
UriComponentsBuilder uriComponentsBuilder = linkTo(methodOn
|
||||||
.findRel(null, SubmissionFormRest.CATEGORY, English.plural(SubmissionFormRest.NAME), sd.getId(), "", null, null, null))
|
.findRel(null, SubmissionFormRest.CATEGORY, English.plural(SubmissionFormRest.NAME), sd.getId(), "", null, null, null))
|
||||||
|
Reference in New Issue
Block a user