NIHVIVO-3352 improvements to validation in backend editing forms

This commit is contained in:
brianjlowe 2011-11-23 17:11:27 +00:00
parent 777d10ba04
commit 8822dc51ff
23 changed files with 298 additions and 236 deletions

View file

@ -16,7 +16,8 @@ import java.lang.reflect.InvocationTargetException;
import java.io.IOException; import java.io.IOException;
/** /**
* This controller exists only so we can request different edit form controllers without having to have entries in web.xml for each. * This controller exists only so we can request different edit form controllers
* without having to have entries in web.xml for each.
* @author bjl23 * @author bjl23
* *
*/ */
@ -24,54 +25,62 @@ public class EditFrontController extends VitroHttpServlet {
private static final Log log = LogFactory.getLog(EditFrontController.class.getName()); private static final Log log = LogFactory.getLog(EditFrontController.class.getName());
private static final String CONTROLLER_PKG = "edu.cornell.mannlib.vitro.webapp.controller.edit"; private static final String CONTROLLER_PKG = "edu.cornell.mannlib.vitro.webapp.controller.edit";
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { public void doPost(HttpServletRequest request,
try { HttpServletResponse response) throws IOException, ServletException {
String controllerName = request.getParameter("controller")+"RetryController";
String controllerName = request.getParameter("controller")+"RetryController"; if (controllerName==null || controllerName.length()==0) {
if (controllerName==null || controllerName.length()==0) { log.error("doPost() found no controller parameter");
log.error("doPost() found no controller parameter"); }
} Class controller = null;
Class controller = null; Object controllerInstance = null;
Object controllerInstance = null; try {
try { controller = Class.forName(CONTROLLER_PKG+"."+controllerName);
controller = Class.forName(CONTROLLER_PKG+"."+controllerName); try {
try { controllerInstance = controller.getConstructor(
controllerInstance = controller.getConstructor((Class[]) null).newInstance((Object[]) null); (Class[]) null).newInstance((Object[]) null);
((HttpServlet)controllerInstance).init(getServletConfig()); ((HttpServlet)controllerInstance).init(getServletConfig());
} catch (Exception e) { } catch (Exception e) {
log.error("doPost() could not instantiate specific controller "+controllerName); String errMsg = "doPost() could not instantiate specific " +
} "controller " + controllerName;
} catch (ClassNotFoundException e){ log.error(errMsg, e);
log.error("doPost() could not find controller "+CONTROLLER_PKG+"."+controllerName); throw new RuntimeException(errMsg, e);
} }
Class[] args = new Class[2]; } catch (ClassNotFoundException e){
args[0] = HttpServletRequest.class; String errMsg = "doPost() could not find controller " +
args[1] = HttpServletResponse.class; CONTROLLER_PKG + "." + controllerName;
try { log.error(errMsg);
Method meth = controller.getDeclaredMethod("doGet",args); throw new RuntimeException(errMsg);
Object[] methArgs = new Object[2]; }
methArgs[0] = request; Class[] args = new Class[2];
methArgs[1] = response; args[0] = HttpServletRequest.class;
try { args[1] = HttpServletResponse.class;
meth.invoke(controllerInstance,methArgs); try {
} catch (IllegalAccessException e) { Method meth = controller.getDeclaredMethod("doGet",args);
log.error("doPost() encountered IllegalAccessException on invoking "+controllerName); Object[] methArgs = new Object[2];
} catch (InvocationTargetException e) { methArgs[0] = request;
log.error("doPost() encountered InvocationTargetException on invoking "+controllerName); methArgs[1] = response;
log.debug(e.getTargetException().getMessage()); try {
e.printStackTrace(); meth.invoke(controllerInstance,methArgs);
} } catch (IllegalAccessException e) {
String errMsg = "doPost() encountered IllegalAccessException " +
} catch (NoSuchMethodException e){ "while invoking " + controllerName;
log.error("could not find doPost() method in "+controllerName); log.error(errMsg, e);
} throw new RuntimeException(errMsg, e);
} catch (InvocationTargetException e) {
} catch (Exception e) { String errMsg = "doPost() encountered InvocationTargetException " +
e.printStackTrace(); "while invoking " + controllerName;
} log.error(errMsg, e);
throw new RuntimeException(errMsg, e);
}
} catch (NoSuchMethodException e){
log.error("could not find doPost() method in " + controllerName);
throw new RuntimeException("could not find doPost() method in " +
controllerName);
}
} }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
doPost(request,response); doPost(request,response);
} }

View file

@ -108,6 +108,7 @@ public class OperationController extends BaseEditController {
//if validation failed, go back to the form controller //if validation failed, go back to the form controller
if (!valid){ if (!valid){
epo.setAttribute("globalErrorMsg", "Please correct errors highlighted below.");
retry(request, response, epo); retry(request, response, epo);
return; return;
} }

View file

@ -349,73 +349,6 @@ public class FormUtils {
} }
} }
return null; return null;
}
/**
* Takes a bean and uses all of its setter methods to set null values
* @return
*/
public static Object nullBean(Object bean){
Class cls = bean.getClass();
Method[] meths = cls.getMethods();
for (int i=0; i<meths.length; ++i){
Method meth = meths[i];
if (meth.getName().indexOf("set")==0){
try{
meth.invoke(bean,(Object[]) null);
} catch (Exception e) {
log.error ("unable to use " + meth.getName() +
" to set null.");
}
}
}
return bean;
}
/**
* Takes any nonnull values from an overlay bean and sets them on a base bean
* @param base
* @param overlay
* @return overlaid bean
*/
public static Object overlayBean (Object base, Object overlay) throws IllegalArgumentException {
Class baseCls = base.getClass();
Class overlayCls = overlay.getClass();
if (overlayCls != baseCls)
throw new IllegalArgumentException("overlayBean requires two objects of the same type");
Method[] meths = overlayCls.getMethods();
for (int i=0; i<meths.length; ++i){
Method meth = meths[i];
String methName = meth.getName();
if (methName.indexOf("get")==0){
try {
Object overlayObj = meth.invoke(overlay,(Object[]) null);
if (overlayObj != null) {
String setterName = "set"+methName.substring(3,methName.length());
Class setterArgClass = null;
if (overlayObj instanceof Integer)
setterArgClass = int.class;
else
setterArgClass = overlayObj.getClass();
Class[] setterArgClasses = new Class[1];
setterArgClasses[0] = setterArgClass;
try {
Method setterMeth = baseCls.getMethod(setterName,setterArgClasses);
Object[] setterObjs = new Object[1];
setterObjs[0] = overlayObj;
setterMeth.invoke(base,setterObjs);
} catch (NoSuchMethodException e) {
log.error("could not find setter method "+setterName);
}
}
} catch (Exception e) {
log.error("could not invoke getter method "+methName);
}
}
}
return base;
} }
/** /**

View file

@ -46,7 +46,9 @@ public class IntValidator implements Validator {
return vo; return vo;
} }
public IntValidator(){}
public IntValidator (int minVal, int maxVal){ public IntValidator (int minVal, int maxVal){
this.minVal = minVal; this.minVal = minVal;
this.maxVal = maxVal; this.maxVal = maxVal;

View file

@ -3,6 +3,8 @@
package edu.cornell.mannlib.vitro.webapp.controller.edit; package edu.cornell.mannlib.vitro.webapp.controller.edit;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher; import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -17,6 +19,8 @@ import edu.cornell.mannlib.vedit.controller.BaseEditController;
import edu.cornell.mannlib.vedit.forwarder.PageForwarder; import edu.cornell.mannlib.vedit.forwarder.PageForwarder;
import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder;
import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.util.FormUtils;
import edu.cornell.mannlib.vedit.validator.Validator;
import edu.cornell.mannlib.vedit.validator.impl.RequiredFieldValidator;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages;
import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup;
@ -75,7 +79,12 @@ public class ClassgroupRetryController extends BaseEditController {
epo.setOriginalBean(vclassGroupForEditing); epo.setOriginalBean(vclassGroupForEditing);
} else { } else {
vclassGroupForEditing = (VClassGroup) epo.getNewBean(); vclassGroupForEditing = (VClassGroup) epo.getNewBean();
} }
//validators
List<Validator> validatorList = new ArrayList<Validator>();
validatorList.add(new RequiredFieldValidator());
epo.getValidatorMap().put("PublicName", validatorList);
//make a postinsert pageforwarder that will send us to a new class's fetch screen //make a postinsert pageforwarder that will send us to a new class's fetch screen
epo.setPostInsertPageForwarder(new VclassGroupInsertPageForwarder()); epo.setPostInsertPageForwarder(new VclassGroupInsertPageForwarder());

View file

@ -143,7 +143,7 @@ public class DatapropRetryController extends BaseEditController {
if (objectForEditing.getDomainClassURI() != null) { if (objectForEditing.getDomainClassURI() != null) {
VClass domain = vreq.getWebappDaoFactory().getVClassDao() VClass domain = vreq.getWebappDaoFactory().getVClassDao()
.getVClassByURI(objectForEditing.getDomainClassURI()); .getVClassByURI(objectForEditing.getDomainClassURI());
if (domain.isAnonymous()) { if (domain != null && domain.isAnonymous()) {
domainOptionList.add(0, new Option( domainOptionList.add(0, new Option(
domain.getURI(), domain.getURI(),
domain.getName(), domain.getName(),

View file

@ -4,6 +4,8 @@ package edu.cornell.mannlib.vitro.webapp.controller.edit;
import java.io.IOException; import java.io.IOException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher; import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -18,6 +20,8 @@ import edu.cornell.mannlib.vedit.controller.BaseEditController;
import edu.cornell.mannlib.vedit.forwarder.PageForwarder; import edu.cornell.mannlib.vedit.forwarder.PageForwarder;
import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder;
import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.util.FormUtils;
import edu.cornell.mannlib.vedit.validator.Validator;
import edu.cornell.mannlib.vedit.validator.impl.RequiredFieldValidator;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.EditOntology;
import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.beans.Ontology;
@ -67,6 +71,11 @@ public class OntologyRetryController extends BaseEditController {
action = "update"; action = "update";
log.error("using newBean"); log.error("using newBean");
} }
//validators
List<Validator> validatorList = new ArrayList<Validator>();
validatorList.add(new RequiredFieldValidator());
epo.getValidatorMap().put("URI", validatorList);
//make a simple mask for the class's id //make a simple mask for the class's id
Object[] simpleMaskPair = new Object[2]; Object[] simpleMaskPair = new Object[2];

View file

@ -3,6 +3,8 @@
package edu.cornell.mannlib.vitro.webapp.controller.edit; package edu.cornell.mannlib.vitro.webapp.controller.edit;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher; import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -17,6 +19,8 @@ import edu.cornell.mannlib.vedit.controller.BaseEditController;
import edu.cornell.mannlib.vedit.forwarder.PageForwarder; import edu.cornell.mannlib.vedit.forwarder.PageForwarder;
import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder;
import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.util.FormUtils;
import edu.cornell.mannlib.vedit.validator.Validator;
import edu.cornell.mannlib.vedit.validator.impl.RequiredFieldValidator;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseMiscellaneousAdminPages;
import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup; import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup;
@ -75,6 +79,11 @@ public class PropertyGroupRetryController extends BaseEditController {
} else { } else {
propertyGroupForEditing = (PropertyGroup) epo.getNewBean(); propertyGroupForEditing = (PropertyGroup) epo.getNewBean();
} }
//validators
List<Validator> validatorList = new ArrayList<Validator>();
validatorList.add(new RequiredFieldValidator());
epo.getValidatorMap().put("Name", validatorList);
//make a postinsert pageforwarder that will send us to a new class's fetch screen //make a postinsert pageforwarder that will send us to a new class's fetch screen
epo.setPostInsertPageForwarder(new PropertyGroupInsertPageForwarder()); epo.setPostInsertPageForwarder(new PropertyGroupInsertPageForwarder());

View file

@ -27,6 +27,8 @@ import edu.cornell.mannlib.vedit.controller.BaseEditController;
import edu.cornell.mannlib.vedit.forwarder.PageForwarder; import edu.cornell.mannlib.vedit.forwarder.PageForwarder;
import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder; import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder;
import edu.cornell.mannlib.vedit.util.FormUtils; import edu.cornell.mannlib.vedit.util.FormUtils;
import edu.cornell.mannlib.vedit.validator.Validator;
import edu.cornell.mannlib.vedit.validator.impl.IntValidator;
import edu.cornell.mannlib.vedit.validator.impl.XMLNameValidator; import edu.cornell.mannlib.vedit.validator.impl.XMLNameValidator;
import edu.cornell.mannlib.vitro.webapp.auth.policy.bean.PropertyRestrictionListener; import edu.cornell.mannlib.vitro.webapp.auth.policy.bean.PropertyRestrictionListener;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions; import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.Actions;
@ -114,7 +116,10 @@ public class PropertyRetryController extends BaseEditController {
List localNameInverseValidatorList = new ArrayList(); List localNameInverseValidatorList = new ArrayList();
localNameInverseValidatorList.add(new XMLNameValidator(true)); localNameInverseValidatorList.add(new XMLNameValidator(true));
epo.getValidatorMap().put("LocalName", localNameValidatorList); epo.getValidatorMap().put("LocalName", localNameValidatorList);
epo.getValidatorMap().put("LocalNameInverse", localNameInverseValidatorList); epo.getValidatorMap().put("LocalNameInverse", localNameInverseValidatorList);
List<Validator> displayRankValidatorList = new ArrayList<Validator>();
displayRankValidatorList.add(new IntValidator());
epo.getValidatorMap().put("DisplayRank", displayRankValidatorList);
//set up any listeners //set up any listeners
List changeListenerList = new ArrayList(); List changeListenerList = new ArrayList();

View file

@ -215,7 +215,7 @@ public class VclassEditController extends BaseEditController {
request.setAttribute("instantiable", instantiable); request.setAttribute("instantiable", instantiable);
request.setAttribute("bodyJsp","/templates/edit/specific/classes_edit.jsp"); request.setAttribute("bodyJsp","/templates/edit/specific/classes_edit.jsp");
request.setAttribute("title","Class Control Panel"); request.setAttribute("title","Class Control Panel");
request.setAttribute("css", "<link rel=\"stylesheet\" type=\"text/css\" href=\""+request.getAppBean().getThemeDir()+"css/edit.css\"/>"); //request.setAttribute("css", "<link rel=\"stylesheet\" type=\"text/css\" href=\""+request.getAppBean().getThemeDir()+"css/edit.css\"/>");
try { try {
rd.forward(request, response); rd.forward(request, response);

View file

@ -10,6 +10,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import javax.servlet.RequestDispatcher; import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -176,9 +177,8 @@ public class VclassRetryController extends BaseEditController {
try { try {
rd.forward(request, response); rd.forward(request, response);
} catch (Exception e) { } catch (Exception e) {
log.error("VclassRetryController could not forward to view."); log.error("VclassRetryController could not forward to view.", e);
log.error(e.getMessage()); throw new RuntimeException(e);
log.error(e.getStackTrace());
} }
} }

View file

@ -43,7 +43,7 @@ public class AllClassGroupsListingController extends BaseEditController {
results.add("XX"); results.add("XX");
results.add("Group"); results.add("Group");
results.add("display rank"); results.add("display rank");
results.add("XX"); results.add("");
results.add("XX"); results.add("XX");
if (groups != null) { if (groups != null) {

View file

@ -35,7 +35,9 @@
</div><!--entryFormHead--> </div><!--entryFormHead-->
</th></tr> </th></tr>
<tr><td><span class="warning">${globalErrorMsg}</span></td></tr> <c:if test="${!empty globalErrorMsg}">
<tr><td><span class="notice">${globalErrorMsg}</span></td></tr>
</c:if>
<jsp:include page="${formJsp}"/> <jsp:include page="${formJsp}"/>

View file

@ -13,7 +13,10 @@
<c:set var="appNameLabel" value="Site name"/> <c:set var="appNameLabel" value="Site name"/>
<label for="site-name">${appNameLabel}<span class="note"> (max 50 characters)</span></label> <label for="site-name">${appNameLabel}<span class="note"> (max 50 characters)</span></label>
<input type="text" name="ApplicationName" value="<form:value name="ApplicationName"/>" ${longField} maxlength="50" /> <input type="text" name="ApplicationName" value="<form:value name="ApplicationName"/>" ${longField} maxlength="50" />
<font color="red"><form:error name="ApplicationName"/></font> <c:set var="ApplicationNameError"><form:error name="ApplicationName"/></c:set>
<c:if test="${!empty ApplicationNameError}">
<span class="notice"><c:out value="${ApplicationNameError}"/></span>
</c:if>
<!-- With introduction of new logo that includes tagline as part of the image, hiding this field for now to reduce user confusion --> <!-- With introduction of new logo that includes tagline as part of the image, hiding this field for now to reduce user confusion -->
<!-- <tr class="editformcell"> <!-- <tr class="editformcell">
@ -26,23 +29,30 @@
<label>Contact email address <span class="note">contact form submissions will be sent to this address</span></label> <label>Contact email address <span class="note">contact form submissions will be sent to this address</span></label>
<input type="text" name="ContactMail" value="<form:value name="ContactMail"/>" ${longField} maxlength="255" size="30" /> <input type="text" name="ContactMail" value="<form:value name="ContactMail"/>" ${longField} maxlength="255" size="30" />
<font color="red"><form:error name="ContactMail"/></font> <c:set var="ContactMailError"><form:error name="ContactMail"/></c:set>
<c:if test="${!empty ContactMailError}">
<span class="notice"><c:out value="${ContactMailError}"/></span>
</c:if>
<br /> <br />
<label class="display-inline">Theme</label> <label class="display-inline">Theme</label>
<select id="ThemeDir" name="ThemeDir"> <select id="ThemeDir" name="ThemeDir">
<form:option name="ThemeDir" /> <form:option name="ThemeDir" />
</select> </select>
<font color="red"><form:error name="ThemeDir"/></font>
<label>Copyright text<span class="note"> used in footer (e.g., name of your institution)</span></label> <label>Copyright text<span class="note"> used in footer (e.g., name of your institution)</span></label>
<input type="text" name="CopyrightAnchor" value="<form:value name="CopyrightAnchor"/>" ${longField} maxlength="120" size="40" /> <input type="text" name="CopyrightAnchor" value="<form:value name="CopyrightAnchor"/>" ${longField} maxlength="120" size="40" />
<font color="red"><form:error name="CopyrightAnchor"/></font> <c:set var="CopyrightAnchorError"><form:error name="CopyrightAnchor"/></c:set>
<c:if test="${!empty CopyrightAnchorError}">
<span class="notice"><c:out value="${CopyrightAnchorError}"/></span>
</c:if>
<label>Copyright URL<span class="note"> copyright text links to this URL</span></label> <label>Copyright URL<span class="note"> copyright text links to this URL</span></label>
<input type="text" name="CopyrightURL" value="<form:value name="CopyrightURL"/>" ${longField} maxlength="120" size="30" /> <input type="text" name="CopyrightURL" value="<form:value name="CopyrightURL"/>" ${longField} maxlength="120" size="30" />
<font color="red"><form:error name="CopyrightURL"/></font> <c:set var="CopyrightURLError"><form:error name="CopyrightURL"/></c:set>
<c:if test="${!empty CopyrightURLError}">
<span class="notice"><c:out value="${CopyrightURLError}"/></span>
</c:if>
<!-- <!--
<tr class="editformcell"> <tr class="editformcell">

View file

@ -1,17 +1,25 @@
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%> <%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<%@ taglib prefix="form" uri="http://vitro.mannlib.cornell.edu/edit/tags" %> <%@ taglib prefix="form" uri="http://vitro.mannlib.cornell.edu/edit/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="3"> <td valign="top">
<b>Class group name</b> (max 120 characters)<br /> <b>Class group name*</b> (max 120 characters)<br />
<input type="text" name="PublicName" value="<form:value name="PublicName"/>" size="50" maxlength="120" /> <input type="text" name="PublicName" value="<form:value name="PublicName"/>" size="50" maxlength="120" />
<font size="2" color="red"><form:error name="Name"/></font> <c:set var="PublicNameError"><form:error name="PublicName"/></c:set>
<c:if test="${!empty PublicNameError}">
<span class="notice"><c:out value="${PublicNameError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="3"> <td valign="top">
<b>Display rank </b> (lower number displays first)<br /> <b>Display rank </b> (lower number displays first)<br />
<input type="text" name="DisplayRank" value="<form:value name="DisplayRank"/>" size="3" maxlength="11" /> <input type="text" name="DisplayRank" value="<form:value name="DisplayRank"/>" size="3" maxlength="11" />
<font size="2" color="red"><form:error name="DisplayRank"/></font> <c:set var="DisplayRankError"><form:error name="DisplayRank"/></c:set>
<c:if test="${!empty DisplayRankError}">
<span class="notice"><c:out value="${DisplayRankError}"/></span>
</c:if>
</td> </td>
</tr> </tr>

View file

@ -7,7 +7,10 @@
<td valign="top" colspan="1"> <td valign="top" colspan="1">
<b>Public Name</b><br/><i>as will display on public pages</i><br/> <b>Public Name</b><br/><i>as will display on public pages</i><br/>
<input name="PublicName" value="<form:value name="PublicName"/>"/> <input name="PublicName" value="<form:value name="PublicName"/>"/>
<div class="warning"><form:error name="PublicName"/></div> <c:set var="PublicNameError"><form:error name="PublicName"/></c:set>
<c:if test="${!empty PublicNameError}">
<span class="notice"><c:out value="${PublicNameError}"/></span>
</c:if>
</td> </td>
<td valign="top" colspan="1"> <td valign="top" colspan="1">
<b>Property Group</b><br/> <b>Property Group</b><br/>
@ -15,17 +18,14 @@
<select name="GroupURI"> <select name="GroupURI">
<form:option name="GroupURI"/> <form:option name="GroupURI"/>
</select> </select>
<div class="warning"><form:error name="GroupURI"/></div>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<b>Display Level</b><br /><i>(specify least restrictive level allowed)</i><br/> <b>Display Level</b><br /><i>(specify least restrictive level allowed)</i><br/>
<select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select> <select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select>
<font size="2" color="red"><form:error name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></font>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<b>Update Level</b><br /><i>(specify least restrictive level allowed)</i><br /> <b>Update Level</b><br /><i>(specify least restrictive level allowed)</i><br />
<select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select> <select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select>
<font size="2" color="red"><form:error name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></font>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
@ -46,10 +46,9 @@
</select> </select>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<div class="warning"><form:error name="Namespace"/></div>
</td> </td>
<td valign="top" colspan="2"> <td valign="top" colspan="2">
<b>Local Name</b> <b>Local Name*</b>
<c:choose> <c:choose>
<c:when test="${_action eq 'update'}"> <c:when test="${_action eq 'update'}">
<br/><i>Change only via the "change URI" button on the previous screen</i><br/> <br/><i>Change only via the "change URI" button on the previous screen</i><br/>
@ -60,7 +59,10 @@
<input name="LocalName" value="<form:value name="LocalName"/>"/> <input name="LocalName" value="<form:value name="LocalName"/>"/>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<div class="warning"><form:error name="LocalName"/></div> <c:set var="LocalNameError"><form:error name="LocalName"/></c:set>
<c:if test="${!empty LocalNameError}">
<span class="notice"><c:out value="${LocalNameError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
@ -69,8 +71,7 @@
<b>Domain Class</b><br/> <b>Domain Class</b><br/>
<select name="DomainClassURI"> <select name="DomainClassURI">
<form:option name="DomainClassURI"/> <form:option name="DomainClassURI"/>
</select> </select>
<span class="warning"><form:error name="DomainClassURI"/></span>
</td> </td>
</tr> </tr>
@ -80,7 +81,6 @@
<select name="RangeDatatypeURI"> <select name="RangeDatatypeURI">
<form:option name="RangeDatatypeURI"/> <form:option name="RangeDatatypeURI"/>
</select> </select>
<span class="warning"><form:error name="RangeDatatypeURI"/></span>
</td> </td>
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="2">
<c:set var="functionalLabel" value="<b>Functional property</b> <i>(has at most one value for each individual)</i>" /> <c:set var="functionalLabel" value="<b>Functional property</b> <i>(has at most one value for each individual)</i>" />
@ -99,7 +99,10 @@
<td valign="top" colspan="4"> <td valign="top" colspan="4">
<b>Example</b><br/> <b>Example</b><br/>
<textarea name="Example"><form:value name="Example"/></textarea> <textarea name="Example"><form:value name="Example"/></textarea>
<span class="warning"><form:error name="Example"/></span> <c:set var="ExampleError"><form:error name="Example"/></c:set>
<c:if test="${!empty ExampleError}">
<span class="notice"><c:out value="${ExampleError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
@ -107,7 +110,10 @@
<td valign="top" colspan="4"> <td valign="top" colspan="4">
<b>Description</b> for ontology editors<br/> <b>Description</b> for ontology editors<br/>
<textarea name="Description"><form:value name="Description"/></textarea> <textarea name="Description"><form:value name="Description"/></textarea>
<span class="warning"><form:error name="Description"/></span> <c:set var="DescriptionError"><form:error name="Description"/></c:set>
<c:if test="${!empty DescriptionError}">
<span class="notice"><c:out value="${DescriptionError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
@ -115,7 +121,10 @@
<td valign="top" colspan="4"> <td valign="top" colspan="4">
<b>Public Description</b> for front-end users, as it will appear on editing forms<br/> <b>Public Description</b> for front-end users, as it will appear on editing forms<br/>
<textarea name="PublicDescription"><form:value name="PublicDescription"/></textarea> <textarea name="PublicDescription"><form:value name="PublicDescription"/></textarea>
<span class="warning"><form:error name="PublicDescription"/></span> <c:set var="PublicDescriptionError"><form:error name="PublicDescription"/></c:set>
<c:if test="${!empty PublicDescriptionError}">
<span class="notice"><c:out value="${PublicDescriptionError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
@ -123,17 +132,26 @@
<td valign="top" colspan="1"> <td valign="top" colspan="1">
<b>Display Tier</b><br/> <b>Display Tier</b><br/>
<input name="DisplayTier" value="<form:value name="DisplayTier"/>"/> <input name="DisplayTier" value="<form:value name="DisplayTier"/>"/>
<span class="warning"><form:error name="DisplayTier"/></span> <c:set var="DisplayTierError"><form:error name="DisplayTier"/></c:set>
<c:if test="${!empty DisplayTierError}">
<span class="notice"><c:out value="${DisplayTierError}"/></span>
</c:if>
</td> </td>
<td valign="top" colspan="1"> <td valign="top" colspan="1">
<b>Display Limit</b><br/> <b>Display Limit</b><br/>
<input name="DisplayLimit" value="<form:value name="DisplayLimit"/>"/> <input name="DisplayLimit" value="<form:value name="DisplayLimit"/>"/>
<span class="warning"><form:error name="DisplayLimit"/></span> <c:set var="DisplayLimitError"><form:error name="DisplayLimit"/></c:set>
<c:if test="${!empty DisplayLimitError}">
<span class="notice"><c:out value="${DisplayLimitError}"/></span>
</c:if>
</td> </td>
<td valign="top" colspan="1"> <td valign="top" colspan="1">
<em>Optional: <b>custom entry form</b></em><br /> <em>Optional: <b>custom entry form</b></em><br />
<input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" /> <input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" />
<span class="warning"><form:error name="CustomEntryForm"/></span> <c:set var="CustomEntryFormError"><form:error name="CustomEntryForm"/></c:set>
<c:if test="${!empty CustomEntryFormError}">
<span class="notice"><c:out value="${CustomEntryFormError}"/></span>
</c:if>
</td> </td>
</td> </td>
</tr> </tr>

View file

@ -6,14 +6,16 @@
<td valign="bottom" id="entityNameTd" colspan="1"> <td valign="bottom" id="entityNameTd" colspan="1">
<b>Individual Name</b><br/> <b>Individual Name</b><br/>
<input type="text" name="field1Value" value="<form:value name="Name"/>" size="80" maxlength="255" /> <input type="text" name="field1Value" value="<form:value name="Name"/>" size="80" maxlength="255" />
<font size="2" color="red"><form:error name="Name"/></font> <c:set var="NameError"><form:error name="Name"/></c:set>
<c:if test="${!empty NameError}">
<span class="notice"><c:out value="${NameError}"/></span>
</c:if>
</td> </td>
<td valign="top" id="displayStatusTd" colspan="1"> <td valign="top" id="displayStatusTd" colspan="1">
<b>Display Status</b><br/> <b>Display Status</b><br/>
<select name="StatusId" > <select name="StatusId" >
<form:option name="StatusId"/> <form:option name="StatusId"/>
</select> </select>
<font size="2" color="red"><form:error name="StatusId"/></font>
</td> </td>
</tr> </tr>
<tr class='editformcell' id='GenericTypeTr'> <tr class='editformcell' id='GenericTypeTr'>
@ -23,7 +25,6 @@
<% // need to implement form:optgroup %> <% // need to implement form:optgroup %>
<form:option name="VClassId"/> <form:option name="VClassId"/>
</select> </select>
<br><font size="2" color="red"><form:error name="VClassId"/></font>
</td> </td>
</tr> </tr>

View file

@ -7,7 +7,6 @@
<select name="IndividualURI" > <select name="IndividualURI" >
<form:option name="IndividualURI"/> <form:option name="IndividualURI"/>
</select> </select>
<font size="2" color="red"><form:error name="IndividualURI"/></font>
</td> </td>
</tr> </tr>
<tr class='editformcell'> <tr class='editformcell'>
@ -16,13 +15,15 @@
<select name="DatapropURI" > <select name="DatapropURI" >
<form:option name="DatapropURI"/> <form:option name="DatapropURI"/>
</select> </select>
<br><font size="2" color="red"><form:error name="DatapropURI"/></font>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="3"> <td valign="bottom" colspan="3">
<b>Value</b><br/> <b>Value</b><br/>
<input type="text" name="Data" value="<form:value name="Data"/>" size="75%" maxlength="255" /> <input type="text" name="Data" value="<form:value name="Data"/>" size="75%" maxlength="255" />
<font size="2" color="red"><form:error name="Value"/></font> <c:set var="DataError"><form:error name="Data"/></c:set>
<c:if test="${!empty DataError}">
<span class="notice"><c:out value="${DataError}"/></span>
</c:if>
</td> </td>
</tr> </tr>

View file

@ -1,27 +0,0 @@
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<%@ taglib prefix="form" uri="http://vitro.mannlib.cornell.edu/edit/tags" %>
<tr class="editformcell">
<td valign="bottom" colspan="3">
<b>Name (for convenience only)</b><br/>
<input type="text" name="Name" value="<form:value name="Name"/>" size="40%" maxlength="120" />
<font size="2" color="red"><form:error name="Name"/></font>
</td>
</tr>
<tr class="editformcell">
<td valign="bottom" colspan="3">
<b>Namespace URI</b><br/>
<input name="NamespaceURI" value="<form:value name="NamespaceURI"/>" size="80%" maxlength="255" />
<font size="2" color="red"><form:error name="NamespaceURI"/></font>
</td>
</tr>
<tr class="editformcell">
<td valign="bottom" colspan="3">
<b>Optional Namespace Prefix (for exports)</b><br/>
<input name="Prefix" value="<form:value name="Prefix"/>" size="15%" maxlength="25" />
<font size="2" color="red"><form:error name="Prefix"/></font>
</td>
</tr>

View file

@ -7,12 +7,11 @@
<td valign="bottom" colspan="3"> <td valign="bottom" colspan="3">
<b>Ontology name</b><br/> <b>Ontology name</b><br/>
<input type="text" name="Name" value="<form:value name="Name"/>" size="40" maxlength="120" /> <input type="text" name="Name" value="<form:value name="Name"/>" size="40" maxlength="120" />
<font size="2" color="red"><form:error name="Name"/></font>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="3"> <td valign="bottom" colspan="3">
<b>Namespace URI</b><br/> <b>Namespace URI*</b><br/>
<c:choose> <c:choose>
<c:when test="${_action eq 'update'}"> <c:when test="${_action eq 'update'}">
<i>Change via the "change URI" button on previous screen</i><br/> <i>Change via the "change URI" button on previous screen</i><br/>
@ -21,14 +20,21 @@
<c:otherwise> <c:otherwise>
<input type="text" name="URI" value="<form:value name="URI"/>" size="50" maxlength="240" /> <input type="text" name="URI" value="<form:value name="URI"/>" size="50" maxlength="240" />
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<c:set var="URIError"><form:error name="URI"/></c:set>
<c:if test="${!empty URIError}">
<span class="notice"><c:out value="${URIError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="3"> <td valign="bottom" colspan="3">
<b>Namespace prefix</b><br/> <b>Namespace prefix</b><br/>
<input type="text" name="Prefix" value="<form:value name="Prefix"/>" size="8" maxlength="25" /> <input type="text" name="Prefix" value="<form:value name="Prefix"/>" size="8" maxlength="25" />
<font size="2" color="red"><form:error name="Prefix"/></font> <c:set var="PrefixError"><form:error name="Prefix"/></c:set>
<c:if test="${!empty PrefixError}">
<span class="notice"><c:out value="${PrefixError}"/></span>
</c:if>
</td> </td>
</tr> </tr>

View file

@ -1,24 +1,27 @@
<%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%> <%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%>
<%@ taglib prefix="form" uri="http://vitro.mannlib.cornell.edu/edit/tags" %> <%@ taglib prefix="form" uri="http://vitro.mannlib.cornell.edu/edit/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="3"> <td valign="top" colspan="3">
<b>Property group name</b> (max 120 characters)<br /> <b>Property group name</b> (max 120 characters)<br />
<input type="text" name="Name" value="<form:value name="Name"/>" size="50" maxlength="120" /> <input type="text" name="Name" value="<form:value name="Name"/>" size="50" maxlength="120" />
<font size="2" color="red"><form:error name="Name"/></font> <c:set var="NameError"><form:error name="Name"/></c:set>
<c:if test="${!empty NameError}">
<span class="notice"><c:out value="${NameError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="3"> <td valign="top" colspan="3">
<b>Public description</b> (short explanation for dashboard)<br /> <b>Public description</b> (short explanation for dashboard)<br />
<input type="text" name="PublicDescription" value="<form:value name="PublicDescription"/>" size="80" maxlength="255" /> <input type="text" name="PublicDescription" value="<form:value name="PublicDescription"/>" size="80" maxlength="255" />
<font size="2" color="red"><form:error name="PublicDescription"/></font>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="3"> <td valign="top" colspan="3">
<b>Display rank </b> (lower number displays higher)<br /> <b>Display rank </b> (lower number displays higher)<br />
<input type="text" name="DisplayRank" value="<form:value name="DisplayRank"/>" size="3" maxlength="11" /> <input type="text" name="DisplayRank" value="<form:value name="DisplayRank"/>" size="3" maxlength="11" />
<font size="2" color="red"><form:error name="DisplayRank"/></font>
</td> </td>
</tr> </tr>

View file

@ -8,22 +8,19 @@
<td valign="top" colspan="2"> <td valign="top" colspan="2">
<b>Parent property</b><br/><br/> <b>Parent property</b><br/><br/>
<select name="ParentURI"><form:option name="ParentURI"/></select> <select name="ParentURI"><form:option name="ParentURI"/></select>
<font size="2" color="red"><form:error name="ParentURI"/></font>
</td> </td>
<td valign="top" colspan="1"> <td valign="top" colspan="1">
<b>Property Group</b><br /> <b>Property Group</b><br />
<i>(for display headers and dashboard)</i><br/> <em>(for display headers and dashboard)</em><br/>
<select name="GroupURI"><form:option name="GroupURI"/></select> <select name="GroupURI"><form:option name="GroupURI"/></select>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<b>Display Level</b><br /><i>(specify least restrictive level allowed)</i><br/> <b>Display Level</b><br /><i>(specify least restrictive level allowed)</i><br/>
<select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select> <select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select>
<font size="2" color="red"><form:error name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></font>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<b>Update Level</b><br />(specify least restrictive level allowed)<br /> <b>Update Level</b><br />(specify least restrictive level allowed)<br />
<select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select> <select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select>
<font size="2" color="red"><form:error name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></font>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
@ -40,7 +37,7 @@
</c:choose> </c:choose>
</td> </td>
<td style="vertical-align:bottom;" valign="bottom" colspan="2"> <td style="vertical-align:bottom;" valign="bottom" colspan="2">
<b>Local name for property</b> <b>Local name for property*</b>
<c:choose> <c:choose>
<c:when test="${_action eq 'update'}"> <c:when test="${_action eq 'update'}">
<br/><i>Change only via the "change URI" button on the previous screen</i><br/> <br/><i>Change only via the "change URI" button on the previous screen</i><br/>
@ -51,12 +48,18 @@
<input name="LocalName" value="<form:value name="LocalName"/>" style="width:90%;"/> <input name="LocalName" value="<form:value name="LocalName"/>" style="width:90%;"/>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<font size="2" color="red"><form:error name="LocalName"/></font> <c:set var="LocalNameError"><form:error name="LocalName"/></c:set>
<c:if test="${!empty LocalNameError}">
<span class="notice"><c:out value="${LocalNameError}"/></span>
</c:if>
</td> </td>
<td style="vertical-align:bottom;" valign="bottom" colspan="2"> <td style="vertical-align:bottom;" valign="bottom" colspan="2">
<b>Optional: Label for public display</b><br /> <b>Optional: Label for public display</b><br />
<input type="text" name="DomainPublic" value="<form:value name="DomainPublic"/>" style="width:90%;" maxlength="80" /> <input type="text" name="DomainPublic" value="<form:value name="DomainPublic"/>" style="width:90%;" maxlength="80" />
<font size="2" color="red"><form:error name="DomainPublic"/></font> <c:set var="DomainPublicError"><form:error name="DomainPublic"/></c:set>
<c:if test="${!empty DomainPublicError}">
<span class="notice"><c:out value="${DomainPublicError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
@ -84,24 +87,28 @@
<input name="LocalNameInverse" value="<form:value name="LocalNameInverse"/>" style="width:90%;"/> <input name="LocalNameInverse" value="<form:value name="LocalNameInverse"/>" style="width:90%;"/>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<font size="2" color="red"><form:error name="LocalNameInverse"/></font> <c:set var="LocalNameInverseError"><form:error name="LocalNameInverse"/></c:set>
<c:if test="${!empty LocalNameInverseError}">
<span class="notice"><c:out value="${LocalNameInverseError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" style="vertical-align:bottom;" colspan="2"> <td valign="bottom" style="vertical-align:bottom;" colspan="2">
<b>Optional: Inverse property label for public display</b><br /> <b>Optional: Inverse property label for public display</b><br />
<input type="text" name="RangePublic" value="<form:value name="RangePublic"/>" style="width:90%;" maxlength="80" /> <input type="text" name="RangePublic" value="<form:value name="RangePublic"/>" style="width:90%;" maxlength="80" />
<font size="2" color="red"><form:error name="RangePublic"/></font> <c:set var="RangePublicError"><form:error name="RangePublic"/></c:set>
<c:if test="${!empty RangePublicError}">
<span class="notice"><c:out value="${RangePublicError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="2"> <td valign="top" colspan="2">
<b>Domain class</b><br /> <b>Domain class</b><br />
<select name="DomainVClassURI"><form:option name="DomainVClassURI"/></select> <select name="DomainVClassURI"><form:option name="DomainVClassURI"/></select>
<font size="2" color="red"><form:error name="DomainVClassURI"/></font>
</td> </td>
<td valign="top" colspan="3"> <td valign="top" colspan="3">
<b>Range class</b><br /> <b>Range class</b><br />
<select name="RangeVClassURI" ><form:option name="RangeVClassURI"/></select> <select name="RangeVClassURI" ><form:option name="RangeVClassURI"/></select>
<font size="2" color="red"><form:error name="RangeClassURI"/></font>
</td> </td>
</tr> </tr>
@ -109,7 +116,10 @@
<td valign="top" colspan="5"> <td valign="top" colspan="5">
<b>Public Description</b> for front-end users, as it will appear on editing forms<br/> <b>Public Description</b> for front-end users, as it will appear on editing forms<br/>
<textarea name="PublicDescription"><form:value name="PublicDescription"/></textarea> <textarea name="PublicDescription"><form:value name="PublicDescription"/></textarea>
<font size="2" color="red"><form:error name="PublicDescription"/></font> <c:set var="PublicDescriptionError"><form:error name="PublicDescription"/></c:set>
<c:if test="${!empty PublicDescriptionError}">
<span class="notice"><c:out value="${PublicDescriptionError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
@ -117,19 +127,28 @@
<em>Optional: display tier for this property<br /> <em>Optional: display tier for this property<br />
(<strong>lower</strong> numbers display first)</em><br/> (<strong>lower</strong> numbers display first)</em><br/>
<input name="DomainDisplayTier" value="<form:value name="DomainDisplayTier"/>" style="width:15%;" /> <input name="DomainDisplayTier" value="<form:value name="DomainDisplayTier"/>" style="width:15%;" />
<font size="2" color="red"><form:error name="DomainDisplayTier"/></font> <c:set var="DomainDisplayTierError"><form:error name="DomainDisplayTier"/></c:set>
<c:if test="${!empty DomainDisplayTierError}">
<span class="notice"><c:out value="${DomainDisplayTierError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<em>Optional: display tier for this property's inverse<br /> <em>Optional: display tier for this property's inverse<br />
(<strong>lower</strong> numbers display first)</em><br/> (<strong>lower</strong> numbers display first)</em><br/>
<input name="RangeDisplayTier" value="<form:value name="RangeDisplayTier"/>" style="width:15%;" /> <input name="RangeDisplayTier" value="<form:value name="RangeDisplayTier"/>" style="width:15%;" />
<font size="2" color="red"><form:error name="RangeDisplayTier"/></font> <c:set var="RangeDisplayTierError"><form:error name="RangeDisplayTier"/></c:set>
<c:if test="${!empty RangeDisplayTierError}">
<span class="notice"><c:out value="${RangeDisplayTierError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="2">
<em>Related <strong>object individuals</strong> to display without collapsing<br /> <em>Related <strong>object individuals</strong> to display without collapsing<br />
(<strong>lower</strong> numbers display first)</em><br/> (<strong>lower</strong> numbers display first)</em><br/>
<input name="DomainDisplayLimit" value="<form:value name="DomainDisplayLimit"/>" style="width:15%;" /> <input name="DomainDisplayLimit" value="<form:value name="DomainDisplayLimit"/>" style="width:15%;" />
<font size="2" color="red"><form:error name="DomainDisplayLimit"/></font> <c:set var="DomainDisplayLimitError"><form:error name="DomainDisplayLimit"/></c:set>
<c:if test="${!empty DomainDisplayLimitError}">
<span class="notice"><c:out value="${DomainDisplayLimitError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
@ -137,18 +156,23 @@
<em>Optional: <strong>sort related individuals</strong> by<br /> <em>Optional: <strong>sort related individuals</strong> by<br />
(default is sort by name)</em><br/> (default is sort by name)</em><br/>
<input name="DomainEntitySortField" value="<form:value name="DomainEntitySortField"/>" /> <input name="DomainEntitySortField" value="<form:value name="DomainEntitySortField"/>" />
<font size="2" color="red"><form:error name="DomainEntitySortField"/></font><br /> <c:set var="DomainEntitySortFieldError"><form:error name="DomainEntitySortField"/></c:set>
<c:if test="${!empty DomainEntitySortFieldError}">
<span class="notice"><c:out value="${DomainEntitySortFieldError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<em>Optional: <strong>sort direction</strong><br /> <em>Optional: <strong>sort direction</strong><br />
(blank for ascending, &quot;desc&quot; for descending)</em><br/> (blank for ascending, &quot;desc&quot; for descending)</em><br/>
<input name="DomainEntitySortDirection" value="<form:value name="DomainEntitySortDirection"/>" /> <input name="DomainEntitySortDirection" value="<form:value name="DomainEntitySortDirection"/>" />
<font size="2" color="red"><form:error name="DomainEntitySortDirection"/></font> <c:set var="DomainEntitySortDirectionError"><form:error name="DomainEntitySortDirection"/></c:set>
<c:if test="${!empty DomainEntitySortDirectionError}">
<span class="notice"><c:out value="${DomainEntitySortDirectionError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="2">
<em>Optional: <strong>data property</strong> by which to sort related individuals</em><br /> <em>Optional: <strong>data property</strong> by which to sort related individuals</em><br />
<select name="ObjectIndividualSortPropertyURI"><form:option name="ObjectIndividualSortPropertyURI"/></select> <select name="ObjectIndividualSortPropertyURI"><form:option name="ObjectIndividualSortPropertyURI"/></select>
<font size="2" color="red"><form:error name="ObjectIndividualSortPropertyURI"/></font>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
@ -160,8 +184,7 @@
<c:otherwise> <c:otherwise>
<input name="CollateBySubclass" type="checkbox" value="TRUE"/>collate by subclass <input name="CollateBySubclass" type="checkbox" value="TRUE"/>collate by subclass
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<font size="2" color="red"><form:error name="CollateBySubclass"/></font>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
@ -211,7 +234,10 @@
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="2">
<em>custom entry form</em><br /> <em>custom entry form</em><br />
<input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" /> <input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" />
<font size="2" color="red"><form:error name="CustomEntryForm"/></font> <c:set var="CustomEntryFormError"><form:error name="CustomEntryForm"/></c:set>
<c:if test="${!empty CustomEntryFormError}">
<span class="notice"><c:out value="${CustomEntryFormError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<em><strong>Caution:</strong>delete object when statement deleted?</em><br /> <em><strong>Caution:</strong>delete object when statement deleted?</em><br />
@ -223,7 +249,6 @@
<input name="StubObjectRelation" type="checkbox" value="TRUE"/>stub object relation with force delete <input name="StubObjectRelation" type="checkbox" value="TRUE"/>stub object relation with force delete
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<font size="2" color="red"><form:error name="stubObjectRelation"/></font>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<em>select from existing choices when adding statements?</em><br /> <em>select from existing choices when adding statements?</em><br />
@ -235,7 +260,6 @@
<input name="SelectFromExisting" type="checkbox" value="TRUE"/>provide selection <input name="SelectFromExisting" type="checkbox" value="TRUE"/>provide selection
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<font size="2" color="red"><form:error name="SelectFromExisting"/></font>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<em>when adding a new statement, also offer option to create new individual?</em><br /> <em>when adding a new statement, also offer option to create new individual?</em><br />
@ -247,7 +271,6 @@
<input name="OfferCreateNewOption" type="checkbox" value="TRUE"/>offer create option <input name="OfferCreateNewOption" type="checkbox" value="TRUE"/>offer create option
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<font size="2" color="red"><form:error name="OfferCreateNewOption"/></font>
</td> </td>
</tr> </tr>
@ -256,19 +279,28 @@
<em>Optional: <strong>sort related object individuals of inverse property</strong> by<br /> <em>Optional: <strong>sort related object individuals of inverse property</strong> by<br />
(default is sort by name)</em><br/> (default is sort by name)</em><br/>
<input name="RangeEntitySortField" value="<form:value name="RangeEntitySortField"/>" /> <input name="RangeEntitySortField" value="<form:value name="RangeEntitySortField"/>" />
<font size="2" color="red"><form:error name="RangeEntitySortField"/></font> <c:set var="RangeEntitySortFieldError"><form:error name="RangeEntitySortField"/></c:set>
<c:if test="${!empty RangeEntitySortFieldError}">
<span class="notice"><c:out value="${RangeEntitySortFieldError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<em>Optional: <strong>inverse sort direction</strong><br /> <em>Optional: <strong>inverse sort direction</strong><br />
(blank for ascending, &quot;desc&quot; for descending)</em><br/> (blank for ascending, &quot;desc&quot; for descending)</em><br/>
<input name="RangeEntitySortDirection" value="<form:value name="RangeEntitySortDirection"/>" /> <input name="RangeEntitySortDirection" value="<form:value name="RangeEntitySortDirection"/>" />
<font size="2" color="red"><form:error name="RangeEntitySortDirection"/></font> <c:set var="RangeEntitySortDirectionError"><form:error name="RangeEntitySortDirection"/></c:set>
<c:if test="${!empty RangeEntitySortDirectionError}">
<span class="notice"><c:out value="${RangeEntitySortDirectionError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="2">
<em>Related <strong>object individuals of non-inverse property</strong> to display without collapsing<br /> <em>Related <strong>object individuals of non-inverse property</strong> to display without collapsing</em><br />
(<strong>lower</strong> numbers display first<br/> (<strong>lower</strong> numbers display first)<br/>
<input name="RangeDisplayLimit" value="<form:value name="RangeDisplayLimit"/>" style="width:15%;" /> <input name="RangeDisplayLimit" value="<form:value name="RangeDisplayLimit"/>" style="width:15%;" />
<font size="2" color="red"><form:error name="RangeDisplayLimit"/></font> <c:set var="RangeDisplayLimitError"><form:error name="RangeDisplayLimit"/></c:set>
<c:if test="${!empty RangeDisplayLimitError}">
<span class="notice"><c:out value="${RangeDisplayLimitError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
@ -276,14 +308,20 @@
<td valign="bottom" colspan="5"> <td valign="bottom" colspan="5">
<b>Example</b><br /> <b>Example</b><br />
<input name="Example" style="width:90%;" value="<form:value name="Example"/>" /> <input name="Example" style="width:90%;" value="<form:value name="Example"/>" />
<font size="2" color="red"><form:error name="Example"/></font> <c:set var="ExampleError"><form:error name="Example"/></c:set>
<c:if test="${!empty ExampleError}">
<span class="notice"><c:out value="${ExampleError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="5"> <td valign="bottom" colspan="5">
<b>Description</b> for ontology editors<br /> <b>Description</b> for ontology editors<br />
<textarea name="Description" style="width:90%;"><form:value name="Description"/></textarea> <textarea name="Description" style="width:90%;"><form:value name="Description"/></textarea>
<font size="2" color="red"><form:error name="Description"/></font> <c:set var="DescriptionError"><form:error name="Description"/></c:set>
<c:if test="${!empty DescriptionError}">
<span class="notice"><c:out value="${DescriptionError}"/></span>
</c:if>
</td> </td>
</tr> </tr>

View file

@ -6,7 +6,7 @@
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="2">
<b>Class Name*</b><i> for editing pick lists and the Index</i><br/> <b>Class Name</b><i> for editing pick lists and the Index</i><br/>
<i>... use initial capital letters; spaces OK</i><br/> <i>... use initial capital letters; spaces OK</i><br/>
<input type="text" name="Name" value="${formValue['Name']}" style="width:90%" maxlength="120" /> <input type="text" name="Name" value="${formValue['Name']}" style="width:90%" maxlength="120" />
<span class="warning"><form:error name="Name"/></span> <span class="warning"><form:error name="Name"/></span>
@ -14,12 +14,10 @@
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<b>Display Level</b><br /><i>(specify least restrictive level allowed)</i><br/> <b>Display Level</b><br /><i>(specify least restrictive level allowed)</i><br/>
<select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select> <select name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"><form:option name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></select>
<font size="2" color="red"><form:error name="HiddenFromDisplayBelowRoleLevelUsingRoleUri"/></font>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<b>Update Level</b><br /><i>(specify least restrictive level allowed)</i><br /> <b>Update Level</b><br /><i>(specify least restrictive level allowed)</i><br />
<select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select> <select name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"><form:option name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></select>
<font size="2" color="red"><form:error name="ProhibitedFromUpdateBelowRoleLevelUsingRoleUri"/></font>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
@ -43,7 +41,7 @@
</c:choose> </c:choose>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<b>Internal Name</b><br/> <b>Internal Name*</b><br/>
<c:choose> <c:choose>
<c:when test="${_action eq 'update'}"> <c:when test="${_action eq 'update'}">
<i>Change via "change URI"</i><br/> <i>Change via "change URI"</i><br/>
@ -53,58 +51,85 @@
<i>must be valid XML</i><br/><i>by convention starts with a capital letter</i><br/> <i>must be valid XML</i><br/><i>by convention starts with a capital letter</i><br/>
<input name="LocalName" value="${formValue['LocalName']}" style="width:90%"/> <input name="LocalName" value="${formValue['LocalName']}" style="width:90%"/>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
<span class="notice"><form:error name="LocalName"/></span> <c:set var="LocalNameError"><form:error name="LocalName"/></c:set>
<c:if test="${!empty LocalNameError}">
<span class="notice"><c:out value="${LocalNameError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="4"> <td valign="top" colspan="4">
<b>Short Definition</b><br/> <b>Short Definition</b><br/>
<input type="text" name="ShortDef" value="${formValue['ShortDef']}" style="width:95%" maxlength="255" /> <input type="text" name="ShortDef" value="${formValue['ShortDef']}" style="width:95%" maxlength="255" />
<span class="warning"><form:error name="ShortDef"/></span> <c:set var="ShortDefError"><form:error name="ShortDef"/></c:set>
<c:if test="${!empty ShortDefError}">
<span class="notice"><c:out value="${ShortDefError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="4"> <td valign="top" colspan="4">
<b>Example</b><br/> <b>Example</b><br/>
<input type="text" name="Example" value="${formValue['Example']}" style="width:95%" maxlength="120" /> <input type="text" name="Example" value="${formValue['Example']}" style="width:95%" maxlength="120" />
<span class="warning"><form:error name="Example"/></span> <c:set var="ExampleError"><form:error name="Example"/></c:set>
<c:if test="${!empty ExampleError}">
<span class="notice"><c:out value="${ExampleError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="4"> <td valign="bottom" colspan="4">
<b>Description</b><br/> <b>Description</b><br/>
<textarea style="width:95%;height:10ex;" name="Description"><form:value name="Description"/></textarea> <textarea style="width:95%;height:10ex;" name="Description"><form:value name="Description"/></textarea>
<span class="warning"><form:error name="Description"/></span> <c:set var="DescriptionError"><form:error name="Description"/></c:set>
<c:if test="${!empty DescriptionError}">
<span class="notice"><c:out value="${DescriptionError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="top" colspan="1"> <td valign="top" colspan="1">
<b>Display Limit</b><br/> <b>Display Limit</b><br/>
<input style="width:95%;" type="text" name="DisplayLimit" value="${formValue['DisplayLimit']}" maxlength="120" /> <input style="width:95%;" type="text" name="DisplayLimit" value="${formValue['DisplayLimit']}" maxlength="120" />
<span class="warning"><form:error name="DisplayLimit"/></span> <c:set var="DisplayLimitError"><form:error name="DisplayLimit"/></c:set>
<c:if test="${!empty DisplayLimitError}">
<span class="notice"><c:out value="${DisplayLimitError}"/></span>
</c:if>
</td> </td>
<td valign="top" colspan="1"> <td valign="top" colspan="1">
<b>Display Rank</b><br/> <b>Display Rank</b><br/>
<input size="4" type="text" name="DisplayRank" value="${formValue['DisplayRank']}" maxlength="120" /> <input size="4" type="text" name="DisplayRank" value="${formValue['DisplayRank']}" maxlength="120" />
<span class="warning"><form:error name="DisplayRank"/></span> <c:set var="DisplayRankError"><form:error name="DisplayRank"/></c:set>
<c:if test="${!empty DisplayRankError}">
<span class="notice"><c:out value="${DisplayRankError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
<tr class="editformcell"> <tr class="editformcell">
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<em>Optional: <strong>custom entry form</strong></em><br /> <em>Optional: <strong>custom entry form</strong></em><br />
<input name="CustomEntryForm" style="width:90%" value="${formValue['CustomEntryForm']}"/> <input name="CustomEntryForm" style="width:90%" value="${formValue['CustomEntryForm']}"/>
<font size="2" color="red"><form:error name="CustomEntryForm"/></font> <c:set var="CustomEntryFormError"><form:error name="CustomEntryForm"/></c:set>
<c:if test="${!empty CustomEntryFormError}">
<span class="notice"><c:out value="${CustomEntryFormError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" colspan="1"> <td valign="bottom" colspan="1">
<em>Optional: <strong>custom display view</strong></em><br /> <em>Optional: <strong>custom display view</strong></em><br />
<input name="CustomDisplayView" style="width:90%" value="${formValue['CustomDisplayView']}"/> <input name="CustomDisplayView" style="width:90%" value="${formValue['CustomDisplayView']}"/>
<font size="2" color="red"><form:error name="CustomDisplayView"/></font> <c:set var="CustomEntryFormError"><form:error name="CustomEntryForm"/></c:set>
<c:if test="${!empty CustomEntryFormError}">
<span class="notice"><c:out value="${CustomEntryFormError}"/></span>
</c:if>
</td> </td>
<td valign="bottom" colspan="2"> <td valign="bottom" colspan="2">
<em>Optional: <strong>custom search view</strong></em><br /> <em>Optional: <strong>custom search view</strong></em><br />
<input name="CustomSearchView" style="width:45%" value="${formValue['CustomSearchView']}"/> <input name="CustomSearchView" style="width:45%" value="${formValue['CustomSearchView']}"/>
<font size="2" color="red"><form:error name="CustomSearchView"/></font> <c:set var="CustomSearchViewError"><form:error name="CustomSearchView"/></c:set>
<c:if test="${!empty CustomSearchViewError}">
<span class="notice"><c:out value="${CustomSearchViewError}"/></span>
</c:if>
</td> </td>
</tr> </tr>
</jsp:root> </jsp:root>