diff --git a/webapp/config/tlds/vitroForm.tld b/webapp/config/tlds/vitroForm.tld index 258a41ced..0674bdedd 100644 --- a/webapp/config/tlds/vitroForm.tld +++ b/webapp/config/tlds/vitroForm.tld @@ -148,20 +148,15 @@ true - cancelLabel + labelClass false true - + cssClass false true - - labelClass - false - true - value false @@ -201,7 +196,17 @@ cancel false true - + + + cancelLabel + false + true + + + cancelUrl + false + true + \ No newline at end of file diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/EditSubmission.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/EditSubmission.java index f85a67525..12c7db154 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/EditSubmission.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/EditSubmission.java @@ -29,7 +29,7 @@ import com.hp.hpl.jena.vocabulary.XSD; import edu.cornell.mannlib.vitro.webapp.edit.EditLiteral; -public class EditSubmission implements Cloneable { +public class EditSubmission { private String editKey; private Map literalsFromForm ; @@ -413,16 +413,6 @@ public class EditSubmission implements Cloneable { } return out; } - - public EditSubmission clone() { - try { - return (EditSubmission) super.clone(); - } catch (CloneNotSupportedException e) { - // TODO Auto-generated catch block - log.error("Error cloning EditSubmission object: CloneNotSupported exception"); - return null; - } - } - + private Log log = LogFactory.getLog(EditSubmission.class); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/jsptags/InputElementFormattingTag.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/jsptags/InputElementFormattingTag.java index fb93bd02f..28f7a7232 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/jsptags/InputElementFormattingTag.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/jsptags/InputElementFormattingTag.java @@ -43,6 +43,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditSubmission; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.SelectListGenerator; +import edu.cornell.mannlib.vitro.webapp.utils.StringUtils; /** * This tag will build an option list for individuals of a VClass. @@ -56,6 +57,7 @@ public class InputElementFormattingTag extends TagSupport { private String type; private String label; private String cancelLabel; + private String cancelUrl; private String cssClass; private String labelClass; private String value; @@ -96,6 +98,12 @@ public class InputElementFormattingTag extends TagSupport { public void setCancelLabel(String cancelLabel) { this.cancelLabel = cancelLabel; } + public String getCancelUrl() { + return cancelUrl; + } + public void setCancelUrl(String cancelUrl) { + this.cancelUrl = cancelUrl; + } public String getCssClass() { return cssClass; } @@ -295,12 +303,19 @@ public class InputElementFormattingTag extends TagSupport { }else if( "dashboard".equals( getCancel() )){ //this case is Datastar-specific. return " or "+labelStr+""; - }else if (getCancel()!=null && !getCancel().equals("")) { + }else if (getCancel()!=null && !getCancel().equals("") && !getCancel().equals("false")) { if( editConfig != null && editConfig.getEditKey() != null ){ try{ - return " or "+labelStr+""; + String url = vreq.getContextPath() + + "/edit/postEditCleanUp.jsp?editKey="+ + URLEncoder.encode(editConfig.getEditKey(),"UTF-8") + + "&cancel=true"; + String cancelUrl = getCancelUrl(); + if (!StringUtils.isEmpty(cancelUrl)) { + url += "&url=" + cancelUrl; + } + return " or "+labelStr+""; }catch(UnsupportedEncodingException ex){ log.error( "doCancel(): " , ex); } diff --git a/webapp/web/edit/forms/addMissingWithMonikerAndLink.jsp b/webapp/web/edit/forms/addMissingWithMonikerAndLink.jsp index af5744ca8..e3baac38c 100644 --- a/webapp/web/edit/forms/addMissingWithMonikerAndLink.jsp +++ b/webapp/web/edit/forms/addMissingWithMonikerAndLink.jsp @@ -264,7 +264,7 @@ $(document).ready(function() {
start typing to see existing choices, or add a new label - + diff --git a/webapp/web/edit/forms/admin/resourceDisplayVisibility.jsp b/webapp/web/edit/forms/admin/resourceDisplayVisibility.jsp index 7d4047a31..8f1fdff0d 100644 --- a/webapp/web/edit/forms/admin/resourceDisplayVisibility.jsp +++ b/webapp/web/edit/forms/admin/resourceDisplayVisibility.jsp @@ -129,7 +129,7 @@ public static Log log = LogFactory.getLog("edu.cornell.mannlib.vitro.webapp.jsp.

Set Display Visibility

" > - + diff --git a/webapp/web/edit/forms/autoCompleteDatapropForm.jsp b/webapp/web/edit/forms/autoCompleteDatapropForm.jsp index 53a070dcd..a37b87478 100644 --- a/webapp/web/edit/forms/autoCompleteDatapropForm.jsp +++ b/webapp/web/edit/forms/autoCompleteDatapropForm.jsp @@ -171,7 +171,7 @@ $(document).ready(function() {

${predicate.publicDescription}

- + diff --git a/webapp/web/edit/forms/autoCompleteObjPropForm.jsp b/webapp/web/edit/forms/autoCompleteObjPropForm.jsp index a7a88fc17..8b4eb9302 100644 --- a/webapp/web/edit/forms/autoCompleteObjPropForm.jsp +++ b/webapp/web/edit/forms/autoCompleteObjPropForm.jsp @@ -171,7 +171,7 @@ $(document).ready(function() {

${predicate.publicDescription}

- +

If you don't find the appropriate entry on the selection list, diff --git a/webapp/web/edit/forms/datapropStmtDelete.jsp b/webapp/web/edit/forms/datapropStmtDelete.jsp index 0339e60f5..85ae07feb 100644 --- a/webapp/web/edit/forms/datapropStmtDelete.jsp +++ b/webapp/web/edit/forms/datapropStmtDelete.jsp @@ -124,7 +124,7 @@ - + <% } diff --git a/webapp/web/edit/forms/defaultAddMissingIndividualForm.jsp b/webapp/web/edit/forms/defaultAddMissingIndividualForm.jsp index ec4c87bca..a0b45c4c2 100644 --- a/webapp/web/edit/forms/defaultAddMissingIndividualForm.jsp +++ b/webapp/web/edit/forms/defaultAddMissingIndividualForm.jsp @@ -249,7 +249,7 @@

${title}

" >

- + diff --git a/webapp/web/edit/forms/defaultDatapropForm.jsp b/webapp/web/edit/forms/defaultDatapropForm.jsp index 1b5b1edff..780f620ff 100644 --- a/webapp/web/edit/forms/defaultDatapropForm.jsp +++ b/webapp/web/edit/forms/defaultDatapropForm.jsp @@ -155,7 +155,7 @@
- + diff --git a/webapp/web/edit/forms/defaultLinkForm.jsp b/webapp/web/edit/forms/defaultLinkForm.jsp index c4377cc3a..a65a311bc 100644 --- a/webapp/web/edit/forms/defaultLinkForm.jsp +++ b/webapp/web/edit/forms/defaultLinkForm.jsp @@ -204,7 +204,7 @@ -

+

diff --git a/webapp/web/edit/forms/defaultObjPropForm.jsp b/webapp/web/edit/forms/defaultObjPropForm.jsp index 55cba6727..ed6789361 100644 --- a/webapp/web/edit/forms/defaultObjPropForm.jsp +++ b/webapp/web/edit/forms/defaultObjPropForm.jsp @@ -150,7 +150,7 @@
- +
diff --git a/webapp/web/edit/forms/defaultVitroNsDataPropForm.jsp b/webapp/web/edit/forms/defaultVitroNsDataPropForm.jsp index 423f9af35..bf352c795 100644 --- a/webapp/web/edit/forms/defaultVitroNsDataPropForm.jsp +++ b/webapp/web/edit/forms/defaultVitroNsDataPropForm.jsp @@ -191,7 +191,7 @@
" > -

+

diff --git a/webapp/web/edit/forms/propDelete.jsp b/webapp/web/edit/forms/propDelete.jsp index 71f54ad9c..5da9c5fd7 100644 --- a/webapp/web/edit/forms/propDelete.jsp +++ b/webapp/web/edit/forms/propDelete.jsp @@ -159,7 +159,7 @@ public WebappDaoFactory getUnfilteredDaoFactory() { -

+

diff --git a/webapp/web/edit/forms/simpleFileUpload.jsp b/webapp/web/edit/forms/simpleFileUpload.jsp index 00d5b96e7..3995fa2d8 100644 --- a/webapp/web/edit/forms/simpleFileUpload.jsp +++ b/webapp/web/edit/forms/simpleFileUpload.jsp @@ -98,7 +98,7 @@

Upload a File

" ENCTYPE="multipart/form-data" method="POST"> File - + diff --git a/webapp/web/edit/postEditCleanUp.jsp b/webapp/web/edit/postEditCleanUp.jsp index 8e4f56607..96aed8210 100644 --- a/webapp/web/edit/postEditCleanUp.jsp +++ b/webapp/web/edit/postEditCleanUp.jsp @@ -3,6 +3,7 @@ <%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration" %> <%@ page import="edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditSubmission" %> <%@ page import="edu.cornell.mannlib.vitro.webapp.controller.Controllers" %> +<%@ page import="edu.cornell.mannlib.vitro.webapp.utils.StringUtils" %> <%@page import="org.apache.commons.logging.Log"%> <%@page import="org.apache.commons.logging.LogFactory"%> <%@page import="com.hp.hpl.jena.rdf.model.ResourceFactory"%> @@ -41,13 +42,24 @@ } //set up base URL - if( editConfig == null || editConfig.getUrlPatternToReturnTo() == null){ - urlPattern = "/individual"; - }else{ - urlPattern = editConfig.getUrlPatternToReturnTo(); + String cancel = request.getParameter("cancel"); + String urlPatternToReturnTo = null; + String urlPatternToCancelTo = null; + if (editConfig != null) { + urlPatternToReturnTo = editConfig.getUrlPatternToReturnTo(); + urlPatternToCancelTo = request.getParameter("url"); + } + // If a different cancel return path has been designated, use it. Otherwise, use the regular return path. + if (cancel != null && cancel.equals("true") && !StringUtils.isEmpty(urlPatternToCancelTo)) { + urlPattern = urlPatternToCancelTo; + } + else if (!StringUtils.isEmpty(urlPatternToReturnTo)) { + urlPattern = urlPatternToReturnTo; + } else { + urlPattern = "/individual"; } - //looks like a redirec to an profile page, try to add anchor for property that was just edited. + //looks like a redirect to a 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; diff --git a/webapp/web/edit/processRdfForm2.jsp b/webapp/web/edit/processRdfForm2.jsp index 428b058eb..59c1bcf26 100644 --- a/webapp/web/edit/processRdfForm2.jsp +++ b/webapp/web/edit/processRdfForm2.jsp @@ -89,10 +89,12 @@ are well formed. EditSubmission submission = new EditSubmission(queryParameters,editConfig); // Preprocess the form submission - EditSubmission processedSubmission = submission.clone(); - for (EditSubmissionPreprocessor preprocessor : editConfig.getEditSubmissionPreprocessors()) { - preprocessor.preprocess(processedSubmission); - } + // RY clone() creates a shallow copy, not a deep copy. To do this, need to implement + // a custom clone() method for EditSubmission or a copy constructor. + //EditSubmission submission = submission.clone(); + //for (EditSubmissionPreprocessor preprocessor : editConfig.getEditSubmissionPreprocessors()) { + // preprocessor.preprocess(submission); + //} /* entity to return to may be a variable */ List entToReturnTo = new ArrayList(1); @@ -129,9 +131,9 @@ are well formed. Map> fieldRetractions= fieldsToRetractionMap(editConfig.getFields()); /* ********** URIs and Literals on Form/Parameters *********** */ - fieldAssertions = n3Subber.substituteIntoValues( processedSubmission.getUrisFromForm(), processedSubmission.getLiteralsFromForm(), fieldAssertions); + fieldAssertions = n3Subber.substituteIntoValues( submission.getUrisFromForm(), submission.getLiteralsFromForm(), fieldAssertions); if(log.isDebugEnabled()) logAddRetract("substituted in literals from form",fieldAssertions,fieldRetractions); - entToReturnTo = n3Subber.subInUris(processedSubmission.getUrisFromForm(),entToReturnTo); + entToReturnTo = n3Subber.subInUris(submission.getUrisFromForm(),entToReturnTo); //fieldRetractions does NOT get values from form. /* ****************** URIs and Literals in Scope ************** */ @@ -211,14 +213,14 @@ are well formed. /* ********** URIs and Literals on Form/Parameters *********** */ //sub in resource uris off form - n3Required = n3Subber.subInUris(processedSubmission.getUrisFromForm(), n3Required); - n3Optional = n3Subber.subInUris(processedSubmission.getUrisFromForm(), n3Optional); + n3Required = n3Subber.subInUris(submission.getUrisFromForm(), n3Required); + n3Optional = n3Subber.subInUris(submission.getUrisFromForm(), n3Optional); if(log.isDebugEnabled()) logRequiredOpt("substituted in URIs off from ",n3Required,n3Optional); - entToReturnTo = n3Subber.subInUris(processedSubmission.getUrisFromForm(), entToReturnTo); + entToReturnTo = n3Subber.subInUris(submission.getUrisFromForm(), entToReturnTo); //sub in literals from form - n3Required = n3Subber.subInLiterals(processedSubmission.getLiteralsFromForm(), n3Required); - n3Optional = n3Subber.subInLiterals(processedSubmission.getLiteralsFromForm(), n3Optional); + n3Required = n3Subber.subInLiterals(submission.getLiteralsFromForm(), n3Required); + n3Optional = n3Subber.subInLiterals(submission.getLiteralsFromForm(), n3Optional); if(log.isDebugEnabled()) logRequiredOpt("substituted in literals off from ",n3Required,n3Optional); /* ****************** URIs and Literals in Scope ************** */