diff --git a/webapp/web/edit/postEditCleanUp.jsp b/webapp/web/edit/postEditCleanUp.jsp
index 99ed59389..8e4f56607 100644
--- a/webapp/web/edit/postEditCleanUp.jsp
+++ b/webapp/web/edit/postEditCleanUp.jsp
@@ -5,6 +5,8 @@
<%@ page import="edu.cornell.mannlib.vitro.webapp.controller.Controllers" %>
<%@page import="org.apache.commons.logging.Log"%>
<%@page import="org.apache.commons.logging.LogFactory"%>
+<%@page import="com.hp.hpl.jena.rdf.model.ResourceFactory"%>
+<%@page import="com.hp.hpl.jena.rdf.model.Property"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jstl/functions" %>
<%@ taglib uri="http://jakarta.apache.org/taglibs/string-1.1" prefix="str" %>
@@ -12,8 +14,10 @@
<%
/* Clear any cruft from session. */
- String redirectTo = null;
+ String resourceToRedirectTo = null;
String urlPattern = null;
+ String predicateLocalName = null;
+ String predicateAnchor = "";
if( session != null ) {
EditConfiguration editConfig = EditConfiguration.getConfigFromSession(session,request);
//In order to support back button resubmissions, don't remove the editConfig from session.
@@ -21,53 +25,57 @@
EditSubmission editSub = EditSubmission.getEditSubmissionFromSession(session,editConfig);
EditSubmission.clearEditSubmissionInSession(session, editSub);
-
- if( editConfig != null && editConfig.getEntityToReturnTo() != null ){
- String predicateUri = editConfig.getPredicateUri();
- log.debug("Return to property after submitting form: " + predicateUri);
- %>
-
-
- <%
+
+ if( editConfig != null ){
+ String predicateUri = editConfig.getPredicateUri();
+ if( predicateUri != null ){
+ Property prop = ResourceFactory.createProperty(predicateUri);
+ predicateLocalName = prop.getLocalName();
+ }
- if( editConfig.getEntityToReturnTo().startsWith("?") ){
- redirectTo = (String)request.getAttribute("entityToReturnTo");
+ if( editConfig.getEntityToReturnTo() != null && editConfig.getEntityToReturnTo().startsWith("?") ){
+ resourceToRedirectTo = (String)request.getAttribute("entityToReturnTo");
}else{
- redirectTo = editConfig.getEntityToReturnTo();
- }
-
+ resourceToRedirectTo = editConfig.getEntityToReturnTo();
+ }
}
- if( editConfig != null && editConfig.getUrlPatternToReturnTo() != null){
- urlPattern = editConfig.getUrlPatternToReturnTo();
+
+ //set up base URL
+ if( editConfig == null || editConfig.getUrlPatternToReturnTo() == null){
+ urlPattern = "/individual";
+ }else{
+ urlPattern = editConfig.getUrlPatternToReturnTo();
+ }
+
+ //looks like a redirec to an profile page, try to add anchor for property that was just edited.
+ if( urlPattern.endsWith("individual") || urlPattern.endsWith("entity") ){
+ if( predicateLocalName != null && predicateLocalName.length() > 0){
+ predicateAnchor = "#" + predicateLocalName;
+ request.setAttribute("predicateAnchor", predicateAnchor);
+ }
}
}
-
- if( redirectTo != null ){
- request.setAttribute("redirectTo",redirectTo); %>
-
- <%--
-
-
- --%>
-
- <% if( urlPattern != null && urlPattern.endsWith("entity")){ %>
+
+ /* The parameter extra=true is just for ie6. */
+ if( resourceToRedirectTo != null ){
+ if( urlPattern != null && ( urlPattern.endsWith("entity") || urlPattern.endsWith("individual") )){ %>
<%-- Here we're building the redirect URL to include an (unencoded) fragment identifier such as: #propertyName --%>
-
-
+
+
+
-
- <% } else {
- request.setAttribute("urlPattern",urlPattern);%>
-
-
+
+ <% } else { %>
+
+
+
-
+
<%} %>
<% } else { %>
<% } %>
-
<%!
Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.edit.postEditCleanUp.jsp");
%>