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 .}