diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java index e401877f5..23c3a249c 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/EditRequestDispatchController.java @@ -32,6 +32,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditSubmissionUtils; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.MultiValueEditSubmission; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.EditConfigurationGenerator; import edu.cornell.mannlib.vitro.webapp.web.URLEncoder; +import edu.cornell.mannlib.vitro.webapp.web.beanswrappers.ReadOnlyBeansWrapper; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.edit.EditConfigurationTemplateModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.edit.MultiValueEditSubmissionTemplateModel; /** @@ -105,7 +106,9 @@ public class EditRequestDispatchController extends FreemarkerHttpServlet { //what goes in the map for templates? Map templateData = new HashMap(); EditConfigurationTemplateModel etm = new EditConfigurationTemplateModel( editConfig, vreq); - templateData.put("editConfiguration", etm); + //Similar to individual controller, we're exposing getters that require paramters as well here - + //Used specifically since we are including object property statement template model + templateData.put("editConfiguration", wrap(etm, new ReadOnlyBeansWrapper())); templateData.put("editSubmission", submissionTemplateModel); //Corresponding to original note for consistency with selenium tests and 1.1.1 templateData.put("title", "Edit"); @@ -135,7 +138,7 @@ public class EditRequestDispatchController extends FreemarkerHttpServlet { private ResponseValues redirectToMenuEdit(VitroRequest vreq) { String queryString = vreq.getQueryString(); String redirectPage = vreq.getContextPath() + "/editDisplayModel?" + queryString; - return new RedirectResponseValues(redirectPage, HttpServletResponse.SC_SEE_OTHER); + return new DirectRedirectResponseValues(redirectPage, HttpServletResponse.SC_SEE_OTHER); } private MultiValueEditSubmission getMultiValueSubmission(VitroRequest vreq, EditConfigurationVTwo editConfig) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/edit/EditConfigurationTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/edit/EditConfigurationTemplateModel.java index 687ae9315..39851dbeb 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/edit/EditConfigurationTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/edit/EditConfigurationTemplateModel.java @@ -36,6 +36,10 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditElementVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.SelectListGeneratorVTwo; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel; +import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.DataPropertyStatementTemplateModel; +import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.EditingPolicyHelper; +import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.ObjectPropertyStatementTemplateModel; +import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.PropertyStatementTemplateModel; public class EditConfigurationTemplateModel extends BaseTemplateModel { EditConfigurationVTwo editConfig; @@ -420,24 +424,38 @@ public class EditConfigurationTemplateModel extends BaseTemplateModel { } //TODO: Implement statement display - public Map getStatementDisplay() { + public ObjectPropertyStatementTemplateModel getObjectStatementDisplay() { Map statementDisplay = new HashMap(); - if(isDataProperty()) { - statementDisplay.put("dataValue", getDataLiteralValuesFromParameter()); - } else { - //Expecting statement parameters to be passed in - Map params = vreq.getParameterMap(); - for (Object key : params.keySet()) { - String keyString = (String) key; //key.toString() - if (keyString.startsWith("statement_")) { - keyString = keyString.replaceFirst("statement_", ""); - String value = ( (String[]) params.get(key))[0]; - statementDisplay.put(keyString, value); - } - } - - } - return statementDisplay; + String subjectUri = EditConfigurationUtils.getSubjectUri(vreq); + String predicateUri = EditConfigurationUtils.getPredicateUri(vreq); + String objectUri = EditConfigurationUtils.getObjectUri(vreq); + //ObjectPropertyStatementTemplate Model should pass the object key as part of the delete url + String objectKey = vreq.getParameter("objectKey"); + statementDisplay.put(objectKey, objectUri); + //Set data map + Map params = vreq.getParameterMap(); + for (Object key : params.keySet()) { + String keyString = (String) key; //key.toString() + if (keyString.startsWith("statement_")) { + keyString = keyString.replaceFirst("statement_", ""); + String value = ( (String[]) params.get(key))[0]; + statementDisplay.put(keyString, value); + } + } + + //Using object property statement template model here + ObjectPropertyStatementTemplateModel osm = new ObjectPropertyStatementTemplateModel( + subjectUri, + predicateUri, + objectKey, + statementDisplay, + null, null, vreq); + return osm; + } + + public String getDataStatementDisplay() { + //Just return the value of the data property + return getDataLiteralValuesFromParameter(); } //Used for deletion in case there's a specific template to be employed @@ -464,6 +482,8 @@ public class EditConfigurationTemplateModel extends BaseTemplateModel { return dataValue; } + + //TODO:Check where this logic should actually go, copied from input element formatting tag public Map getOfferTypesCreateNew() { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java index bab8988d9..d89f82357 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/DataPropertyStatementTemplateModel.java @@ -31,7 +31,7 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat protected String value; //Extended to include vitro request to check for special parameters - DataPropertyStatementTemplateModel(String subjectUri, String propertyUri, + public DataPropertyStatementTemplateModel(String subjectUri, String propertyUri, Literal literal, EditingPolicyHelper policyHelper, VitroRequest vreq) { super(subjectUri, propertyUri, policyHelper, vreq); @@ -51,7 +51,7 @@ public class DataPropertyStatementTemplateModel extends PropertyStatementTemplat super(subjectUri, propertyUri, policyHelper, vreq); } - protected void setValue(String value) { + public void setValue(String value) { this.value = value; } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java index ed9d2c9e9..455a32aa1 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/ObjectPropertyStatementTemplateModel.java @@ -28,14 +28,16 @@ public class ObjectPropertyStatementTemplateModel extends PropertyStatementTempl // Used for editing private final String objectUri; private final String templateName; - - ObjectPropertyStatementTemplateModel(String subjectUri, String propertyUri, String objectKey, + private final String objectKey; + public ObjectPropertyStatementTemplateModel(String subjectUri, String propertyUri, String objectKey, Map data, EditingPolicyHelper policyHelper, String templateName, VitroRequest vreq) { super(subjectUri, propertyUri, policyHelper, vreq); this.data = data; this.objectUri = data.get(objectKey); this.templateName = templateName; + //to keep track of later + this.objectKey = objectKey; setEditUrls(policyHelper); } @@ -67,7 +69,8 @@ public class ObjectPropertyStatementTemplateModel extends PropertyStatementTempl "subjectUri", subjectUri, "predicateUri", propertyUri, "objectUri", objectUri, - "cmd", "delete"); + "cmd", "delete", + "objectKey", objectKey); for ( String key : data.keySet() ) { String value = data.get(key); diff --git a/webapp/web/templates/freemarker/edit/forms/confirmDeletePropertyForm.ftl b/webapp/web/templates/freemarker/edit/forms/confirmDeletePropertyForm.ftl index 03c6ce1c7..545d8e520 100644 --- a/webapp/web/templates/freemarker/edit/forms/confirmDeletePropertyForm.ftl +++ b/webapp/web/templates/freemarker/edit/forms/confirmDeletePropertyForm.ftl @@ -4,20 +4,23 @@ <#if editConfiguration.objectProperty = true> <#assign toBeDeletedClass = "objProp" /> + <#assign statement = editConfiguration.objectStatementDisplay /> +<#else> + <#assign statement = editConfiguration.dataStatementDisplay /> <#assign deletionTemplateName = editConfiguration.deleteTemplate/> -<#assign statement = editConfiguration.statementDisplay /> +

Are you sure you want to delete the following entry from ${editConfiguration.propertyName}?

<#if editConfiguration.objectProperty = true> - <#if statement?has_content && (statement?keys?size > 0)> + <#if statement?has_content> <#include deletionTemplateName /> <#else> - ${statement.dataValue} + ${statement}