Adding ability for an EditConfiguration to specify a redirect instead of a form. NIHVIVO-3369
This commit is contained in:
parent
32041213b4
commit
78049c4633
2 changed files with 263 additions and 225 deletions
|
@ -3602,7 +3602,6 @@
|
|||
<vitro:collateBySubclassAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</vitro:collateBySubclassAnnot>
|
||||
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||
<vitro:fullPropertyNameAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#string">has authorship</vitro:fullPropertyNameAnnot>
|
||||
<vitro:skipEditForm rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</vitro:skipEditForm>
|
||||
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||
<vitro:publicDescriptionAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#string">This relates a person to their authorship information.</vitro:publicDescriptionAnnot>
|
||||
</rdf:Description>
|
||||
|
|
|
@ -12,7 +12,10 @@ import javax.servlet.http.HttpSession;
|
|||
import com.hp.hpl.jena.rdf.model.Literal;
|
||||
import com.hp.hpl.jena.vocabulary.XSD;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.PersonHasPublicationValidator;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||
|
@ -20,10 +23,41 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo;
|
|||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||
|
||||
/**
|
||||
* On an add/new, this will show a form, on an edit/update this will skip to the
|
||||
* profile page of the publication.
|
||||
*/
|
||||
public class AddPublicationToPersonGenerator extends VivoBaseGenerator implements EditConfigurationGenerator {
|
||||
|
||||
@Override
|
||||
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq,
|
||||
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq, HttpSession session) {
|
||||
|
||||
if( EditConfigurationUtils.getObjectUri(vreq) == null ){
|
||||
return doAddNew(vreq,session);
|
||||
}else{
|
||||
return doSkipToPublication(vreq);
|
||||
}
|
||||
}
|
||||
|
||||
private EditConfigurationVTwo doSkipToPublication(VitroRequest vreq) {
|
||||
Individual authorshipNode = EditConfigurationUtils.getObjectIndividual(vreq);
|
||||
|
||||
//try to get the publication
|
||||
List<ObjectPropertyStatement> stmts =
|
||||
authorshipNode.getObjectPropertyStatements("http://vivoweb.org/ontology/core#linkedInformationResource");
|
||||
if( stmts == null || stmts.isEmpty() ){
|
||||
return doBadAuthorshipNoPub( vreq );
|
||||
}else if( stmts.size() > 1 ){
|
||||
return doBadAuthorshipMultiplePubs(vreq);
|
||||
}else{
|
||||
//skip to publication
|
||||
EditConfigurationVTwo editConfiguration = new EditConfigurationVTwo();
|
||||
editConfiguration.setSkipToUrl(UrlBuilder.getIndividualProfileUrl(stmts.get(0).getObjectURI(), vreq));
|
||||
return editConfiguration;
|
||||
}
|
||||
}
|
||||
|
||||
protected EditConfigurationVTwo doAddNew(VitroRequest vreq,
|
||||
HttpSession session) {
|
||||
EditConfigurationVTwo editConfiguration = new EditConfigurationVTwo();
|
||||
initBasics(editConfiguration, vreq);
|
||||
|
@ -31,7 +65,6 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
|
|||
initObjectPropForm(editConfiguration, vreq);
|
||||
setVarNames(editConfiguration);
|
||||
|
||||
|
||||
// Required N3
|
||||
editConfiguration.setN3Required(generateN3Required());
|
||||
|
||||
|
@ -62,9 +95,15 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
|
|||
return editConfiguration;
|
||||
}
|
||||
|
||||
private EditConfigurationVTwo doBadAuthorshipMultiplePubs(VitroRequest vreq) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private EditConfigurationVTwo doBadAuthorshipNoPub(VitroRequest vreq) {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
private void setVarNames(EditConfigurationVTwo editConfiguration) {
|
||||
editConfiguration.setVarNameForSubject("person");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue