Updates for NIHVIVO-3354 (default add missing individual and substitution of empty strings in object variables). Also updating edit request dispatch to forward to new edit dispatch controller before any additional processing in case the "oldEdit" parameter is not passed. Also removing mayEditAs.jsp.
This commit is contained in:
parent
a4f0f119c0
commit
a109868f34
5 changed files with 30 additions and 171 deletions
|
@ -86,7 +86,7 @@ public class EditN3GeneratorVTwo {
|
||||||
|
|
||||||
public String subInUris(String var, String value, String target) {
|
public String subInUris(String var, String value, String target) {
|
||||||
// empty URIs get skipped
|
// empty URIs get skipped
|
||||||
if( var == null || var.isEmpty() || value == null || target == null)
|
if( var == null || var.isEmpty() || value == null || value.isEmpty() || target == null)
|
||||||
return target;
|
return target;
|
||||||
|
|
||||||
return subInNonBracketedURIS(var, "<" + value + ">", target);
|
return subInNonBracketedURIS(var, "<" + value + ">", target);
|
||||||
|
|
|
@ -355,9 +355,9 @@ public class ProcessRdfForm {
|
||||||
}else{
|
}else{
|
||||||
log.debug("no varNameForPredicate found in configuration");
|
log.debug("no varNameForPredicate found in configuration");
|
||||||
}
|
}
|
||||||
|
|
||||||
String varNameForObj = configuration.getVarNameForObject();
|
String varNameForObj = configuration.getVarNameForObject();
|
||||||
if( varNameForObj != null && ! varNameForObj.isEmpty()){
|
if( varNameForObj != null
|
||||||
|
&& ! varNameForObj.isEmpty()){
|
||||||
varToValue.put( varNameForObj, configuration.getObject());
|
varToValue.put( varNameForObj, configuration.getObject());
|
||||||
}else{
|
}else{
|
||||||
log.debug("no varNameForObject found in configuration");
|
log.debug("no varNameForObject found in configuration");
|
||||||
|
|
|
@ -123,9 +123,8 @@ public class DefaultAddMissingIndividualFormGenerator implements EditConfigurati
|
||||||
|
|
||||||
private Map<String, String> generateNewResources(VitroRequest vreq) {
|
private Map<String, String> generateNewResources(VitroRequest vreq) {
|
||||||
HashMap<String, String> newResources = new HashMap<String, String>();
|
HashMap<String, String> newResources = new HashMap<String, String>();
|
||||||
//TODO: Get default namespace
|
//Null triggers default namespace
|
||||||
String defaultNamespace = vreq.getWebappDaoFactory().getDefaultNamespace();
|
newResources.put(objectVarName, null);
|
||||||
newResources.put(objectVarName, defaultNamespace + "individual");
|
|
||||||
return newResources;
|
return newResources;
|
||||||
}
|
}
|
||||||
//Need to replace edit key
|
//Need to replace edit key
|
||||||
|
@ -183,7 +182,11 @@ public class DefaultAddMissingIndividualFormGenerator implements EditConfigurati
|
||||||
|
|
||||||
private void initObjectParameters(VitroRequest vreq) {
|
private void initObjectParameters(VitroRequest vreq) {
|
||||||
//in case of object property
|
//in case of object property
|
||||||
objectUri = EditConfigurationUtils.getObjectUri(vreq);
|
String thisObjectUri = EditConfigurationUtils.getObjectUri(vreq);
|
||||||
|
if(thisObjectUri != null && !thisObjectUri.isEmpty()) {
|
||||||
|
objectUri = EditConfigurationUtils.getObjectUri(vreq);
|
||||||
|
}
|
||||||
|
//otherwise object uri will stay null - since don't want to set it to empty string
|
||||||
}
|
}
|
||||||
|
|
||||||
//this particular form uses a different var name for object "newIndividual"
|
//this particular form uses a different var name for object "newIndividual"
|
||||||
|
|
|
@ -35,14 +35,16 @@ public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.
|
||||||
response.sendRedirect(request.getContextPath() + "/editDisplayModel?" + queryString);
|
response.sendRedirect(request.getContextPath() + "/editDisplayModel?" + queryString);
|
||||||
}
|
}
|
||||||
|
|
||||||
//This is our way fo being able to test the new edit configuration
|
//If you find the parameter for testing the old edit, go ahead with the rest of the form
|
||||||
//TODO: Remove this when testing done
|
//otherwise forward immediately to the new edit request dispatch controller
|
||||||
if(request.getParameter("testEdit") != null) {
|
String oldEdit = request.getParameter("oldEdit");
|
||||||
String queryString = request.getQueryString();
|
if(oldEdit == null) {
|
||||||
response.sendRedirect(request.getContextPath() + "/editRequestDispatch?" + queryString);
|
String queryString = request.getQueryString();
|
||||||
|
response.sendRedirect(
|
||||||
|
request.getContextPath() +
|
||||||
|
"/editRequestDispatch?" +
|
||||||
|
queryString);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Decide which form to forward to, set subjectUri, subjectUriJson, predicateUri, and predicateUriJson in request.
|
Decide which form to forward to, set subjectUri, subjectUriJson, predicateUri, and predicateUriJson in request.
|
||||||
Also get the Individual for the subjectUri and put it in the request scope.
|
Also get the Individual for the subjectUri and put it in the request scope.
|
||||||
|
@ -244,33 +246,15 @@ public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.
|
||||||
form = formParam;
|
form = formParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
String oldEdit = request.getParameter("oldEdit");
|
//If doing old edit, which we must be b/c otherwise we wouldn't be here
|
||||||
if( oldEdit == null){
|
//then get the other
|
||||||
//First check to see if the form is actually a jsp
|
for (Map.Entry<String, String> entry: JspToGeneratorMapping.jspsToGenerators.entrySet()) {
|
||||||
//IF so use the custom form mapping
|
if(form.equals(entry.getValue())) {
|
||||||
if(form.endsWith(".jsp")) {
|
//Get the jsp corresponding to the Java generator
|
||||||
//Get the java mapping
|
form = entry.getKey();
|
||||||
if(JspToGeneratorMapping.jspsToGenerators.containsKey(form)) {
|
break;
|
||||||
form = JspToGeneratorMapping.jspsToGenerators.get(form);
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
String queryString = request.getQueryString();
|
|
||||||
response.sendRedirect(
|
|
||||||
request.getContextPath() +
|
|
||||||
"/editRequestDispatch?" +
|
|
||||||
queryString + "&editForm=" + form);
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
//For testing the jsp when test parameter has value,
|
|
||||||
//Do a reverse mapping from generator to jsp where it exists
|
|
||||||
for (Map.Entry<String, String> entry: JspToGeneratorMapping.jspsToGenerators.entrySet()) {
|
|
||||||
if(form.equals(entry.getValue())) {
|
|
||||||
//Get the jsp corresponding to the Java generator
|
|
||||||
form = entry.getKey();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
request.setAttribute("form", form);
|
request.setAttribute("form", form);
|
||||||
%>
|
%>
|
||||||
|
|
|
@ -1,128 +0,0 @@
|
||||||
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
|
|
||||||
|
|
||||||
<%@ page import="com.hp.hpl.jena.rdf.model.Model" %>
|
|
||||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.Individual" %>
|
|
||||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty" %>
|
|
||||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.beans.VClass" %>
|
|
||||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.VitroRequest" %>
|
|
||||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory" %>
|
|
||||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration" %>
|
|
||||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils" %>
|
|
||||||
<%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.ModelSelector" %>
|
|
||||||
<%@ page import="com.hp.hpl.jena.ontology.OntModel"%>
|
|
||||||
<%@ page import="org.apache.commons.logging.Log" %>
|
|
||||||
<%@ page import="org.apache.commons.logging.LogFactory" %>
|
|
||||||
<%@page import="edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary"%>
|
|
||||||
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
|
|
||||||
<%@ taglib prefix="v" uri="http://vitro.mannlib.cornell.edu/vitro/tags" %>
|
|
||||||
<%!
|
|
||||||
public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.edit.forms.admin.mayEditAs.jsp");
|
|
||||||
public static String RANGE_CLASS = "http://xmlns.com/foaf/0.1/Person";
|
|
||||||
public static String PREDICATE = VitroVocabulary.MAY_EDIT_AS;
|
|
||||||
%>
|
|
||||||
<%
|
|
||||||
String subjectUri = (String)request.getAttribute("subjectUri");
|
|
||||||
|
|
||||||
VitroRequest vreq = new VitroRequest(request);
|
|
||||||
WebappDaoFactory wdf = vreq.getWebappDaoFactory();
|
|
||||||
|
|
||||||
VClass rangeClass = wdf.getVClassDao().getVClassByURI( RANGE_CLASS );
|
|
||||||
if( rangeClass == null ) log.debug("Cannot find class for range for property."
|
|
||||||
+ " Looking for " + RANGE_CLASS);
|
|
||||||
|
|
||||||
request.setAttribute("rangeClassUriJson", MiscWebUtils.escape(RANGE_CLASS));
|
|
||||||
|
|
||||||
request.setAttribute("predicateUriJson", MiscWebUtils.escape(PREDICATE));
|
|
||||||
|
|
||||||
request.setAttribute("objectUriJson" , MiscWebUtils.escape((String)request.getAttribute("objectUri")));
|
|
||||||
%>
|
|
||||||
|
|
||||||
<v:jsonset var="n3ForEdit" >
|
|
||||||
?subject ?predicate ?objectVar.
|
|
||||||
</v:jsonset>
|
|
||||||
|
|
||||||
<c:set var="editjson" scope="request">
|
|
||||||
{
|
|
||||||
"formUrl" : "${formUrl}",
|
|
||||||
"editKey" : "${editKey}",
|
|
||||||
"urlPatternToReturnTo" : "/userEdit",
|
|
||||||
|
|
||||||
"subject" : [ "subject", "${subjectUriJson}" ] ,
|
|
||||||
"predicate" : [ "predicate", "${predicateUriJson}" ],
|
|
||||||
"object" : [ "objectVar" , "${objectUriJson}" , "URI"],
|
|
||||||
|
|
||||||
"n3required" : [ "${n3ForEdit}" ],
|
|
||||||
"n3optional" : [ ],
|
|
||||||
"newResources" : { },
|
|
||||||
|
|
||||||
"urisInScope" : { },
|
|
||||||
"literalsInScope" : { },
|
|
||||||
|
|
||||||
"urisOnForm" : ["objectVar"],
|
|
||||||
"literalsOnForm" : [ ],
|
|
||||||
"filesOnForm" : [ ],
|
|
||||||
|
|
||||||
"sparqlForLiterals" : { },
|
|
||||||
"sparqlForUris" : { },
|
|
||||||
|
|
||||||
"sparqlForExistingLiterals" : { },
|
|
||||||
"sparqlForExistingUris" : { },
|
|
||||||
"fields" : { "objectVar" : {
|
|
||||||
"newResource" : "false",
|
|
||||||
"queryForExisting" : { },
|
|
||||||
"validators" : [ ],
|
|
||||||
"optionsType" : "INDIVIDUALS_VIA_VCLASS",
|
|
||||||
"subjectUri" : "${subjectUriJson}",
|
|
||||||
"subjectClassUri" : "",
|
|
||||||
"predicateUri" : "",
|
|
||||||
"objectClassUri" : "${rangeClassUriJson}",
|
|
||||||
"rangeDatatypeUri" : "",
|
|
||||||
"rangeLang" : "",
|
|
||||||
"literalOptions" : [ ] ,
|
|
||||||
"assertions" : ["${n3ForEdit}"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</c:set>
|
|
||||||
|
|
||||||
<% /* now put edit configuration Json object into session */
|
|
||||||
EditConfiguration editConfig = new EditConfiguration((String)request.getAttribute("editjson"));
|
|
||||||
EditConfiguration.putConfigInSession(editConfig, session);
|
|
||||||
String formTitle ="";
|
|
||||||
String submitLabel ="";
|
|
||||||
Model model = (Model)application.getAttribute("jenaOntModel");
|
|
||||||
editConfig.setWriteModelSelector( new ModelSelector(){
|
|
||||||
public OntModel getModel(HttpServletRequest request, ServletContext context){
|
|
||||||
return (OntModel)context.getAttribute("userAccountsOntModel");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
if( request.getAttribute("object") != null ){//this block is for an edit of an existing object property statement
|
|
||||||
editConfig.prepareForObjPropUpdate( model );
|
|
||||||
formTitle = "Change person associated with this user account";
|
|
||||||
submitLabel = "Save Change";
|
|
||||||
} else {
|
|
||||||
editConfig.prepareForNonUpdate( model );
|
|
||||||
formTitle = "Select person to associate with this user account";
|
|
||||||
submitLabel = "Create Association";
|
|
||||||
}
|
|
||||||
%>
|
|
||||||
<jsp:include page="${preForm}"/>
|
|
||||||
|
|
||||||
<h2><%=formTitle%></h2>
|
|
||||||
<form class="editForm" action="<c:url value="/edit/processRdfForm2.jsp"/>" method="post">
|
|
||||||
<v:input type="select" id="objectVar" size="80" />
|
|
||||||
<v:input type="submit" id="submit" value="<%=submitLabel%>" cancel="${param.subjectUri}"/>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<c:if test="${!empty param.objectUri}" >
|
|
||||||
<form class="deleteForm" action="<c:url value="/edit/n3Delete.jsp"/>" method="post">
|
|
||||||
<label for="delete"><h3>Or remove this association?</h3></label>
|
|
||||||
<input type="hidden" name="subjectUri" value="${param.subjectUri}"/>
|
|
||||||
<input type="hidden" name="predicateUri" value="${param.predicateUri}"/>
|
|
||||||
<input type="hidden" name="objectVar" value="${param.objectUri}"/>
|
|
||||||
<input type="hidden" name="editform" value="edit/admin/mayEditAs.jsp"/>
|
|
||||||
<v:input type="submit" id="delete" value="Remove" cancel="" />
|
|
||||||
</form>
|
|
||||||
</c:if>
|
|
||||||
|
|
||||||
<jsp:include page="${postForm}"/>
|
|
Loading…
Add table
Reference in a new issue