Author: mfang
Date: 2009-05-26 09:59:20 +0200 (Tue, 26 May 2009)
New Revision: 35431
Modified:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/contentsearch.jsp
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/search.js
Log:
CMSC-1116 advanced search for dynamic form save answer gives 500 error
Modified:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/contentsearch.jsp
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/contentsearch.jsp
2009-05-26 02:55:18 UTC (rev 35430)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/contentsearch.jsp
2009-05-26 07:59:20 UTC (rev 35431)
@@ -8,6 +8,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html:html xhtml="true">
<cmscedit:head title="search.title">
+ <script src="../../mmbase/edit/wizard/javascript/validator.js"
type="text/javascript"></script>
<script src="content.js" type="text/javascript"></script>
<script src="search.js" type="text/javascript"></script>
<script type="text/javascript">
@@ -179,6 +180,7 @@
</td>
<td rowspan="5">
<c:set var="fields"/>
+ <c:set var="fieldtypes"/>
<mm:compare referid="contenttypes"
value="contentelement" inverse="true">
<table>
<mm:fieldlist nodetype="${contenttypes}">
@@ -197,16 +199,19 @@
<tr rowspan="5">
<td height="32">
<mm:fieldinfo type="guiname"/>:
- <mm:fieldinfo type="name"
id="fieldName" write="false">
- <c:choose>
- <c:when test="${empty fields}">
- <c:set
var="fields">${contenttypes}.${fieldName}</c:set>
- </c:when>
- <c:otherwise>
- <c:set
var="fields">${fields},${contenttypes}.${fieldName}</c:set>
- </c:otherwise>
- </c:choose>
+ <mm:fieldinfo type="name"
id="fieldname" write="false">
+ <c:choose>
+ <c:when test="${empty fields}">
+ <c:set
var="fields">${contenttypes}.${fieldname}</c:set>
+ <c:set
var="fieldtypes"><mm:fieldinfo type="typedescription"/></c:set>
+ </c:when>
+ <c:otherwise>
+ <c:set
var="fields">${fields},${contenttypes}.${fieldname}</c:set>
+ <c:set
var="fieldtypes">${fieldtypes},<mm:fieldinfo type="typedescription"/></c:set>
+ </c:otherwise>
+ </c:choose>
</mm:fieldinfo>
+ </td>
</tr>
</c:if>
</mm:fieldlist>
@@ -216,12 +221,14 @@
<td rowspan="5">
<mm:compare referid="contenttypes"
value="contentelement" inverse="true">
<table>
- <c:forTokens items="${fields}" var="field"
delims=",">
+ <c:forTokens items="${fields}" var="field"
delims="," varStatus="status">
+ <c:forTokens items="${fieldtypes}"
var="fieldtype" delims="," begin="${status.index}" end="${status.index}">
<tr>
<td height="32">
- <input type="text" name="${field}"
value="${param.field}" />
+ <input type="text" name="${field}"
dttype="${fieldtype}" value="${param.field}" />
</td>
</tr>
+ </c:forTokens>
</c:forTokens>
</table>
</mm:compare>
@@ -330,7 +337,7 @@
<tr>
<td></td>
<td>
- <input type="submit" class="button"
name="submitButton" onclick="setOffset(0);" value="<fmt:message
key="searchform.submit" />"/>
+ <input type="submit" class="button"
name="submitButton" onclick="return validateInputs();" value="<fmt:message
key="searchform.submit" />"/>
</td>
</tr>
</table>
Modified:
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/search.js
===================================================================
---
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/search.js
2009-05-26 02:55:18 UTC (rev 35430)
+++
CMSContainer/trunk/CMSContainer/cmsc/contentrepository/src/webapp/editors/repository/search.js
2009-05-26 07:59:20 UTC (rev 35431)
@@ -1,3 +1,65 @@
+//Refers to the function 'validateElement' in validator.js
+ function validateInputs() {
+ var err = "";
+ var form = document.forms[0];
+ for (i=0;i<form.elements.length;i++){
+ var el = form.elements[i];
+ var dttype = el.getAttribute("dttype");
+ var v = el.value;
+ if(!isEmpty(dttype)&&!isEmpty(v)){
+ switch (dttype.toLowerCase()) {
+ case "long":
+ ;
+ case "integer":
+ err += validateInt(el, form, v);
+ break;
+ case "float":
+ ;
+ case "double":
+ err += validateFloat(el, form, v);
+ break;
+ case "enum":
+ //Maybe to be implemented in the future
+ //err += validateEnum(el, form, v);
+ break;
+ case "datetime":
+ //Maybe to be implemented in the future
+ //err += validateDatetime(el, form, v);
+ break;
+ case "boolean":
+ //Maybe to be implemented in the future
+ //err += validateBoolean(el, form, v);
+ break;
+ default :
+ break;
+ }
+ }
+ if(!isEmpty(err)){
+ alert(err);
+ el.style.borderColor = "#CC0000";
+ el.focus();
+ return false;
+ }
+ }
+ setOffset(0);
+ }
+
+//Refers to the function 'validateInt' in validator.js
+ function validateInt(el, form, v) {
+ if (isNaN(v) || parseInt(v) == null) {
+ return "value '" + v + "' is not a valid integer number";
+ }
+ return "";
+ }
+
+//Refers to the function 'validateFloat' in validator.js
+function validateFloat(el, form, v) {
+ if (isNaN(v) || parseFloat(v) == null) {
+ return "value '" + v + "' is not a valid float number";
+ }
+ return "";
+}
+
function setOffset(offset) {
document.forms[0].offset.value = offset;
document.forms[0].submit();
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs