From e65e72a0658536180191e4c561199283d8ba7ea1 Mon Sep 17 00:00:00 2001 From: bdc34 Date: Fri, 9 Apr 2010 18:17:52 +0000 Subject: [PATCH] merging r4717 from nihvivo-rel-1.0-maint to trunk --- webapp/web/edit/postEditCleanUp.jsp | 78 ++++++++++++++++------------- 1 file changed, 43 insertions(+), 35 deletions(-) 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"); %>