diff --git a/productMods/edit/forms/addRoleToPersonTwoStage.jsp b/productMods/edit/forms/addRoleToPersonTwoStage.jsp
index 67b2c883..e545e959 100644
--- a/productMods/edit/forms/addRoleToPersonTwoStage.jsp
+++ b/productMods/edit/forms/addRoleToPersonTwoStage.jsp
@@ -97,6 +97,9 @@
<%--blank triggers default URI generation behavior --%>
+<%-- label is required if we are doing an update --%>
+<%= request.getAttribute("objectUri")== null?"":"\"nonempty\"," %>
+
?role <${startYearUri}> ?startYear .
@@ -116,15 +119,41 @@
?roleActivity core:relatedRole ?role .
-
- ?roleActivity <${label}> ?title .
+
?roleActivity a ?roleActivityType .
+
+ ?roleActivity <${label}> ?title .
+
+
?role ?inverseRolePredicate ?person.
+
+ PREFIX core: <${vivoCore}>
+ PREFIX rdfs: <${rdfs}>
+ SELECT ?existingTitle WHERE {
+ ?role core:roleIn ?existingActivity .
+ ?existingActivity rdfs:label ?existingTitle . }
+
+
+
+ PREFIX core: <${vivoCore}>
+ SELECT ?existingStartYear WHERE { ?role core:startYear ?existingStartYear .}
+
+
+
+ PREFIX core: <${vivoCore}>
+ SELECT ?existingStartYear WHERE { ?role core:endYear ?existingStartYear .}
+
+
+
+ PREFIX core: <${vivoCore}>
+ SELECT ?existingActivity WHERE { ?role core:roleIn ?existingActivity . }
+
+
${publicationsClassGroupUri}
@@ -138,8 +167,8 @@
"predicate" : ["rolePredicate", "${predicateUriJson}" ],
"object" : ["role", "${objectUriJson}", "URI" ],
- "n3required" : [ "${n3ForNewRole}", "${startYearAssertion}" ],
- "n3optional" : [ "${n3ForNewActivity}", "${n3ForInverse}", "${endYearAssertion}" ],
+ "n3required" : [ "${n3ForNewRole}", "${startYearAssertion}" ],
+ "n3optional" : [ "${n3ForNewActivityTitle}", "${n3ForNewActivityType}", "${n3ForInverse}", "${endYearAssertion}" ],
"newResources" : { "role" : "${defaultNamespace}",
"roleActivity" : "${defaultNamespace}" },
@@ -151,19 +180,19 @@
"filesOnForm" : [ ],
"sparqlForLiterals" : { },
"sparqlForUris" : { },
- "sparqlForExistingLiterals" : { },
- "sparqlForExistingUris" : { },
+ "sparqlForExistingLiterals" : { "title":"${titleQuery}", "startYearMonth":"${startYearMonthQuery}", "endYearMonth":"${endYearMonthQuery}" },
+ "sparqlForExistingUris" : { "roleActivity":"${activityQuery}" },
"fields" : {
"title" : {
"newResource" : "false",
- "validators" : [ "datatype:${stringDatatypeUriJson}" ],
+ "validators" : [ ${labelRequired} "datatype:${stringDatatypeUriJson}" ],
"optionsType" : "UNDEFINED",
"literalOptions" : [ ],
"predicateUri" : "",
"objectClassUri" : "",
"rangeDatatypeUri" : "${stringDatatypeUriJson}",
"rangeLang" : "",
- "assertions" : [ ]
+ "assertions" : ["${n3ForNewActivityTitle}" ]
},
"roleActivityType" : {
"newResource" : "true",
@@ -174,7 +203,7 @@
"objectClassUri" : "${roleActivityType_objectClassUri}",
"rangeDatatypeUri" : "",
"rangeLang" : "",
- "assertions" : [ ]
+ "assertions" : ["${n3ForNewActivityType}" ]
},
"roleActivity" : {
"newResource" : "true",
@@ -227,7 +256,11 @@
Model model = (Model) application.getAttribute("jenaOntModel");
String objectUri = (String) request.getAttribute("objectUri");
- editConfig.prepareForNonUpdate(model); // we're only adding new, not editing existing
+ if (objectUri != null) {
+ editConfig.prepareForObjPropUpdate(model);
+ } else {
+ editConfig.prepareForNonUpdate(model);
+ }
List customJs = new ArrayList(Arrays.asList(JavaScript.JQUERY_UI.path(),
JavaScript.CUSTOM_FORM_UTILS.path(),