diff --git a/productMods/edit/forms/addGrantRoleToPerson.jsp b/productMods/edit/forms/addGrantRoleToPerson.jsp
index b7d4535b..7cfdf43f 100644
--- a/productMods/edit/forms/addGrantRoleToPerson.jsp
+++ b/productMods/edit/forms/addGrantRoleToPerson.jsp
@@ -58,6 +58,9 @@ This is intended to create a set of statements like:
+<%-- grantLabel is required if we are doing an update --%>
+<%= request.getAttribute("objectUri")== null?"":"\"nonempty\"," %>
+
<% // set role type based on predicate
String subjectName = ((Individual) request.getAttribute("subject")).getName();
if ( ((String)request.getAttribute("predicateUri")).endsWith("hasPrincipalInvestigatorRole") ) { %>
@@ -98,16 +101,39 @@ if ( ((String)request.getAttribute("predicateUri")).endsWith("hasPrincipalInvest
?role ?inverseRolePredicate ?person.
-
+
@prefix core: <${vivoCore}> .
- @prefix rdf: <${rdf}> .
- @prefix rdfs: <${rdfs}> .
-
- ?grant rdf:type core:Grant .
+ @prefix rdf: <${rdf}> .
+ ?grant rdf:type core:Grant .
+
+
+
+ @prefix rdfs: <${rdfs}> .
?grant rdfs:label ?grantLabel .
+
+ PREFIX core: <${vivoCore}>
+ PREFIX rdfs: <${rdfs}>
+ SELECT ?existingGrantLabel WHERE {
+ ?role core:roleIn ?existingGrant .
+ ?existingGrant rdfs:label ?existingGrantLabel . }
+
+
+ PREFIX core: <${vivoCore}>
+ SELECT ?existingStartYear WHERE { ?role core:startYear ?existingStartYear .}
+
+
+
+PREFIX core: <${vivoCore}>
+ SELECT ?existingStartYear WHERE { ?role core:endYear ?existingStartYear .}
+
+
+
+ PREFIX core: <${vivoCore}>
+ SELECT ?existingGrant WHERE { ?role core:roleIn ?existingGrant . }
+
${vivoOnt}#Grant
@@ -122,7 +148,7 @@ if ( ((String)request.getAttribute("predicateUri")).endsWith("hasPrincipalInvest
"n3required" : [ "${n3ForGrantRole}", "${startYearAssertion}" ],
- "n3optional" : [ "${n3ForNewGrant}", "${n3ForInverse}", "${endYearAssertion}" ],
+ "n3optional" : [ "${n3ForGrantType}", "${n3ForGrantLabel}", "${n3ForInverse}", "${endYearAssertion}" ],
"newResources" : { "role" : "${defaultNamespace}",
"grant" : "${defaultNamespace}" },
@@ -133,10 +159,10 @@ if ( ((String)request.getAttribute("predicateUri")).endsWith("hasPrincipalInvest
"urisOnForm" : [ "grant" ],
"literalsOnForm" : [ "grantLabel", "startYear", "endYear" ],
"filesOnForm" : [ ],
- "sparqlForLiterals" : { },
- "sparqlForUris" : { },
- "sparqlForExistingLiterals" : { },
- "sparqlForExistingUris" : { },
+ "sparqlForLiterals" : { },
+ "sparqlForUris" : { },
+ "sparqlForExistingLiterals" : { "grantLabel":"${grantLabelQuery}" , "startYear":"${startYearQuery}", "endYear":"${endYearQuery}" },
+ "sparqlForExistingUris" : { "grant":"${grantQuery}" },
"fields" : {
"grant" : {
"newResource" : "false",
@@ -151,14 +177,14 @@ if ( ((String)request.getAttribute("predicateUri")).endsWith("hasPrincipalInvest
},
"grantLabel" : {
"newResource" : "false",
- "validators" : [ "datatype:${stringDatatypeUriJson}" ],
+ "validators" : [ ${labelRequired} "datatype:${stringDatatypeUriJson}" ],
"optionsType" : "UNDEFINED",
"literalOptions" : [ ],
"predicateUri" : "",
"objectClassUri" : "${personClassUriJson}",
"rangeDatatypeUri" : "${stringDatatypeUriJson}",
"rangeLang" : "",
- "assertions" : ["${n3ForExistingPub}"]
+ "assertions" : ["${n3ForGrantLabel}"]
},
"startYear" : {
"newResource" : "false",
@@ -193,13 +219,16 @@ if ( ((String)request.getAttribute("predicateUri")).endsWith("hasPrincipalInvest
editConfig = new EditConfiguration((String) request.getAttribute("editjson"));
EditConfiguration.putConfigInSession(editConfig,session);
}
-
- //validator for addGrantRoleToPerson.jsp?
- //editConfig.addValidator(new AddGrantRoleToPersonValidator());
+
editConfig.addValidator(new StartYearBeforeEndYear("startYear","endYear") );
Model model = (Model) application.getAttribute("jenaOntModel");
- editConfig.prepareForNonUpdate(model);
+ String objectUri = (String) request.getAttribute("objectUri");
+ if (objectUri != null) {
+ editConfig.prepareForObjPropUpdate(model);
+ } else {
+ editConfig.prepareForNonUpdate(model);
+ }
//this will return the browser to the new grant entity after an edit.
editConfig.setEntityToReturnTo("?grant");
@@ -251,7 +280,7 @@ if ( ((String)request.getAttribute("predicateUri")).endsWith("hasPrincipalInvest
<%-- Must be all one line for JavaScript. --%>
-PREFIX core: <${vivoCore}> SELECT ?grantUri WHERE {<${subjectUri}> core:hasPrincipalInvestigatorRole ?grantRole . ?grantRole core:roleIn ?grantUri .}
+PREFIX core: <${vivoCore}> SELECT ?grantUri WHERE {<${subjectUri}> <${predicateUri}> ?grantRole . ?grantRole core:roleIn ?grantUri .}