Fixed object property sorting on individual page for default list view. NIHVIVO-3415
Removed unused domainEntitySortField and rangeEntitySortField from ObjectProperty. Added rangeEntitySortField back to property_retry.jsp.
This commit is contained in:
parent
ceaf27a713
commit
9b30ecdcb1
8 changed files with 172 additions and 169 deletions
|
@ -52,14 +52,12 @@ public class ObjectProperty extends Property implements Comparable<ObjectPropert
|
||||||
private String namespaceInverse = null;
|
private String namespaceInverse = null;
|
||||||
private String localNameInverse = null;
|
private String localNameInverse = null;
|
||||||
|
|
||||||
private String domainEntitySortField = null;
|
|
||||||
private String domainEntitySortDirection = null;
|
private String domainEntitySortDirection = null;
|
||||||
private Integer domainDisplayTier = null;
|
private Integer domainDisplayTier = null;
|
||||||
private Integer domainDisplayLimit = 5;
|
private Integer domainDisplayLimit = 5;
|
||||||
|
|
||||||
private String objectIndividualSortPropertyURI = null;
|
private String objectIndividualSortPropertyURI = null;
|
||||||
|
|
||||||
private String rangeEntitySortField = null;
|
|
||||||
private String rangeEntitySortDirection = null;
|
private String rangeEntitySortDirection = null;
|
||||||
private Integer rangeDisplayTier = null;
|
private Integer rangeDisplayTier = null;
|
||||||
private Integer rangeDisplayLimit = 5;
|
private Integer rangeDisplayLimit = 5;
|
||||||
|
|
|
@ -31,10 +31,20 @@ public interface ObjectPropertyStatementDao {
|
||||||
|
|
||||||
int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt );
|
int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt );
|
||||||
|
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(String subjectUri, String propertyUri, String objectKey, String query);
|
// public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
|
// String subjectUri,
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(String subjectUri, String propertyUri, String objectKey, String query, Set<String> constructQueries);
|
// String propertyUri,
|
||||||
|
// String objectKey,
|
||||||
|
// String queryString,
|
||||||
|
// Set<String> constructQueryStrings);
|
||||||
|
|
||||||
public Map<String, String> getMostSpecificTypesInClassgroupsForIndividual(String subjectUri);
|
public Map<String, String> getMostSpecificTypesInClassgroupsForIndividual(String subjectUri);
|
||||||
|
|
||||||
|
List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
|
String subjectUri, String propertyUri, String objectKey,
|
||||||
|
String queryString, Set<String> constructQueryStrings,
|
||||||
|
String sortDirection);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,16 +86,12 @@ class ObjectPropertyStatementDaoFiltering extends BaseFiltering implements Objec
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
String subjectUri, String propertyUri, String objectKey, String query) {
|
String subjectUri, String propertyUri, String objectKey, String query,
|
||||||
return getObjectPropertyStatementsForIndividualByProperty(subjectUri, propertyUri, objectKey, query, null);
|
Set<String> queryStrings, String sortDirection) {
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
List<Map<String, String>> data =
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
innerObjectPropertyStatementDao.getObjectPropertyStatementsForIndividualByProperty(
|
||||||
String subjectUri, String propertyUri, String objectKey, String query, Set<String> queryStrings) {
|
subjectUri, propertyUri, objectKey, query, queryStrings,sortDirection);
|
||||||
|
|
||||||
List<Map<String, String>> data = innerObjectPropertyStatementDao.
|
|
||||||
getObjectPropertyStatementsForIndividualByProperty(subjectUri, propertyUri, objectKey, query, queryStrings);
|
|
||||||
|
|
||||||
/* Filter the data
|
/* Filter the data
|
||||||
*
|
*
|
||||||
|
@ -137,4 +133,6 @@ class ObjectPropertyStatementDaoFiltering extends BaseFiltering implements Objec
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -266,27 +266,22 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
* However, we do need to get the object of the statement so that we have it to create editing links.
|
* However, we do need to get the object of the statement so that we have it to create editing links.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
|
||||||
String subjectUri,
|
|
||||||
String propertyUri,
|
|
||||||
String objectKey, String queryString) {
|
|
||||||
|
|
||||||
return getObjectPropertyStatementsForIndividualByProperty(
|
|
||||||
subjectUri, propertyUri, objectKey, objectKey, null);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
String subjectUri,
|
String subjectUri,
|
||||||
String propertyUri,
|
String propertyUri,
|
||||||
String objectKey,
|
String objectKey,
|
||||||
String queryString, Set<String> constructQueryStrings ) {
|
String queryString,
|
||||||
|
Set<String> constructQueryStrings,
|
||||||
|
String sortDirection) {
|
||||||
|
|
||||||
Model constructedModel = constructModelForSelectQueries(
|
Model constructedModel = constructModelForSelectQueries(
|
||||||
subjectUri, propertyUri, constructQueryStrings);
|
subjectUri, propertyUri, constructQueryStrings);
|
||||||
|
|
||||||
|
if("desc".equalsIgnoreCase( sortDirection ) ){
|
||||||
|
queryString = queryString.replaceAll(" ASC\\(", " DESC(");
|
||||||
|
}
|
||||||
|
|
||||||
log.debug("Query string for object property " + propertyUri + ": " + queryString);
|
log.debug("Query string for object property " + propertyUri + ": " + queryString);
|
||||||
|
|
||||||
Query query = null;
|
Query query = null;
|
||||||
|
|
|
@ -79,6 +79,7 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
|
||||||
|
|
||||||
private PropertyListConfig config;
|
private PropertyListConfig config;
|
||||||
private String objectKey;
|
private String objectKey;
|
||||||
|
private String sortDirection;
|
||||||
|
|
||||||
ObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq,
|
ObjectPropertyTemplateModel(ObjectProperty op, Individual subject, VitroRequest vreq,
|
||||||
boolean editing)
|
boolean editing)
|
||||||
|
@ -87,6 +88,8 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
|
||||||
super(op, subject, vreq);
|
super(op, subject, vreq);
|
||||||
setName(op.getDomainPublic());
|
setName(op.getDomainPublic());
|
||||||
|
|
||||||
|
sortDirection = op.getDomainEntitySortDirection();
|
||||||
|
|
||||||
// Get the config for this object property
|
// Get the config for this object property
|
||||||
try {
|
try {
|
||||||
config = new PropertyListConfig(this, getFreemarkerTemplateLoader(), vreq, op, editing);
|
config = new PropertyListConfig(this, getFreemarkerTemplateLoader(), vreq, op, editing);
|
||||||
|
@ -144,7 +147,8 @@ public abstract class ObjectPropertyTemplateModel extends PropertyTemplateModel
|
||||||
|
|
||||||
protected List<Map<String, String>> getStatementData() {
|
protected List<Map<String, String>> getStatementData() {
|
||||||
ObjectPropertyStatementDao opDao = vreq.getWebappDaoFactory().getObjectPropertyStatementDao();
|
ObjectPropertyStatementDao opDao = vreq.getWebappDaoFactory().getObjectPropertyStatementDao();
|
||||||
return opDao.getObjectPropertyStatementsForIndividualByProperty(subjectUri, propertyUri, objectKey, getSelectQuery(), getConstructQueries());
|
|
||||||
|
return opDao.getObjectPropertyStatementsForIndividualByProperty(subjectUri, propertyUri, objectKey, getSelectQuery(), getConstructQueries(), sortDirection);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract boolean isEmpty();
|
protected abstract boolean isEmpty();
|
||||||
|
|
|
@ -217,15 +217,7 @@ public class ObjectPropertyStatementDaoStub implements
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
||||||
String subjectUri, String propertyUri, String objectKey,
|
String subjectUri, String propertyUri, String objectKey,
|
||||||
String query) {
|
String query, Set<String> constructQueries, String sortDir) {
|
||||||
throw new RuntimeException(
|
|
||||||
"ObjectPropertyStatementDaoStub.getObjectPropertyStatementsForIndividualByProperty() not implemented.");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Map<String, String>> getObjectPropertyStatementsForIndividualByProperty(
|
|
||||||
String subjectUri, String propertyUri, String objectKey,
|
|
||||||
String query, Set<String> constructQueries) {
|
|
||||||
throw new RuntimeException(
|
throw new RuntimeException(
|
||||||
"ObjectPropertyStatementDaoStub.getObjectPropertyStatementsForIndividualByProperty() not implemented.");
|
"ObjectPropertyStatementDaoStub.getObjectPropertyStatementsForIndividualByProperty() not implemented.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
FILTER ( afn:namespace(?subclass) != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
|
FILTER ( afn:namespace(?subclass) != "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#" )
|
||||||
</collated>
|
</collated>
|
||||||
|
|
||||||
} ORDER BY <collated> ?subclass </collated> ?label ?label ?localName
|
} ORDER BY <collated> ?subclass </collated> ASC( ?label ) ASC( ?label ) ASC( ?localName )
|
||||||
</query-select>
|
</query-select>
|
||||||
|
|
||||||
<query-construct>
|
<query-construct>
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
<%@ taglib prefix="form" uri="http://vitro.mannlib.cornell.edu/edit/tags" %>
|
<%@ taglib prefix="form" uri="http://vitro.mannlib.cornell.edu/edit/tags" %>
|
||||||
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
|
||||||
|
|
||||||
<%-- colspan set to 4 in PropertyRetryController.java --%>
|
<%-- colspan set to 5 in PropertyRetryController.java --%>
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="top" colspan="1">
|
<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>
|
||||||
</td>
|
</td>
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td style="vertical-align:bottom;" valign="bottom" colspan="1">
|
<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'}">
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td style="vertical-align:bottom;" valign="bottom" colspan="1">
|
<td style="vertical-align:bottom;" valign="bottom" colspan="2">
|
||||||
<b>Optional: Inverse property local name</b>
|
<b>Optional: Inverse property local name</b>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${_action eq 'update'}">
|
<c:when test="${_action eq 'update'}">
|
||||||
|
@ -106,14 +106,14 @@
|
||||||
<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>
|
||||||
</td>
|
</td>
|
||||||
<td valign="top" colspan="2">
|
<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>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="top" colspan="4">
|
<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>
|
||||||
<c:set var="PublicDescriptionError"><form:error name="PublicDescription"/></c:set>
|
<c:set var="PublicDescriptionError"><form:error name="PublicDescription"/></c:set>
|
||||||
|
@ -122,6 +122,59 @@
|
||||||
</c:if>
|
</c:if>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="editformcell">
|
||||||
|
<td valign="bottom" colspan="1">
|
||||||
|
<em>Optional: display tier for this property<br />
|
||||||
|
(<strong>lower</strong> numbers display first)</em><br/>
|
||||||
|
<input name="DomainDisplayTier" value="<form:value name="DomainDisplayTier"/>" style="width:15%;" />
|
||||||
|
<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 valign="bottom" colspan="2">
|
||||||
|
<em>Optional: display tier for this property's inverse<br />
|
||||||
|
(<strong>lower</strong> numbers display first)</em><br/>
|
||||||
|
<input name="RangeDisplayTier" value="<form:value name="RangeDisplayTier"/>" style="width:15%;" />
|
||||||
|
<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 valign="bottom" colspan="2">
|
||||||
|
<em>Related <strong>object individuals</strong> to display without collapsing<br />
|
||||||
|
(<strong>lower</strong> numbers display first)</em><br/>
|
||||||
|
<input name="DomainDisplayLimit" value="<form:value name="DomainDisplayLimit"/>" style="width:15%;" />
|
||||||
|
<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>
|
||||||
|
</tr>
|
||||||
|
<tr class="editformcell">
|
||||||
|
<td valign="bottom" colspan="2">
|
||||||
|
<em>Optional: <strong>sort direction</strong><br />
|
||||||
|
(blank for ascending, "desc" for descending)</em><br/>
|
||||||
|
<input name="DomainEntitySortDirection" value="<form:value name="DomainEntitySortDirection"/>" />
|
||||||
|
<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>
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
<tr class="editformcell">
|
||||||
|
<td valign="bottom" colspan="5">
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${collateBySubclass}">
|
||||||
|
<input name="CollateBySubclass" type="checkbox" value="TRUE" checked="checked"/>collate by subclass
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<input name="CollateBySubclass" type="checkbox" value="TRUE"/>collate by subclass
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="bottom" colspan="1">
|
<td valign="bottom" colspan="1">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
|
@ -133,7 +186,7 @@
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td valign="bottom" colspan="1">
|
<td valign="bottom" colspan="2">
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${symmetric}">
|
<c:when test="${symmetric}">
|
||||||
<input name="Symmetric" type="checkbox" value="TRUE" checked="checked"/> symmetric
|
<input name="Symmetric" type="checkbox" value="TRUE" checked="checked"/> symmetric
|
||||||
|
@ -164,54 +217,15 @@
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="bottom" colspan="1">
|
<td valign="bottom" colspan="2">
|
||||||
<em>Optional: display tier for this property<br />
|
<em>custom entry form</em><br />
|
||||||
(<strong>lower</strong> numbers display first)</em><br/>
|
<input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" />
|
||||||
<input name="DomainDisplayTier" value="<form:value name="DomainDisplayTier"/>" style="width:15%;" />
|
<c:set var="CustomEntryFormError"><form:error name="CustomEntryForm"/></c:set>
|
||||||
<c:set var="DomainDisplayTierError"><form:error name="DomainDisplayTier"/></c:set>
|
<c:if test="${!empty CustomEntryFormError}">
|
||||||
<c:if test="${!empty DomainDisplayTierError}">
|
<span class="notice"><c:out value="${CustomEntryFormError}"/></span>
|
||||||
<span class="notice"><c:out value="${DomainDisplayTierError}"/></span>
|
|
||||||
</c:if>
|
</c:if>
|
||||||
</td>
|
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<em>Optional: display tier for this property's inverse<br />
|
|
||||||
(<strong>lower</strong> numbers display first)</em><br/>
|
|
||||||
<input name="RangeDisplayTier" value="<form:value name="RangeDisplayTier"/>" style="width:15%;" />
|
|
||||||
<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 valign="bottom" colspan="1">
|
|
||||||
<em>Related <strong>object individuals</strong> to display without collapsing<br />
|
|
||||||
(<strong>lower</strong> numbers display first)</em><br/>
|
|
||||||
<input name="DomainDisplayLimit" value="<form:value name="DomainDisplayLimit"/>" style="width:15%;" />
|
|
||||||
<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 valign="bottom" colspan="1">
|
|
||||||
<em>Related <strong>object individuals of inverse property</strong> to display without collapsing</em><br />
|
|
||||||
(<strong>lower</strong> numbers display first)<br/>
|
|
||||||
<input name="RangeDisplayLimit" value="<form:value name="RangeDisplayLimit"/>" style="width:15%;" />
|
|
||||||
<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>
|
|
||||||
</tr>
|
|
||||||
<tr class="editformcell">
|
|
||||||
<td valign="bottom" colspan="1">
|
|
||||||
<c:choose>
|
|
||||||
<c:when test="${collateBySubclass}">
|
|
||||||
<input name="CollateBySubclass" type="checkbox" value="TRUE" checked="checked"/>collate by subclass
|
|
||||||
</c:when>
|
|
||||||
<c:otherwise>
|
|
||||||
<input name="CollateBySubclass" type="checkbox" value="TRUE"/>collate by subclass
|
|
||||||
</c:otherwise>
|
|
||||||
</c:choose>
|
|
||||||
</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 />
|
||||||
|
@ -247,18 +261,10 @@
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="bottom" colspan="4">
|
<td valign="bottom" colspan="5">
|
||||||
<em>custom entry form</em><br />
|
|
||||||
<input name="CustomEntryForm" size="30" value="<form:value name="CustomEntryForm"/>" />
|
|
||||||
<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>
|
|
||||||
</tr>
|
|
||||||
<tr class="editformcell">
|
|
||||||
<td valign="bottom" colspan="4">
|
|
||||||
<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"/>" />
|
||||||
<c:set var="ExampleError"><form:error name="Example"/></c:set>
|
<c:set var="ExampleError"><form:error name="Example"/></c:set>
|
||||||
|
@ -268,7 +274,7 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="editformcell">
|
<tr class="editformcell">
|
||||||
<td valign="bottom" colspan="4">
|
<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>
|
||||||
<c:set var="DescriptionError"><form:error name="Description"/></c:set>
|
<c:set var="DescriptionError"><form:error name="Description"/></c:set>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue