Adding MultiValuedEditSubmission
This commit is contained in:
parent
5e45a7b63d
commit
8904a227d6
9 changed files with 468 additions and 4 deletions
|
@ -634,7 +634,8 @@ public class EditConfiguration {
|
||||||
public static void putConfigInSession(EditConfiguration ec, HttpSession sess){
|
public static void putConfigInSession(EditConfiguration ec, HttpSession sess){
|
||||||
if( sess == null )
|
if( sess == null )
|
||||||
throw new Error("EditConfig: could not put config in session because session was null");
|
throw new Error("EditConfig: could not put config in session because session was null");
|
||||||
|
if( ec.editKey == null )
|
||||||
|
throw new Error("EditConfig: could not put into session because editKey was null.");
|
||||||
|
|
||||||
Map<String,EditConfiguration> configs = (Map<String,EditConfiguration>)sess.getAttribute("EditConfigurations");
|
Map<String,EditConfiguration> configs = (Map<String,EditConfiguration>)sess.getAttribute("EditConfigurations");
|
||||||
if( configs == null ){
|
if( configs == null ){
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate the EditConfiguration for the Institutional Internal Class Form.
|
||||||
|
* see http://issues.library.cornell.edu/browse/NIHVIVO-2666
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class InstitutionalInternalClassForm implements EditConfigurationGenerator {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EditConfiguration getEditConfiguration(VitroRequest vreq, HttpSession session) {
|
||||||
|
EditConfiguration editConfig = new EditConfiguration();
|
||||||
|
editConfig.setTemplate("institutionalInternalClassForm.ftl");
|
||||||
|
|
||||||
|
return editConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -20,6 +20,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.EditConfigurationGenerator;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.EditConfigurationGenerator;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils;
|
import edu.cornell.mannlib.vitro.webapp.web.MiscWebUtils;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.edit.EditConfigurationTemplateModel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This servlet is intended to handle all requests to create a form for use
|
* This servlet is intended to handle all requests to create a form for use
|
||||||
|
@ -195,8 +196,11 @@ public class EditRequestDispatchController extends FreemarkerHttpServlet {
|
||||||
|
|
||||||
vreq.setAttribute("form", editConfGeneratorName);
|
vreq.setAttribute("form", editConfGeneratorName);
|
||||||
|
|
||||||
/**** make the edit configuration ***/
|
/**** make new or get an existing edit configuration ***/
|
||||||
|
|
||||||
EditConfiguration editConfig = makeEditConfiguration( editConfGeneratorName, vreq, session);
|
EditConfiguration editConfig = makeEditConfiguration( editConfGeneratorName, vreq, session);
|
||||||
|
editConfig.setEditKey(editKey);
|
||||||
|
EditConfiguration.putConfigInSession(editConfig, session);
|
||||||
|
|
||||||
//what template?
|
//what template?
|
||||||
String template = editConfig.getTemplate();
|
String template = editConfig.getTemplate();
|
||||||
|
@ -204,7 +208,7 @@ public class EditRequestDispatchController extends FreemarkerHttpServlet {
|
||||||
|
|
||||||
//what goes in the map for templates?
|
//what goes in the map for templates?
|
||||||
Map<String,Object> templateData = new HashMap<String,Object>();
|
Map<String,Object> templateData = new HashMap<String,Object>();
|
||||||
templateData.put("editConfiguration", editConfig);
|
templateData.put("editConfiguration", new EditConfigurationTemplateModel( editConfig, vreq));
|
||||||
templateData.put("formTitle", formTitle);
|
templateData.put("formTitle", formTitle);
|
||||||
|
|
||||||
return new TemplateResponseValues(template, templateData);
|
return new TemplateResponseValues(template, templateData);
|
||||||
|
|
|
@ -35,7 +35,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.N3Validator;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.N3Validator;
|
||||||
|
|
||||||
public class EditSubmission {
|
public class EditSubmission {
|
||||||
private String editKey;
|
String editKey;
|
||||||
|
|
||||||
private Map<String,Literal> literalsFromForm ;
|
private Map<String,Literal> literalsFromForm ;
|
||||||
private Map<String,String> urisFromForm ;
|
private Map<String,String> urisFromForm ;
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration;
|
||||||
|
|
||||||
|
public class EditSubmissionUtils {
|
||||||
|
|
||||||
|
protected static final String MULTI_VALUED_EDIT_SUBMISSION = "MultiValueEditSubmission";
|
||||||
|
|
||||||
|
/* *************** Static utility methods to get EditSub from Session *********** */
|
||||||
|
|
||||||
|
public static MultiValueEditSubmission getEditSubmissionFromSession(HttpSession sess, EditConfiguration editConfig){
|
||||||
|
Map<String,MultiValueEditSubmission> submissions =
|
||||||
|
(Map<String,MultiValueEditSubmission>)sess.getAttribute(MULTI_VALUED_EDIT_SUBMISSION);
|
||||||
|
if( submissions == null )
|
||||||
|
return null;
|
||||||
|
if( editConfig != null )
|
||||||
|
return submissions.get( editConfig.getEditKey() ); //this might be null
|
||||||
|
else
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void putEditSubmissionInSession(HttpSession sess, MultiValueEditSubmission editSub){
|
||||||
|
Map<String,MultiValueEditSubmission> submissions = (Map<String,MultiValueEditSubmission>)sess.getAttribute(MULTI_VALUED_EDIT_SUBMISSION);
|
||||||
|
if( submissions == null ){
|
||||||
|
submissions = new HashMap<String,MultiValueEditSubmission>();
|
||||||
|
sess.setAttribute(MULTI_VALUED_EDIT_SUBMISSION,submissions);
|
||||||
|
}
|
||||||
|
submissions.put(editSub.editKey, editSub);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void clearEditSubmissionInSession(HttpSession sess, MultiValueEditSubmission editSub){
|
||||||
|
if( sess == null) return;
|
||||||
|
if( editSub == null ) return;
|
||||||
|
Map<String,MultiValueEditSubmission> submissions = (Map<String,MultiValueEditSubmission>)sess.getAttribute("MULTI_VALUED_EDIT_SUBMISSION");
|
||||||
|
if( submissions == null ){
|
||||||
|
throw new Error("MultiValueEditSubmission: could not get a Map of MultiValueEditSubmission from the session.");
|
||||||
|
}
|
||||||
|
|
||||||
|
submissions.remove( editSub.editKey );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void clearAllEditSubmissionsInSession(HttpSession sess ){
|
||||||
|
if( sess == null) return;
|
||||||
|
sess.removeAttribute("MULTI_VALUED_EDIT_SUBMISSION");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<String, String[]> convertParams(
|
||||||
|
Map<String, List<String>> queryParameters) {
|
||||||
|
HashMap<String,String[]> out = new HashMap<String,String[]>();
|
||||||
|
for( String key : queryParameters.keySet()){
|
||||||
|
List item = queryParameters.get(key);
|
||||||
|
out.put(key, (String[])item.toArray(new String[item.size()]));
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.apache.commons.fileupload.FileItem;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.joda.time.DateTime;
|
||||||
|
import org.joda.time.IllegalFieldValueException;
|
||||||
|
import org.joda.time.format.DateTimeFormat;
|
||||||
|
import org.joda.time.format.DateTimeFormatter;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import com.hp.hpl.jena.rdf.model.Literal;
|
||||||
|
import com.hp.hpl.jena.rdf.model.Model;
|
||||||
|
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
||||||
|
import com.hp.hpl.jena.rdf.model.ResourceFactory;
|
||||||
|
import com.hp.hpl.jena.vocabulary.XSD;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.EditLiteral;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.elements.EditElement;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.Field;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.BasicValidation;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.N3Validator;
|
||||||
|
|
||||||
|
public class MultiValueEditSubmission {
|
||||||
|
|
||||||
|
String editKey;
|
||||||
|
|
||||||
|
private Map<String,Literal> literalsFromForm ;
|
||||||
|
private Map<String,String> urisFromForm ;
|
||||||
|
|
||||||
|
private Map<String,String> validationErrors;
|
||||||
|
private BasicValidation basicValidation;
|
||||||
|
|
||||||
|
private Map<String, List<FileItem>> filesFromForm;
|
||||||
|
|
||||||
|
private static Model literalCreationModel;
|
||||||
|
|
||||||
|
static{
|
||||||
|
literalCreationModel = ModelFactory.createDefaultModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MultiValueEditSubmission(Map<String,String[]> queryParameters, EditConfiguration editConfig){
|
||||||
|
if( editConfig == null )
|
||||||
|
throw new Error("EditSubmission needs an EditConfiguration");
|
||||||
|
this.editKey = editConfig.getEditKey();
|
||||||
|
if( this.editKey == null || this.editKey.trim().length() == 0)
|
||||||
|
throw new Error("EditSubmission needs an 'editKey' parameter from the EditConfiguration");
|
||||||
|
|
||||||
|
validationErrors = new HashMap<String,String>();
|
||||||
|
|
||||||
|
this.urisFromForm = new HashMap<String,String>();
|
||||||
|
for( String var: editConfig.getUrisOnform() ){
|
||||||
|
String[] valuesArray = queryParameters.get( var );
|
||||||
|
String uri = null;
|
||||||
|
List<String> values = (valuesArray != null) ? Arrays.asList(valuesArray) : null;
|
||||||
|
if( values != null && values.size() > 0){
|
||||||
|
if( values.size() == 1 ) {
|
||||||
|
uri = values.get(0);
|
||||||
|
} else if( values.size() > 1 ){
|
||||||
|
uri = values.get(0);
|
||||||
|
log.error("Cannot yet handle multiple URIs for a single field, using first URI on list");
|
||||||
|
}
|
||||||
|
urisFromForm.put(var,uri);
|
||||||
|
} else {
|
||||||
|
log.debug("No value found for query parameter " + var);
|
||||||
|
}
|
||||||
|
//check to see if a URI field from the form was blank but was intended to create a new URI
|
||||||
|
if( uri != null && uri.length() == 0 && editConfig.getNewResources().containsKey(var) ){
|
||||||
|
log.debug("A new resource URI will be made for var " + var + " since it was blank on the form.");
|
||||||
|
urisFromForm.remove(var);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.literalsFromForm =new HashMap<String,Literal>();
|
||||||
|
for(String var: editConfig.getLiteralsOnForm() ){
|
||||||
|
Field field = editConfig.getField(var);
|
||||||
|
if( field == null ) {
|
||||||
|
log.error("could not find field " + var + " in EditConfiguration" );
|
||||||
|
continue;
|
||||||
|
} else if( field.getEditElement() != null ){
|
||||||
|
log.debug("skipping field with edit element, it should not be in literals on form list");
|
||||||
|
}else{
|
||||||
|
String[] valuesArray = queryParameters.get(var);
|
||||||
|
List<String> valueList = (valuesArray != null) ? Arrays.asList(valuesArray) : null;
|
||||||
|
if( valueList != null && valueList.size() > 0 ) {
|
||||||
|
String value = valueList.get(0);
|
||||||
|
|
||||||
|
// remove any characters that are not valid in XML 1.0
|
||||||
|
// from user input so they don't cause problems
|
||||||
|
// with model serialization
|
||||||
|
value = EditN3Utils.stripInvalidXMLChars(value);
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(value)) {
|
||||||
|
literalsFromForm.put(var, createLiteral(
|
||||||
|
value,
|
||||||
|
field.getRangeDatatypeUri(),
|
||||||
|
field.getRangeLang()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(valueList != null && valueList.size() > 1 )
|
||||||
|
log.debug("For field " + var +", cannot yet handle multiple " +
|
||||||
|
"Literals for a single field, using first Literal on list");
|
||||||
|
|
||||||
|
}else{
|
||||||
|
log.debug("could not find value for parameter " + var );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( log.isDebugEnabled() ){
|
||||||
|
for( String key : literalsFromForm.keySet() ){
|
||||||
|
log.debug( key + " literal " + literalsFromForm.get(key) );
|
||||||
|
}
|
||||||
|
for( String key : urisFromForm.keySet() ){
|
||||||
|
log.debug( key + " uri " + urisFromForm.get(key) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
processEditElementFields(editConfig,queryParameters);
|
||||||
|
|
||||||
|
Map<String,String> errors = basicValidation.validateUris( urisFromForm );
|
||||||
|
|
||||||
|
if(editConfig.getValidators() != null ){
|
||||||
|
for( N3Validator validator : editConfig.getValidators()){
|
||||||
|
if( validator != null ){
|
||||||
|
throw new Error("need to implemente a validator interface that works with the new MultivalueEditSubmission.");
|
||||||
|
//errors = validator.validate(editConfig, this);
|
||||||
|
// if ( errors != null )
|
||||||
|
// validationErrors.putAll(errors);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if( log.isDebugEnabled() )
|
||||||
|
log.debug( this.toString() );
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void processEditElementFields(EditConfiguration editConfig, Map<String,String[]> queryParameters ){
|
||||||
|
for( String fieldName : editConfig.getFields().keySet()){
|
||||||
|
Field field = editConfig.getFields().get(fieldName);
|
||||||
|
if( field != null && field.getEditElement() != null ){
|
||||||
|
EditElement element = field.getEditElement();
|
||||||
|
log.debug("Checking EditElement for field " + fieldName + " type: " + element.getClass().getName());
|
||||||
|
|
||||||
|
//check for validation error messages
|
||||||
|
Map<String,String> errMsgs =
|
||||||
|
element.getValidationMessages(fieldName, editConfig, queryParameters);
|
||||||
|
validationErrors.putAll(errMsgs);
|
||||||
|
|
||||||
|
if( errMsgs == null || errMsgs.isEmpty()){
|
||||||
|
//only check for uris and literals when element has no validation errors
|
||||||
|
Map<String,String> urisFromElement = element.getURIs(fieldName, editConfig, queryParameters);
|
||||||
|
if( urisFromElement != null )
|
||||||
|
urisFromForm.putAll(urisFromElement);
|
||||||
|
Map<String,Literal> literalsFromElement = element.getLiterals(fieldName, editConfig, queryParameters);
|
||||||
|
if( literalsFromElement != null )
|
||||||
|
literalsFromForm.putAll(literalsFromElement);
|
||||||
|
}else{
|
||||||
|
log.debug("got validation errors for field " + fieldName + " not processing field for literals or URIs");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* maybe this could be static */
|
||||||
|
public Literal createLiteral(String value, String datatypeUri, String lang) {
|
||||||
|
if( datatypeUri != null ){
|
||||||
|
if( "http://www.w3.org/2001/XMLSchema:anyURI".equals(datatypeUri) ){
|
||||||
|
try {
|
||||||
|
return literalCreationModel.createTypedLiteral( URLEncoder.encode(value, "UTF8"), datatypeUri);
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
log.error(e, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return literalCreationModel.createTypedLiteral(value, datatypeUri);
|
||||||
|
}else if( lang != null && lang.length() > 0 )
|
||||||
|
return literalCreationModel.createLiteral(value, lang);
|
||||||
|
else
|
||||||
|
return ResourceFactory.createPlainLiteral(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final String DATE_TIME_URI = XSD.dateTime.getURI();
|
||||||
|
private static final String DATE_URI = XSD.date.getURI();
|
||||||
|
private static final String TIME_URI = XSD.time.getURI();
|
||||||
|
|
||||||
|
private static DateTimeFormatter dformater = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:00");
|
||||||
|
private static DateTimeFormatter dateFormater = DateTimeFormat.forPattern("yyyy-MM-dd");
|
||||||
|
|
||||||
|
public Map<String,String> getValidationErrors(){
|
||||||
|
return validationErrors;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Literal> getLiteralsFromForm() {
|
||||||
|
return literalsFromForm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getUrisFromForm() {
|
||||||
|
return urisFromForm;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* need to generate something like
|
||||||
|
* "09:10:11"^^<http://www.w3.org/2001/XMLSchema#time>
|
||||||
|
*/
|
||||||
|
public Literal getTime(Map<String,String[]> queryParameters,String fieldName) {
|
||||||
|
List<String> hour = Arrays.asList(queryParameters.get("hour" + fieldName));
|
||||||
|
List<String> minute = Arrays.asList(queryParameters.get("minute" + fieldName));
|
||||||
|
|
||||||
|
if ( hour == null || hour.size() == 0 ||
|
||||||
|
minute == null || minute.size() == 0 ) {
|
||||||
|
log.info("Could not find query parameter values for time field " + fieldName);
|
||||||
|
validationErrors.put(fieldName, "time must be supplied");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
int hourInt = -1;
|
||||||
|
int minuteInt = -1;
|
||||||
|
|
||||||
|
String hourParamStr = hour.get(0);
|
||||||
|
String minuteParamStr = minute.get(0);
|
||||||
|
|
||||||
|
// if all fields are blank, just return a null value
|
||||||
|
if (hourParamStr.length() == 0 && minuteParamStr.length() == 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
String errors = "";
|
||||||
|
try{
|
||||||
|
hourInt = Integer.parseInt(hour.get(0));
|
||||||
|
if (hourInt < 0 || hourInt > 23) {
|
||||||
|
throw new NumberFormatException();
|
||||||
|
}
|
||||||
|
} catch( NumberFormatException nfe ) {
|
||||||
|
errors += "Please enter a valid hour. ";
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
minuteInt = Integer.parseInt(minute.get(0));
|
||||||
|
if (minuteInt < 0 || minuteInt > 59) {
|
||||||
|
throw new NumberFormatException();
|
||||||
|
}
|
||||||
|
} catch( NumberFormatException nfe ) {
|
||||||
|
errors += "Please enter a valid minute. ";
|
||||||
|
}
|
||||||
|
if( errors.length() > 0 ){
|
||||||
|
validationErrors.put( fieldName, errors);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
String hourStr = (hourInt < 10) ? "0" + Integer.toString(hourInt) : Integer.toString(hourInt);
|
||||||
|
String minuteStr = (minuteInt < 10) ? "0" + Integer.toString(minuteInt) : Integer.toString(minuteInt);
|
||||||
|
String secondStr = "00";
|
||||||
|
|
||||||
|
return new EditLiteral(hourStr + ":" + minuteStr + ":" + secondStr, TIME_URI, null);
|
||||||
|
|
||||||
|
}
|
||||||
|
public void setLiteralsFromForm(Map<String, Literal> literalsFromForm) {
|
||||||
|
this.literalsFromForm = literalsFromForm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrisFromForm(Map<String, String> urisFromForm) {
|
||||||
|
this.urisFromForm = urisFromForm;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString(){
|
||||||
|
String[] names ={
|
||||||
|
"literalsFromForm",
|
||||||
|
"urisFromForm","validationErrors","basicValidation"
|
||||||
|
};
|
||||||
|
JSONObject obj = new JSONObject(this,names);
|
||||||
|
return obj.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Log log = LogFactory.getLog(EditSubmission.class);
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.edit;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.EditConfiguration;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.BaseTemplateModel;
|
||||||
|
|
||||||
|
public class EditConfigurationTemplateModel extends BaseTemplateModel {
|
||||||
|
EditConfiguration editConfig;
|
||||||
|
VitroRequest vreq;
|
||||||
|
|
||||||
|
public EditConfigurationTemplateModel( EditConfiguration editConfig, VitroRequest vreq){
|
||||||
|
this.editConfig = editConfig;
|
||||||
|
this.vreq = vreq;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEditKey(){
|
||||||
|
return editConfig.getEditKey();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUpdate(){
|
||||||
|
return editConfig.isUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSubmitToUrl(){
|
||||||
|
return editConfig.getSubmitToUrl();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.web.templatemodels.edit;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.hp.hpl.jena.rdf.model.Literal;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.processEdit.EditSubmission;
|
||||||
|
|
||||||
|
public class EditSubmissionTemplateModel {
|
||||||
|
private EditSubmission editSub;
|
||||||
|
|
||||||
|
public Map<String, Literal> getLiteralsFromForm() {
|
||||||
|
return editSub.getLiteralsFromForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getValidationErrors() {
|
||||||
|
return editSub.getValidationErrors();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getUrisFromForm() {
|
||||||
|
return editSub.getUrisFromForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
public EditSubmissionTemplateModel(EditSubmission editSub){
|
||||||
|
this.editSub = editSub;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
|
||||||
|
|
||||||
|
<#--
|
||||||
|
Institutional Internal Class Form
|
||||||
|
Associated with generator:
|
||||||
|
edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.InstitutionalInternalClassForm
|
||||||
|
-->
|
||||||
|
|
||||||
|
<h2>Lorem ipsum dolor sit amet</h2>
|
||||||
|
|
||||||
|
<form class="editForm" action = "xyz">
|
||||||
|
<p>consectetur adipisicing elit</p>
|
||||||
|
<input type="text" id="objectVar" size="80" />
|
||||||
|
<div style="margin-top: 0.2em">
|
||||||
|
<input type="submit" id="submit" value="submit" cancel="true"/>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<@dumpAll/>
|
Loading…
Add table
Add a link
Reference in a new issue