diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditConfigurationVTwo.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditConfigurationVTwo.java index 0cc23e33c..69f329c0a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditConfigurationVTwo.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditConfigurationVTwo.java @@ -4,6 +4,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -57,38 +58,38 @@ import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch; public class EditConfigurationVTwo { //Strings representing required n3 for RDF - List n3Required; + List n3Required = Collections.emptyList(); //String representing optional N3 for RDF - List n3Optional; + List n3Optional = Collections.emptyList(); //Names of variables of 'objects' i.e. URIs on form - List urisOnform; + List urisOnform = Collections.emptyList(); //Names of variables corresponding to data values i.e. literals on form - List literalsOnForm; + List literalsOnForm = Collections.emptyList(); //Names of variables corresponding to Files on form - List filesOnForm; + List filesOnForm = Collections.emptyList(); //Multi values now supported for uris and literals, so second parameter needs to be List //Mapping of variable name for object to values for object, i.e. URIs, e.g. "hasElement" = ", " - Map> urisInScope; + Map> urisInScope = Collections.emptyMap(); //Mapping from variable name to values for literals - Map> literalsInScope; + Map> literalsInScope = Collections.emptyMap(); //Map name of variable to sparql query which should return a one-column result set of URIs corresponding to variable //E.g. sparql for inverse of object property - Map sparqlForAdditionalUrisInScope; + Map sparqlForAdditionalUrisInScope = Collections.emptyMap(); //Mapping variable to sparql query returning literals - Map sparqlForAdditionalLiteralsInScope; + Map sparqlForAdditionalLiteralsInScope = Collections.emptyMap(); //Variable names to URI prefixes for variables that are allowed to have new instances created - Map newResources; + Map newResources = Collections.emptyMap(); //Variable names to fields, Field = additional configuration for variable - Map fields; + Map fields = Collections.emptyMap(); //Mapping variable name to Sparql query to find existing literals corresponding to variable, result set should be one-column multi-row of literals - MapsparqlForExistingLiterals; + MapsparqlForExistingLiterals = Collections.emptyMap(); //Mapping variable name to Sparql query to find existing URIs corresponding to variable, result set should be one-column multi-row of URIs/URI resources - MapsparqlForExistingUris; + MapsparqlForExistingUris = Collections.emptyMap(); String subjectUri; String varNameForSubject; @@ -113,13 +114,13 @@ public class EditConfigurationVTwo { String formUrl; String editKey; - List validators; + List validators = Collections.emptyList(); EditN3GeneratorVTwo n3generator; - private List modelChangePreprocessors; + private List modelChangePreprocessors = Collections.emptyList(); - private List editSubmissionPreprocessors = null; + private List editSubmissionPreprocessors = Collections.emptyList(); private ProhibitedFromSearch prohibitedFromSearch; diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditN3GeneratorVTwo.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditN3GeneratorVTwo.java index a287c0b1b..011be53ba 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditN3GeneratorVTwo.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditN3GeneratorVTwo.java @@ -143,10 +143,42 @@ public class EditN3GeneratorVTwo { * This takes into account multiple values that would be returned from a select list. * subInUris should no longer be used. */ - public static List subInMultiLiterals(Map> varsToVals, List n3targets){ - return null; + public static List subInMultiLiterals(Map> varsToVals, List n3targets){ + if( varsToVals == null || varsToVals.isEmpty()) return n3targets; + + ArrayListoutv=new ArrayList(); + for( String n3 : n3targets ){ + String tmp = n3; + for( String key : varsToVals.keySet()){ + tmp = subInMultiLiterals( key, varsToVals.get(key),tmp); + } + } + return n3targets; } + protected static String subInMultiLiterals(String var, Listvalues, String n3){ + String tmp = n3; + + //make the multivalue literal string + List n3Values = new ArrayList(values.size()); + for( Literal value : values){ + n3Values.add( formatLiteral(value) ); + } + String valueString = org.apache.commons.lang.StringUtils.join(n3Values, ","); + + //Substitute it in to n3 + String varRegex = "\\?" + var + "(?=\\.\\p{Space}|\\p{Space})"; + + String out = null; + if( valueString != null ) + out = tmp.replaceAll(varRegex, Matcher.quoteReplacement( valueString )); + else + out = n3; + + return out; + } + + public List subInLiterals(Map varsToVals, List targets){ if( varsToVals == null || varsToVals.isEmpty()) return targets; @@ -222,8 +254,9 @@ public class EditN3GeneratorVTwo { log.debug("After attempting to substitue in literals, the target N3 was empty" ); return target; } - } - + } + + public Map> substituteIntoValues (Map> varsToUris, Map> varsToLiterals, @@ -292,7 +325,7 @@ public class EditN3GeneratorVTwo { * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - protected String formatLiteral(Literal literal) + protected static String formatLiteral(Literal literal) { String datatype = literal.getDatatypeURI() ; String lang = literal.getLanguage() ; @@ -407,7 +440,7 @@ public class EditN3GeneratorVTwo { } } - protected String formatURI(String uriStr) + protected static String formatURI(String uriStr) { // Not as a qname - write as a quoted URIref // Should we unicode escape here? diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditSubmissionUtils.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditSubmissionUtils.java index ab7d2e1bc..bba7037a3 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditSubmissionUtils.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/EditSubmissionUtils.java @@ -16,7 +16,7 @@ public class EditSubmissionUtils { /* *************** Static utility methods to get EditSub from Session *********** */ - public static MultiValueEditSubmission getEditSubmissionFromSession(HttpSession sess, EditConfiguration editConfig){ + public static MultiValueEditSubmission getEditSubmissionFromSession(HttpSession sess, EditConfigurationVTwo editConfig){ Map submissions = (Map)sess.getAttribute(MULTI_VALUED_EDIT_SUBMISSION); if( submissions == null ) @@ -40,7 +40,7 @@ public class EditSubmissionUtils { public static void clearEditSubmissionInSession(HttpSession sess, MultiValueEditSubmission editSub){ if( sess == null) return; if( editSub == null ) return; - Map submissions = (Map)sess.getAttribute("MULTI_VALUED_EDIT_SUBMISSION"); + Map submissions = (Map)sess.getAttribute(MULTI_VALUED_EDIT_SUBMISSION); if( submissions == null ){ throw new Error("MultiValueEditSubmission: could not get a Map of MultiValueEditSubmission from the session."); } @@ -50,7 +50,7 @@ public class EditSubmissionUtils { public static void clearAllEditSubmissionsInSession(HttpSession sess ){ if( sess == null) return; - sess.removeAttribute("MULTI_VALUED_EDIT_SUBMISSION"); + sess.removeAttribute(MULTI_VALUED_EDIT_SUBMISSION); } public static Map convertParams( @@ -61,5 +61,5 @@ public class EditSubmissionUtils { out.put(key, (String[])item.toArray(new String[item.size()])); } return out; - } + } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/MultiValueEditSubmission.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/MultiValueEditSubmission.java index 3f66734cf..1234e8e6b 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/MultiValueEditSubmission.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/MultiValueEditSubmission.java @@ -312,5 +312,5 @@ public class MultiValueEditSubmission { return obj.toString(); } - private Log log = LogFactory.getLog(MultiValueEditSubmission.class); + private Log log = LogFactory.getLog(MultiValueEditSubmission.class); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/InstitutionalInternalClassForm.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/InstitutionalInternalClassForm.java index b11be3129..6aafcf931 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/InstitutionalInternalClassForm.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/InstitutionalInternalClassForm.java @@ -2,10 +2,13 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators; +import java.util.ArrayList; + import javax.servlet.http.HttpSession; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.Field; /** * Generate the EditConfiguration for the Institutional Internal Class Form. @@ -15,12 +18,45 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTw */ public class InstitutionalInternalClassForm implements EditConfigurationGenerator { + String INTERNAL_CLASS_ANNOTATION_URI= ""; + @Override public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq, HttpSession session) { EditConfigurationVTwo editConfig = new EditConfigurationVTwo(); + + //set up the template for the form editConfig.setTemplate("institutionalInternalClassForm.ftl"); + //Set the n3 that is required for the edit + //bdc34: don't know how the annotation will be structured + StringList n3ForInternalClass =new StringList( " ?internalClassUri "+INTERNAL_CLASS_ANNOTATION_URI+" \"true\" . " ); + editConfig.setN3Required( n3ForInternalClass ); + + //bdc34: maybe this is redundent with the keys of the fields Map? + editConfig.setUrisOnform( new StringList( "internalClassUri" )); + + Field field = new Field(); + field.setAssertions( n3ForInternalClass ); + + //maybe field should have a way to get an option list? + //field.setOptionGenerator( new InternalClassOptionGenerator() ); + + //edit config should have URL to submit the form to + //editConfig.setUrl + //set the url pattern that the client will return to after a successful edit + editConfig.setUrlPatternToReturnTo("/siteAdmin"); + + editConfig.setSubmitToUrl("/edit/process"); return editConfig; } + + public class StringList extends ArrayList{ + public StringList( String ... strings){ + super(); + for( String str: strings){ + this.add(str); + } + } + } } 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 2fc5b9d5b..47fe65774 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 @@ -218,7 +218,7 @@ public class EditRequestDispatchController extends FreemarkerHttpServlet { //what goes in the map for templates? Map templateData = new HashMap(); - templateData.put("EditConfiguration", new EditConfigurationTemplateModel( editConfig, vreq)); + templateData.put("editConfiguration", new EditConfigurationTemplateModel( editConfig, vreq)); templateData.put("formTitle", formTitle); return new TemplateResponseValues(template, templateData); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/ProcessRdfFormController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/ProcessRdfFormController.java index ab2f624a4..3a021453d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/ProcessRdfFormController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/controller/ProcessRdfFormController.java @@ -16,27 +16,33 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.hp.hpl.jena.ontology.OntModel; +import com.hp.hpl.jena.rdf.model.Property; +import com.hp.hpl.jena.rdf.model.ResourceFactory; import edu.cornell.mannlib.vitro.webapp.beans.Individual; import edu.cornell.mannlib.vitro.webapp.beans.IndividualImpl; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.TemplateProcessingHelper.TemplateProcessingException; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route; +import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.RedirectResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues; import edu.cornell.mannlib.vitro.webapp.dao.InsertException; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; -import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.EditN3Utils; -import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditSubmissionUtils; -import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; -import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.AdditionsAndRetractions; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditSubmissionUtils; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.FieldVTwo; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.MultiValueEditSubmission; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.ProcessRdfForm; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.EditN3Utils; /** * This servlet will process EditConfigurations with query parameters @@ -54,33 +60,25 @@ public class ProcessRdfFormController extends FreemarkerHttpServlet{ // this will need to be converted from a jsp to something else public static final String POST_EDIT_CLEANUP_JSP = "postEditCleanUp.jsp"; - public void doPost(HttpServletRequest request, HttpServletResponse response) throws - ServletException, IOException{ - doGet(request, response); - } - public void doGet(HttpServletRequest request, HttpServletResponse response) throws - ServletException, IOException{ - VitroRequest vreq = new VitroRequest(request); - + @Override + protected ResponseValues processRequest(VitroRequest vreq) { //get the EditConfiguration - EditConfigurationVTwo configuration = getEditConfiguration(request); - if(configuration == null){ - doEditConfigNotFound( vreq, response); - return; - } + EditConfigurationVTwo configuration = getEditConfiguration(vreq); + if(configuration == null) + throw new Error("No edit configuration found."); //get the EditSubmission MultiValueEditSubmission submission = new MultiValueEditSubmission(vreq.getParameterMap(), configuration); - EditSubmissionUtils.putEditSubmissionInSession(request.getSession(), submission); + EditSubmissionUtils.putEditSubmissionInSession(vreq.getSession(), submission); - boolean hasErrors = doValidationErrors(vreq, configuration, submission, response); - if( hasErrors) - return; //processValidationErrors() already forwarded to redisplay the form with validation messages + ResponseValues errorResponse = doValidationErrors(vreq, configuration, submission); + if( errorResponse != null ) + return errorResponse; // get the models to work with in case the write model and query model are not the defaults - OntModel queryModel = configuration.getQueryModelSelector().getModel(request, getServletContext()); - OntModel writeModel = configuration.getWriteModelSelector().getModel(request,getServletContext()); + OntModel queryModel = configuration.getQueryModelSelector().getModel(vreq, getServletContext()); + OntModel writeModel = configuration.getWriteModelSelector().getModel(vreq,getServletContext()); AdditionsAndRetractions changes; if(configuration.isUpdate()){ @@ -96,33 +94,33 @@ public class ProcessRdfFormController extends FreemarkerHttpServlet{ ProcessRdfForm.applyChangesToWriteModel(changes, queryModel, writeModel, EditN3Utils.getEditorUri(vreq) ); - //Here we are trying to get the entity to return to URL, - //Maybe this should be in POST_EDIT_CLEANUP? + //Here we are trying to get the entity to return to URL, if( configuration.getEntityToReturnTo() != null ){ - request.setAttribute("entityToReturnTo", ProcessRdfForm.substitueForURL( configuration, submission)); + vreq.setAttribute("entityToReturnTo", ProcessRdfForm.substitueForURL( configuration, submission)); } - doPostEdit(vreq,response); + return doPostEdit(vreq); } + private EditConfigurationVTwo getEditConfiguration(HttpServletRequest request) { HttpSession session = request.getSession(); EditConfigurationVTwo editConfiguration = EditConfigurationVTwo.getConfigFromSession(session, request); return editConfiguration; } - private void doEditConfigNotFound(VitroRequest request, HttpServletResponse response) { - HashMapmap = new HashMap(); - map.put("message", "No editing configuration found, cannot process edit."); - ResponseValues values = new TemplateResponseValues("message.ftl", map); - try { - doResponse(request,response,values); - } catch (TemplateProcessingException e) { - log.error("Could not process template for doEditConfigNotFound()",e); - } - } + +// private ResponseValues doEditConfigNotFound(VitroRequest request) { +// HashMapmap = new HashMap(); +// map.put("message", "No editing configuration found, cannot process edit."); +// ResponseValues values = new TemplateResponseValues("message.ftl", map); +// try { +// doResponse(request,values); +// } catch (TemplateProcessingException e) { +// log.error("Could not process template for doEditConfigNotFound()",e); +// } +// } - private boolean doValidationErrors(VitroRequest vreq, - EditConfigurationVTwo editConfiguration, MultiValueEditSubmission submission, - HttpServletResponse response) throws ServletException, IOException { + private ResponseValues doValidationErrors(VitroRequest vreq, + EditConfigurationVTwo editConfiguration, MultiValueEditSubmission submission) { Map errors = submission.getValidationErrors(); @@ -130,17 +128,86 @@ public class ProcessRdfFormController extends FreemarkerHttpServlet{ String form = editConfiguration.getFormUrl(); vreq.setAttribute("formUrl", form); vreq.setAttribute("view", vreq.getParameter("view")); - - RequestDispatcher requestDispatcher = vreq.getRequestDispatcher(editConfiguration.getFormUrl()); - requestDispatcher.forward(vreq, response); - return true; + + return new RedirectResponseValues(editConfiguration.getFormUrl()); } - return false; + return null; //no errors } - private void doPostEdit(VitroRequest vreq, HttpServletResponse response) throws ServletException, IOException { - RequestDispatcher requestDispatcher = vreq.getRequestDispatcher(POST_EDIT_CLEANUP_JSP); - requestDispatcher.forward(vreq, response); + private RedirectResponseValues doPostEdit(VitroRequest vreq ) { + String resourceToRedirectTo = null; + String urlPattern = null; + String predicateLocalName = null; + String predicateAnchor = ""; + HttpSession session = vreq.getSession(false); + if( session != null ) { + EditConfigurationVTwo editConfig = EditConfigurationVTwo.getConfigFromSession(session,vreq); + //In order to support back button resubmissions, don't remove the editConfig from session. + //EditConfiguration.clearEditConfigurationInSession(session, editConfig); + + MultiValueEditSubmission editSub = EditSubmissionUtils.getEditSubmissionFromSession(session,editConfig); + EditSubmissionUtils.clearEditSubmissionInSession(session, editSub); + + if( editConfig != null ){ + String predicateUri = editConfig.getPredicateUri(); + if( predicateUri != null ){ + try{ + Property prop = ResourceFactory.createProperty(predicateUri); + predicateLocalName = prop.getLocalName(); + }catch (com.hp.hpl.jena.shared.InvalidPropertyURIException e){ + log.debug("could not convert predicateUri into a valid URI",e); + } + } + + if( editConfig.getEntityToReturnTo() != null && editConfig.getEntityToReturnTo().startsWith("?") ){ + resourceToRedirectTo = (String)vreq.getAttribute("entityToReturnTo"); + }else{ + resourceToRedirectTo = editConfig.getEntityToReturnTo(); + } + + //if there is no entity to return to it is likely a cancel + if( resourceToRedirectTo == null || resourceToRedirectTo.length() == 0 ) + resourceToRedirectTo = editConfig.getSubjectUri(); + } + + //set up base URL + String cancel = vreq.getParameter("cancel"); + String urlPatternToReturnTo = null; + String urlPatternToCancelTo = null; + if (editConfig != null) { + urlPatternToReturnTo = editConfig.getUrlPatternToReturnTo(); + urlPatternToCancelTo = vreq.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 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; + vreq.setAttribute("predicateAnchor", predicateAnchor); + } + } + } + + if( resourceToRedirectTo != null ){ + UrlBuilder.ParamMap paramMap= new UrlBuilder.ParamMap(); + paramMap.put("uri", resourceToRedirectTo); + paramMap.put("extra","true"); //for ie6 + return new RedirectResponseValues( UrlBuilder.getUrl(urlPattern,paramMap) + predicateAnchor ); + } else if ( !urlPattern.endsWith("individual") && !urlPattern.endsWith("entity") ){ + return new RedirectResponseValues( urlPattern ); + } + + + return new RedirectResponseValues( UrlBuilder.getUrl(Route.LOGIN) ); + } //Move to EditN3Utils but keep make new uris here 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 68fa19153..14b49131e 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 @@ -24,6 +24,6 @@ public class EditConfigurationTemplateModel extends BaseTemplateModel { } public String getSubmitToUrl(){ - return editConfig.getSubmitToUrl(); + return getUrl( editConfig.getSubmitToUrl() ); } } diff --git a/webapp/web/templates/freemarker/edit/forms/institutionalInternalClassForm.ftl b/webapp/web/templates/freemarker/edit/forms/institutionalInternalClassForm.ftl index dbacc8bae..5f8b52f89 100644 --- a/webapp/web/templates/freemarker/edit/forms/institutionalInternalClassForm.ftl +++ b/webapp/web/templates/freemarker/edit/forms/institutionalInternalClassForm.ftl @@ -6,14 +6,21 @@ Associated with generator: edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.InstitutionalInternalClassForm --> + +

Lorem ipsum dolor sit amet

-
-

consectetur adipisicing elit

- -
- -
-
+
+ +

consectetur adipisicing elit

+ + + + + +
+ +
+ +
-<@dumpAll/> \ No newline at end of file