[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv14766 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: ported from head See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.30 retrieving revision 1.11.2.31 diff -u -b -r1.11.2.30 -r1.11.2.31 --- validation.js.jsp 3 Mar 2009 15:33:03 - 1.11.2.30 +++ validation.js.jsp 28 Apr 2009 16:34:37 - 1.11.2.31 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.30 2009/03/03 15:33:03 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.31 2009/04/28 16:34:37 michiel Exp $ */ @@ -76,9 +76,10 @@ MMBaseValidator.prototype.onLoad = function(event) { -if (this.root == null) { +if (this.root == null && event != null) { this.root = event.target || event.srcElement; } +//console.log("Root" + this.root); this.addValidation(this.root); //validatePage(target); } @@ -155,7 +156,6 @@ if (typeof(path) == "string") path = path.split(/\s+/); var tagName = path.shift(); - var tag = el == null ? null : el.firstChild; while (tag != null) { if (tag.nodeType == 1) { @@ -327,6 +327,11 @@ el.mm_isbinary = this.hasJavaClass(el, "org\.mmbase\.datatypes\.BinaryDataType"); return el.isbinary; } +MMBaseValidator.prototype.isCheckEquality = function(el) { +if (el.mm_ischeckequality != null) return el.mm_ischeckequality; +el.mm_ischeckequality = this.hasJavaClass(el, "org\.mmbase\.datatypes\.CheckEqualityDataType"); +return el.ischeckequality; +} MMBaseValidator.prototype.isXml = function(el) { if (el.mm_isxml != null) return el.mm_isxml; @@ -624,7 +629,6 @@ } else { return el.value; } - } /** @@ -638,7 +642,12 @@ this.log("Unsupported element " + el); return true; // not yet supported } -if (this.isBinary(el)) return true; // not yet supported +if (this.isBinary(el)) { +return true; // not yet supported +} +if (this.isCheckEquality(el)) { +return true; // not yet supported +} if (this.isRequired(el) && this.enforce(el, el.mm_isrequired_enforce)) { if (value == "") { @@ -671,8 +680,19 @@ MMBaseValidator.prototype.serverValidation = function(el) { if (el == null) return; try { +if (this.isBinary(el)) { + el.serverValidated = true; +return $("")[0]; +} +if (this.isCheckEquality(el)) { // Not yet supported + el.serverValidated = true; +return $("")[0]; +} + + var key = this.getDataTypeKey(el); var value = this.getDateValue(el); + var validationUrl = ''; this.getDataTypeArguments(key) + (this.lang != null ? "&lang=" + this.lang : "") + @@ -694,7 +714,8 @@ result = res.responseXML; //console.log("" + res); } else { - result = $(""); + el.serverValidated = true; + result = $("")[0]; } } }); @@ -710,7 +731,11 @@ */ MMBaseValidator.prototype.validResult = function(xml) { try { -return "true" == "" + this.find(xml, 'result')[0].getAttribute("valid"); +if (xml.documentElement) { +return "true" == xml.documentElement.getAttribute("valid"); +} else { +return "true" == "" + $(xml).attr("valid"); +} } catch (ex) { this.log(ex); throw ex; @@ -757,7 +782,7 @@ errorDiv.className = valid ? "mm_check_noerror" : "mm_check_error"; if (errorDiv) { $(errorDiv).empty(); -var errors = serverXml.documentElement.childNodes; +var errors = serverXml.documentElement ? serverXml.documentElement.childNodes : []; this.log("errors for " + element.id + " " + serverXml + " " + errors.length); ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv11480 Modified Files: validation.js.jsp Log Message: CheckEqualityDatatype's are simply not supported with this javascript-library (yet?). So don't do it either See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.60 retrieving revision 1.61 diff -u -b -r1.60 -r1.61 --- validation.js.jsp 15 Apr 2009 15:59:19 - 1.60 +++ validation.js.jsp 28 Apr 2009 14:44:06 - 1.61 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.60 2009/04/15 15:59:19 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.61 2009/04/28 14:44:06 michiel Exp $ */ @@ -327,6 +327,11 @@ el.mm_isbinary = this.hasJavaClass(el, "org\.mmbase\.datatypes\.BinaryDataType"); return el.isbinary; } +MMBaseValidator.prototype.isCheckEquality = function(el) { +if (el.mm_ischeckequality != null) return el.mm_ischeckequality; +el.mm_ischeckequality = this.hasJavaClass(el, "org\.mmbase\.datatypes\.CheckEqualityDataType"); +return el.ischeckequality; +} MMBaseValidator.prototype.isXml = function(el) { if (el.mm_isxml != null) return el.mm_isxml; @@ -640,6 +645,9 @@ if (this.isBinary(el)) { return true; // not yet supported } +if (this.isCheckEquality(el)) { +return true; // not yet supported +} if (this.isRequired(el) && this.enforce(el, el.mm_isrequired_enforce)) { if (value == "") { @@ -674,7 +682,11 @@ try { if (this.isBinary(el)) { el.serverValidated = true; -return $("")[0]; +return $("")[0]; +} +if (this.isCheckEquality(el)) { // Not yet supported + el.serverValidated = true; +return $("")[0]; } @@ -770,7 +782,7 @@ errorDiv.className = valid ? "mm_check_noerror" : "mm_check_error"; if (errorDiv) { $(errorDiv).empty(); -var errors = serverXml.documentElement.childNodes; +var errors = serverXml.documentElement ? serverXml.documentElement.childNodes : []; this.log("errors for " + element.id + " " + serverXml + " " + errors.length); ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv20402 Modified Files: validation.js.jsp Log Message: binaries were not correctly server side validated. This is simply not supported, so do not every try it. (It probably can be supported but it would be not very simple) See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.59 retrieving revision 1.60 diff -u -b -r1.59 -r1.60 --- validation.js.jsp 3 Mar 2009 15:32:35 - 1.59 +++ validation.js.jsp 15 Apr 2009 15:59:19 - 1.60 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.59 2009/03/03 15:32:35 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.60 2009/04/15 15:59:19 michiel Exp $ */ @@ -76,9 +76,10 @@ MMBaseValidator.prototype.onLoad = function(event) { -if (this.root == null) { +if (this.root == null && event != null) { this.root = event.target || event.srcElement; } +//console.log("Root" + this.root); this.addValidation(this.root); //validatePage(target); } @@ -155,7 +156,6 @@ if (typeof(path) == "string") path = path.split(/\s+/); var tagName = path.shift(); - var tag = el == null ? null : el.firstChild; while (tag != null) { if (tag.nodeType == 1) { @@ -624,7 +624,6 @@ } else { return el.value; } - } /** @@ -638,7 +637,9 @@ this.log("Unsupported element " + el); return true; // not yet supported } -if (this.isBinary(el)) return true; // not yet supported +if (this.isBinary(el)) { +return true; // not yet supported +} if (this.isRequired(el) && this.enforce(el, el.mm_isrequired_enforce)) { if (value == "") { @@ -671,8 +672,15 @@ MMBaseValidator.prototype.serverValidation = function(el) { if (el == null) return; try { +if (this.isBinary(el)) { + el.serverValidated = true; +return $("")[0]; +} + + var key = this.getDataTypeKey(el); var value = this.getDateValue(el); + var validationUrl = ''; this.getDataTypeArguments(key) + (this.lang != null ? "&lang=" + this.lang : "") + @@ -694,7 +702,8 @@ result = res.responseXML; //console.log("" + res); } else { - result = $(""); + el.serverValidated = true; + result = $("")[0]; } } }); @@ -710,7 +719,11 @@ */ MMBaseValidator.prototype.validResult = function(xml) { try { -return "true" == "" + this.find(xml, 'result')[0].getAttribute("valid"); +if (xml.documentElement) { +return "true" == xml.documentElement.getAttribute("valid"); +} else { +return "true" == "" + $(xml).attr("valid"); +} } catch (ex) { this.log(ex); throw ex; ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv20614 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: cache 404 too, avoid NPE See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.29 retrieving revision 1.11.2.30 diff -u -b -r1.11.2.29 -r1.11.2.30 --- validation.js.jsp 11 Nov 2008 16:06:36 - 1.11.2.29 +++ validation.js.jsp 3 Mar 2009 15:33:03 - 1.11.2.30 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.29 2008/11/11 16:06:36 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.30 2009/03/03 15:33:03 michiel Exp $ */ @@ -156,7 +156,7 @@ var tagName = path.shift(); -var tag = el.firstChild; +var tag = el == null ? null : el.firstChild; while (tag != null) { if (tag.nodeType == 1) { var name = tag.nodeName.replace(/^.*:/,''); @@ -459,7 +459,7 @@ $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params, complete: function(res, status){ - if (status == "success") { + if (status == "success" || res.status == '404') { dataType = res.responseXML; self.dataTypeCache[el.mm_key] = dataType; } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv20550 Modified Files: validation.js.jsp Log Message: cache 404 too, avoid NPE See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.58 retrieving revision 1.59 diff -u -b -r1.58 -r1.59 --- validation.js.jsp 9 Feb 2009 11:42:13 - 1.58 +++ validation.js.jsp 3 Mar 2009 15:32:35 - 1.59 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.58 2009/02/09 11:42:13 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.59 2009/03/03 15:32:35 michiel Exp $ */ @@ -156,7 +156,7 @@ var tagName = path.shift(); -var tag = el.firstChild; +var tag = el == null ? null : el.firstChild; while (tag != null) { if (tag.nodeType == 1) { var name = tag.nodeName.replace(/^.*:/,''); @@ -459,7 +459,7 @@ $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params, complete: function(res, status){ - if (status == "success") { + if (status == "success" || res.status == '404') { dataType = res.responseXML; self.dataTypeCache[el.mm_key] = dataType; } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv11517 Modified Files: validation.js.jsp Log Message: ported from 1.8 See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.57 retrieving revision 1.58 diff -u -b -r1.57 -r1.58 --- validation.js.jsp 7 Jan 2009 18:30:06 - 1.57 +++ validation.js.jsp 9 Feb 2009 11:42:13 - 1.58 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.57 2009/01/07 18:30:06 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.58 2009/02/09 11:42:13 michiel Exp $ */ @@ -18,13 +18,16 @@ this.logEnabled = false; this.traceEnabled = false; + + +this.dataTypeCache = new Object(); this.invalidElements = 0; //this.changedElements = 0; this.elements= []; this.validateHook; this.root = root; this.setup(); -this.lang = "client"; +this.lang = null; this.sessionName = null; this.id = MMBaseValidator.validators.push(this); if (MMBaseValidator.validators.length == 1) { @@ -36,10 +39,6 @@ } - -MMBaseValidator.dataTypeCache= new Object(); -MMBaseValidator.prefetchedNodemanagers = new Object(); - MMBaseValidator.validators = []; @@ -93,9 +92,11 @@ errorTextArea.value = "LOG: " + msg + "\n" + errorTextArea.value; } else { // firebug console + if (typeof(console) != "undefined") { console.log(msg); } } +} } MMBaseValidator.prototype.trace = function (msg) { @@ -105,9 +106,11 @@ errorTextArea.value = "TRACE: " + msg + "\n" + errorTextArea.value; } else { // firebug console + if (typeof(console) != "undefined") { console.log(msg); } } +} } /** @@ -177,8 +180,8 @@ MMBaseValidator.prototype.isRequired = function(el) { if (el.mm_isrequired != null) return el.mm_isrequired; var re = this.find(this.getDataTypeXml(el), 'datatype required')[0]; -el.mm_isrequired = "true" == "" + re.getAttribute("value"); -el.mm_isrequired_enforce = re.getAttribute("enforce"); +el.mm_isrequired = re != null && ("true" == "" + re.getAttribute("value")); +el.mm_isrequired_enforce = re != null && re.getAttribute("enforce"); return el.mm_isrequired; } @@ -273,6 +276,7 @@ var pattern = new RegExp(javaClass); var xml = this.getDataTypeXml(el); var javaClassElement = this.find(xml, 'datatype class')[0]; +if (! javaClassElement) return false; var name = javaClassElement.getAttribute("name"); if (pattern.test(name)) { return true; @@ -324,34 +328,15 @@ return el.isbinary; } -MMBaseValidator.prototype.INTEGER = /^[+-]?\d+$/; - -MMBaseValidator.prototype.getDecimalSeparator = function () { -if (this.DECIMAL == null) { - var url = ''; - var params = {lang: this.lang }; - var result; - $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params, - complete: function(res, status){ - if (status == "success") { - result = res.responseXML; - } else { - result = $(""); - } - } -}); - var decimal = this.find(result, 'numberInfo decimalSeparator')[0].childNodes[0].nodeValue; - this.DECIMAL = decimal == "." ? "\\." : "[\\.\\" + decimal + "]"; -} -return this.DECIMAL; +MMBaseValidator.prototype.isXml = function(el) { +if (el.mm_isxml != null) return el.mm_isxml; +el.mm_isxml= this.hasJavaClass(el, "org\.mmbase\.datatypes\.XmlDataType"); +return el.mm_isxml; } -MMBaseValidator.prototype.floatRegExp = function() { -if (this.FLOAT == null) { - this.FLOAT = new RegExp("^[+-]?(\\d+|\\d+" + this.getDecimalSeparator() + "\\d*|\\d*" + this.getDecimalSeparator() + "\\d+)(e[+-]?\\d+|)$"); -} -return this.FLOAT; -} +MMBaseValidator.prototype.INTEGER = /^[+-]?\d+$/; + +MMBaseValidator.prototype.FLOAT = /^[+-]?(\d+|\d+\.\d*|\d*\.\d+)(e[+-]?\d+|)$/i; MMBaseValidator.prototype.typeValid = function(el) { if (el.value == "") return true; @@ -360,7 +345,7 @@ if (! this.INTEGER.test(el.value)) return false; } if (this.isFloat(el)) { -if (! this.floatRegExp().test(el.value)) return false; +if (! this.FLOAT.test(el.value)) return false; } return true; @@ -465,16 +450,18 @@ if (el.mm_key == null) { el.mm_key = key.string(); } -var dataType = MMBaseValidator.dataTypeCache[el.mm_key]; +var dataT
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv26095 Modified Files: validation.js.jsp Log Message: indentation See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.56 retrieving revision 1.57 diff -u -b -r1.56 -r1.57 --- validation.js.jsp 30 Oct 2008 12:43:01 - 1.56 +++ validation.js.jsp 7 Jan 2009 18:30:06 - 1.57 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.56 2008/10/30 12:43:01 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.57 2009/01/07 18:30:06 michiel Exp $ */ @@ -467,7 +467,6 @@ } var dataType = MMBaseValidator.dataTypeCache[el.mm_key]; if (dataType == null) { - var url = ''; var params = this.getDataTypeArguments(key); var self = this; ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv11522 Modified Files: validation.js.jsp Log Message: support for an 'mmValidate' event See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.55 retrieving revision 1.56 diff -u -b -r1.55 -r1.56 --- validation.js.jsp 23 Oct 2008 14:42:06 - 1.55 +++ validation.js.jsp 30 Oct 2008 12:43:01 - 1.56 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.55 2008/10/23 14:42:06 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.56 2008/10/30 12:43:01 michiel Exp $ */ @@ -807,6 +807,7 @@ if (this.validateHook) { this.validateHook(valid, element); } +$(this).trigger("mmValidate", [valid, element]); } /** @@ -896,12 +897,14 @@ if (this.validateHook) { this.validateHook(valid, entry); } +$(this).trigger("mmValidate", [valid, entry]); } if (els.length == 0) { if (this.validateHook) { this.validateHook(this.invalidElements == 0); } +$(this).trigger("mmValidate", [this.invalidElements == 0]); } el = null; } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv14022 Modified Files: validation.js.jsp Log Message: made caches static, made it possible to prefech node managers by comma separated list See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.54 retrieving revision 1.55 diff -u -b -r1.54 -r1.55 --- validation.js.jsp 12 Aug 2008 19:46:14 - 1.54 +++ validation.js.jsp 23 Oct 2008 14:42:06 - 1.55 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.54 2008/08/12 19:46:14 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.55 2008/10/23 14:42:06 michiel Exp $ */ @@ -18,9 +18,6 @@ this.logEnabled = false; this.traceEnabled = false; - - -this.dataTypeCache = new Object(); this.invalidElements = 0; //this.changedElements = 0; this.elements= []; @@ -39,6 +36,10 @@ } + +MMBaseValidator.dataTypeCache= new Object(); +MMBaseValidator.prefetchedNodemanagers = new Object(); + MMBaseValidator.validators = []; @@ -464,7 +465,7 @@ if (el.mm_key == null) { el.mm_key = key.string(); } -var dataType = this.dataTypeCache[el.mm_key]; +var dataType = MMBaseValidator.dataTypeCache[el.mm_key]; if (dataType == null) { var url = ''; @@ -474,7 +475,7 @@ complete: function(res, status){ if (status == "success") { dataType = res.responseXML; - self.dataTypeCache[el.mm_key] = dataType; + MMBaseValidator.dataTypeCache[el.mm_key] = dataType; } } }); @@ -536,11 +537,17 @@ * be done for every field. * */ -MMBaseValidator.prototype.prefetchNodeManager = function(nodemanager) { +MMBaseValidator.prototype.prefetchNodeManager = function(n) { +var nodemanagers = n.split(","); +for (var i in nodemanagers) { +var nodemanager = nodemanagers[i]; +if (! MMBaseValidator.prefetchedNodemanagers[nodemanager]) { var url = ''; var params = {nodemanager: nodemanager }; var self = this; +MMBaseValidator.prefetchedNodemanagers[nodemanager] = true; + $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params, complete: function(res, status){ if (status == "success") { @@ -551,13 +558,15 @@ var key = new Key(); key.nodeManager = nodemanager; key.field = fields[i].getAttribute("name"); - self.dataTypeCache[key.string()] = fields[i]; +MMBaseValidator.dataTypeCache[key.string()] = fields[i]; } //console.log("" + res); } } }); +} +} } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv8949 Modified Files: validation.js.jsp Log Message: work if 'window' was specified as root See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.53 retrieving revision 1.54 diff -u -b -r1.53 -r1.54 --- validation.js.jsp 12 Aug 2008 19:41:31 - 1.53 +++ validation.js.jsp 12 Aug 2008 19:46:14 - 1.54 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.53 2008/08/12 19:41:31 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.54 2008/08/12 19:46:14 michiel Exp $ */ @@ -62,7 +62,10 @@ MMBaseValidator.prototype.setup = function(el) { -if (el != null) this.root = el; +if (el != null) { + this.root = el; + if (this.root == window) this.root = this.root.document; +} if (this.root != null) { var self = this; $(document).ready(function(event) { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv31022 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: a bit more backwards compatible See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.27 retrieving revision 1.11.2.28 diff -u -b -r1.11.2.27 -r1.11.2.28 --- validation.js.jsp 18 Apr 2008 08:53:54 - 1.11.2.27 +++ validation.js.jsp 18 Apr 2008 08:58:09 - 1.11.2.28 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.27 2008/04/18 08:53:54 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.28 2008/04/18 08:58:09 michiel Exp $ */ @@ -62,7 +62,10 @@ MMBaseValidator.prototype.setup = function(el) { -if (el != null) this.root = el; +if (el != null) { + this.root = el; + if (this.root == window) this.root = this.root.document; +} if (this.root != null) { var self = this; $(document).ready(function(event) { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv30884 Modified Files: validation.js.jsp Log Message: simplified api a bit, and documnted that. Also moved 'watched' functionality inside the MMBaseVAlidator namespace See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.51 retrieving revision 1.52 diff -u -b -r1.51 -r1.52 --- validation.js.jsp 14 Apr 2008 15:46:48 - 1.51 +++ validation.js.jsp 18 Apr 2008 08:54:28 - 1.52 @@ -4,42 +4,22 @@ /** * See test.jspx for example usage. - * new MMBaseValidator(window, root): attaches events to all elements in root when loading window. - * new MMBaseValidator(window): attaches events to all elements in window when loading window. + * new MMBaseValidator(el): attaches events to all elements in elwhen ready. * new MMBaseValidator(): attaches no events yet. You could replace some functions, add hooks, set settings first or so. - * then call validator.setup(window[,root]). + * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.51 2008/04/14 15:46:48 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.52 2008/04/18 08:54:28 michiel Exp $ */ -var validators = new Array(); -// I don't know how to do timeouts in a OO way. -function watcher() { -for (var i = 0; i < validators.length; i++) { - var validator = validators[i]; - var el = validator.activeElement; - var now = new Date().getTime(); -if (el != null) { -if (! el.serverValidated) { - if (new Date(validator.checkAfter + el.lastChange.getTime()) < now) { - validators[i].validateElement(validators[i].activeElement, true); - } -} -} -} -setTimeout("watcher()", 150); - -} -setTimeout("watcher()", 500); - function MMBaseValidator(root) { this.logEnabled = false; this.traceEnabled = false; + this.dataTypeCache = new Object(); this.invalidElements = 0; //this.changedElements = 0; @@ -49,14 +29,40 @@ this.setup(); this.lang = null; this.sessionName = null; -this.id = validators.push(this); +this.id = MMBaseValidator.validators.push(this); +if (MMBaseValidator.validators.length == 1) { + setTimeout(MMBaseValidator.watcher, 500); +} this.activeElement = null; this.checkAfter= 600; this.logArea = "logarea"; } -MMBaseValidator.prototype.setup = function() { +MMBaseValidator.validators = []; + + +MMBaseValidator.watcher = function() { +for (var i = 0; i < MMBaseValidator.validators.length; i++) { + var validator = MMBaseValidator.validators[i]; + var el = validator.activeElement; + var now = new Date().getTime(); +if (el != null) { +if (! el.serverValidated) { + if (new Date(validator.checkAfter + el.lastChange.getTime()) < now) { + MMBaseValidator.validators[i].validateElement(MMBaseValidator.validators[i].activeElement, true); + } +} +} +} +setTimeout(MMBaseValidator.watcher, 150); + +} + + + +MMBaseValidator.prototype.setup = function(el) { +if (el != null) this.root = el; if (this.root != null) { var self = this; $(document).ready(function(event) { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv30823 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: simplified api a bit, and documnted that. Also moved 'watched' functionality inside the MMBaseVAlidator namespace See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.26 retrieving revision 1.11.2.27 diff -u -b -r1.11.2.26 -r1.11.2.27 --- validation.js.jsp 14 Apr 2008 15:46:23 - 1.11.2.26 +++ validation.js.jsp 18 Apr 2008 08:53:54 - 1.11.2.27 @@ -4,42 +4,22 @@ /** * See test.jspx for example usage. - * new MMBaseValidator(window, root): attaches events to all elements in root when loading window. - * new MMBaseValidator(window): attaches events to all elements in window when loading window. + * new MMBaseValidator(el): attaches events to all elements in elwhen ready. * new MMBaseValidator(): attaches no events yet. You could replace some functions, add hooks, set settings first or so. - * then call validator.setup(window[,root]). + * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.26 2008/04/14 15:46:23 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.27 2008/04/18 08:53:54 michiel Exp $ */ -var validators = new Array(); -// I don't know how to do timeouts in a OO way. -function watcher() { -for (var i = 0; i < validators.length; i++) { - var validator = validators[i]; - var el = validator.activeElement; - var now = new Date().getTime(); -if (el != null) { -if (! el.serverValidated) { - if (new Date(validator.checkAfter + el.lastChange.getTime()) < now) { - validators[i].validateElement(validators[i].activeElement, true); - } -} -} -} -setTimeout("watcher()", 150); - -} -setTimeout("watcher()", 500); - function MMBaseValidator(root) { this.logEnabled = false; this.traceEnabled = false; + this.dataTypeCache = new Object(); this.invalidElements = 0; //this.changedElements = 0; @@ -49,14 +29,40 @@ this.setup(); this.lang = null; this.sessionName = null; -this.id = validators.push(this); +this.id = MMBaseValidator.validators.push(this); +if (MMBaseValidator.validators.length == 1) { + setTimeout(MMBaseValidator.watcher, 500); +} this.activeElement = null; this.checkAfter= 600; this.logArea = "logarea"; } -MMBaseValidator.prototype.setup = function() { +MMBaseValidator.validators = []; + + +MMBaseValidator.watcher = function() { +for (var i = 0; i < MMBaseValidator.validators.length; i++) { + var validator = MMBaseValidator.validators[i]; + var el = validator.activeElement; + var now = new Date().getTime(); +if (el != null) { +if (! el.serverValidated) { + if (new Date(validator.checkAfter + el.lastChange.getTime()) < now) { + MMBaseValidator.validators[i].validateElement(MMBaseValidator.validators[i].activeElement, true); + } +} +} +} +setTimeout(MMBaseValidator.watcher, 150); + +} + + + +MMBaseValidator.prototype.setup = function(el) { +if (el != null) this.root = el; if (this.root != null) { var self = this; $(document).ready(function(event) { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv16392 Modified Files: validation.js.jsp Log Message: ported 'removeValidation' from 1.8 See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.50 retrieving revision 1.51 diff -u -b -r1.50 -r1.51 --- validation.js.jsp 3 Apr 2008 16:23:33 - 1.50 +++ validation.js.jsp 14 Apr 2008 15:46:48 - 1.51 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.50 2008/04/03 16:23:33 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.51 2008/04/14 15:46:48 michiel Exp $ */ var validators = new Array(); @@ -35,7 +35,7 @@ } setTimeout("watcher()", 500); -function MMBaseValidator(w, root) { +function MMBaseValidator(root) { this.logEnabled = false; this.traceEnabled = false; @@ -43,10 +43,10 @@ this.dataTypeCache = new Object(); this.invalidElements = 0; //this.changedElements = 0; -this.elements= new Array(); +this.elements= []; this.validateHook; -this.setup(w); this.root = root; +this.setup(); this.lang = null; this.sessionName = null; this.id = validators.push(this); @@ -56,8 +56,8 @@ } -MMBaseValidator.prototype.setup = function(w) { -if (w != null) { +MMBaseValidator.prototype.setup = function() { +if (this.root != null) { var self = this; $(document).ready(function(event) { self.onLoad(event); @@ -778,6 +778,29 @@ return this.invalidElements == 0; } +MMBaseValidator.prototype.removeValidation = function(el) { +if (el == null) { +el = document.documentElement; +} +var self = this; +var els = $(el).find(".mm_validate *").each(function() { + var entry = this; + if ($.inArray(entry, self.elements)) { + if (! entry.prevValid) self.invalidElements--; + $(entry).unbind(); + var newElements = []; + $(self.elements).each(function() { + if (this != entry) { + newElements.push(this); + } + }); + self.elements = newElements; + } +}); + +} + + /** * Adds event handlers to all mm_validate form entries */ ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv16349 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: typos See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.25 retrieving revision 1.11.2.26 diff -u -b -r1.11.2.25 -r1.11.2.26 --- validation.js.jsp 14 Apr 2008 14:19:18 - 1.11.2.25 +++ validation.js.jsp 14 Apr 2008 15:46:23 - 1.11.2.26 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.25 2008/04/14 14:19:18 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.26 2008/04/14 15:46:23 michiel Exp $ */ var validators = new Array(); @@ -785,13 +785,13 @@ var self = this; var els = $(el).find(".mm_validate *").each(function() { var entry = this; - if ($.inArray(entry(self.elements))) { + if ($.inArray(entry, self.elements)) { if (! entry.prevValid) self.invalidElements--; $(entry).unbind(); var newElements = []; $(self.elements).each(function() { if (this != entry) { - newWlements.push(this); + newElements.push(this); } }); self.elements = newElements; ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv11870 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: simplified See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.24 retrieving revision 1.11.2.25 diff -u -b -r1.11.2.24 -r1.11.2.25 --- validation.js.jsp 4 Apr 2008 10:16:20 - 1.11.2.24 +++ validation.js.jsp 14 Apr 2008 14:19:18 - 1.11.2.25 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.24 2008/04/04 10:16:20 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.25 2008/04/14 14:19:18 michiel Exp $ */ var validators = new Array(); @@ -35,7 +35,7 @@ } setTimeout("watcher()", 500); -function MMBaseValidator(w, root) { +function MMBaseValidator(root) { this.logEnabled = false; this.traceEnabled = false; @@ -45,8 +45,8 @@ //this.changedElements = 0; this.elements= []; this.validateHook; -this.setup(w); this.root = root; +this.setup(); this.lang = null; this.sessionName = null; this.id = validators.push(this); @@ -56,8 +56,8 @@ } -MMBaseValidator.prototype.setup = function(w) { -if (w != null) { +MMBaseValidator.prototype.setup = function() { +if (this.root != null) { var self = this; $(document).ready(function(event) { self.onLoad(event); @@ -800,6 +800,7 @@ } + /** * Adds event handlers to all mm_validate form entries */ ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv9699 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: added a method to remove validation bindings See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.23 retrieving revision 1.11.2.24 diff -u -b -r1.11.2.23 -r1.11.2.24 --- validation.js.jsp 3 Apr 2008 16:23:12 - 1.11.2.23 +++ validation.js.jsp 4 Apr 2008 10:16:20 - 1.11.2.24 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.23 2008/04/03 16:23:12 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.24 2008/04/04 10:16:20 michiel Exp $ */ var validators = new Array(); @@ -43,7 +43,7 @@ this.dataTypeCache = new Object(); this.invalidElements = 0; //this.changedElements = 0; -this.elements= new Array(); +this.elements= []; this.validateHook; this.setup(w); this.root = root; @@ -778,6 +778,28 @@ return this.invalidElements == 0; } +MMBaseValidator.prototype.removeValidation = function(el) { +if (el == null) { +el = document.documentElement; +} +var self = this; +var els = $(el).find(".mm_validate *").each(function() { + var entry = this; + if ($.inArray(entry(self.elements))) { + if (! entry.prevValid) self.invalidElements--; + $(entry).unbind(); + var newElements = []; + $(self.elements).each(function() { + if (this != entry) { + newWlements.push(this); + } + }); + self.elements = newElements; + } +}); + +} + /** * Adds event handlers to all mm_validate form entries */ ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv20519 Modified Files: validation.js.jsp Log Message: dammit, still broken by one space See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.49 retrieving revision 1.50 diff -u -b -r1.49 -r1.50 --- validation.js.jsp 3 Apr 2008 16:14:29 - 1.49 +++ validation.js.jsp 3 Apr 2008 16:23:33 - 1.50 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.49 2008/04/03 16:14:29 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.50 2008/04/03 16:23:33 michiel Exp $ */ var validators = new Array(); @@ -139,7 +139,7 @@ */ MMBaseValidator.prototype.find = function(el, path, r) { if (r == null) r = []; -if (typeof(path) == "string") path = path.split(" "); +if (typeof(path) == "string") path = path.split(/\s+/); var tagName = path.shift(); ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv20460 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: dammit, still broken by one space See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.22 retrieving revision 1.11.2.23 diff -u -b -r1.11.2.22 -r1.11.2.23 --- validation.js.jsp 3 Apr 2008 16:14:03 - 1.11.2.22 +++ validation.js.jsp 3 Apr 2008 16:23:12 - 1.11.2.23 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.22 2008/04/03 16:14:03 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.23 2008/04/03 16:23:12 michiel Exp $ */ var validators = new Array(); @@ -139,7 +139,7 @@ */ MMBaseValidator.prototype.find = function(el, path, r) { if (r == null) r = []; -if (typeof(path) == "string") path = path.split(" "); +if (typeof(path) == "string") path = path.split(/\s+/); var tagName = path.shift(); ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv20326 Modified Files: validation.js.jsp Log Message: work around a bug in IE, which is not worked around by jquery. (http://dev.jquery.com/ticket/155) See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.48 retrieving revision 1.49 diff -u -b -r1.48 -r1.49 --- validation.js.jsp 1 Apr 2008 15:47:11 - 1.48 +++ validation.js.jsp 3 Apr 2008 16:14:29 - 1.49 @@ -10,11 +10,13 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.48 2008/04/01 15:47:11 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.49 2008/04/03 16:14:29 michiel Exp $ */ var validators = new Array(); + +// I don't know how to do timeouts in a OO way. function watcher() { for (var i = 0; i < validators.length; i++) { var validator = validators[i]; @@ -119,7 +121,43 @@ } MMBaseValidator.prototype.isChanged = function(el) { +if (el != null) { return this.getValue(el) != el.originalValue; +} else { + var els = this.elements; + for (var i = 0; i < els.length; i++) { +var entry = els[i]; + if (this.isChanged(entry)) return true; + } + return false; +} +} + +/** + * Work around http://dev.jquery.com/ticket/155 + * Actually, or course, it's a bug in that horrible browser IE. +*/ +MMBaseValidator.prototype.find = function(el, path, r) { +if (r == null) r = []; +if (typeof(path) == "string") path = path.split(" "); + +var tagName = path.shift(); + +var tag = el.firstChild; +while (tag != null) { + if (tag.nodeType == 1) { + var name = tag.nodeName.replace(/^.*:/,''); + if (name == tagName) { + if (path.length == 0) { + r.push(tag); + } else { + this.find(tag, path, r); + } + } + } + tag = tag.nextSibling; +} +return r; } @@ -128,7 +166,7 @@ */ MMBaseValidator.prototype.isRequired = function(el) { if (el.mm_isrequired != null) return el.mm_isrequired; -var re = $(this.getDataTypeXml(el)).find('datatype required')[0]; +var re = this.find(this.getDataTypeXml(el), 'datatype required')[0]; el.mm_isrequired = "true" == "" + re.getAttribute("value"); el.mm_isrequired_enforce = re.getAttribute("enforce"); return el.mm_isrequired; @@ -142,7 +180,7 @@ var xml = this.getDataTypeXml(el); if (el.mm_minLength_set == null) { -var ml = $(xml).find('datatype minLength')[0]; +var ml = this.find(xml, 'datatype minLength')[0]; if (ml != null) { el.mm_minLength = ml.getAttribute("value"); el.mm_minLength_enforce = ml.getAttribute("enforce"); @@ -154,7 +192,7 @@ } if (el.mm_maxLength_set == null) { -var ml = $(xml).find('datatype maxLength')[0]; +var ml = this.find(xml, 'datatype maxLength')[0]; if (ml != null) { el.mm_maxLength = ml.getAttribute("value"); el.mm_maxLength_enforce = ml.getAttribute("enforce"); @@ -167,7 +205,7 @@ } if (el.mm_length_set == null) { -var l = $(xml).find('datatype length')[0]; +var l = this.find(xml, 'datatype length')[0]; if (l != null) { el.mm_length = l.getAttribute("value"); el.mm_length_enforce = l.getAttribute("enforce"); @@ -210,7 +248,7 @@ if (this.isString(el)) { var xml = this.getDataTypeXml(el); if (el.mm_pattern == null) { -var javaPattern = $(xml).find('datatype pattern')[0].getAttribute("value"); +var javaPattern = this.find(xml, 'datatype pattern')[0].getAttribute("value"); el.mm_pattern = this.javaScriptPattern(javaPattern); if (el.mm_pattern == null) return true; this.trace("pattern : " + el.mm_pattern + " " + el.value); @@ -224,7 +262,7 @@ MMBaseValidator.prototype.hasJavaClass = function(el, javaClass) { var pattern = new RegExp(javaClass); var xml = this.getDataTypeXml(el); -var javaClassElement = $(xml).find('datatype class')[0]; +var javaClassElement = this.find(xml, 'datatype class')[0]; var name = javaClassElement.getAttribute("name"); if (pattern.test(name)) { return true; @@ -325,7 +363,7 @@ var numeric = this.isNumeric(el); { if (el.mm_minInc_set == null) { -var minInclusive = $(xml).find('datatype minInclusive')[0]; +var minInclusive = this.find(xml, 'datatype minInclusive')[0]; el.mm_minInc = this.getValueAttribute(numeric, minInclusive);
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv20268 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: work around a bug in IE, which is not worked around by jquery. (http://dev.jquery.com/ticket/155) See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.21 retrieving revision 1.11.2.22 diff -u -b -r1.11.2.21 -r1.11.2.22 --- validation.js.jsp 1 Apr 2008 15:46:45 - 1.11.2.21 +++ validation.js.jsp 3 Apr 2008 16:14:03 - 1.11.2.22 @@ -10,11 +10,13 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.21 2008/04/01 15:46:45 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.22 2008/04/03 16:14:03 michiel Exp $ */ var validators = new Array(); + +// I don't know how to do timeouts in a OO way. function watcher() { for (var i = 0; i < validators.length; i++) { var validator = validators[i]; @@ -119,7 +121,43 @@ } MMBaseValidator.prototype.isChanged = function(el) { +if (el != null) { return this.getValue(el) != el.originalValue; +} else { + var els = this.elements; + for (var i = 0; i < els.length; i++) { +var entry = els[i]; + if (this.isChanged(entry)) return true; + } + return false; +} +} + +/** + * Work around http://dev.jquery.com/ticket/155 + * Actually, or course, it's a bug in that horrible browser IE. +*/ +MMBaseValidator.prototype.find = function(el, path, r) { +if (r == null) r = []; +if (typeof(path) == "string") path = path.split(" "); + +var tagName = path.shift(); + +var tag = el.firstChild; +while (tag != null) { + if (tag.nodeType == 1) { + var name = tag.nodeName.replace(/^.*:/,''); + if (name == tagName) { + if (path.length == 0) { + r.push(tag); + } else { + this.find(tag, path, r); + } + } + } + tag = tag.nextSibling; +} +return r; } @@ -128,7 +166,7 @@ */ MMBaseValidator.prototype.isRequired = function(el) { if (el.mm_isrequired != null) return el.mm_isrequired; -var re = $(this.getDataTypeXml(el)).find('datatype required')[0]; +var re = this.find(this.getDataTypeXml(el), 'datatype required')[0]; el.mm_isrequired = "true" == "" + re.getAttribute("value"); el.mm_isrequired_enforce = re.getAttribute("enforce"); return el.mm_isrequired; @@ -142,7 +180,7 @@ var xml = this.getDataTypeXml(el); if (el.mm_minLength_set == null) { -var ml = $(xml).find('datatype minLength')[0]; +var ml = this.find(xml, 'datatype minLength')[0]; if (ml != null) { el.mm_minLength = ml.getAttribute("value"); el.mm_minLength_enforce = ml.getAttribute("enforce"); @@ -154,7 +192,7 @@ } if (el.mm_maxLength_set == null) { -var ml = $(xml).find('datatype maxLength')[0]; +var ml = this.find(xml, 'datatype maxLength')[0]; if (ml != null) { el.mm_maxLength = ml.getAttribute("value"); el.mm_maxLength_enforce = ml.getAttribute("enforce"); @@ -167,7 +205,7 @@ } if (el.mm_length_set == null) { -var l = $(xml).find('datatype length')[0]; +var l = this.find(xml, 'datatype length')[0]; if (l != null) { el.mm_length = l.getAttribute("value"); el.mm_length_enforce = l.getAttribute("enforce"); @@ -210,7 +248,7 @@ if (this.isString(el)) { var xml = this.getDataTypeXml(el); if (el.mm_pattern == null) { -var javaPattern = $(xml).find('datatype pattern')[0].getAttribute("value"); +var javaPattern = this.find(xml, 'datatype pattern')[0].getAttribute("value"); el.mm_pattern = this.javaScriptPattern(javaPattern); if (el.mm_pattern == null) return true; this.trace("pattern : " + el.mm_pattern + " " + el.value); @@ -224,7 +262,7 @@ MMBaseValidator.prototype.hasJavaClass = function(el, javaClass) { var pattern = new RegExp(javaClass); var xml = this.getDataTypeXml(el); -var javaClassElement = $(xml).find('datatype class')[0]; +var javaClassElement = this.find(xml, 'datatype class')[0]; var name = javaClassElement.getAttribute("name"); if (pattern.test(name)) { return true; @@ -325,7 +363,7 @@ var numeric = this.isNumeric(el); { if (el.mm_minInc_set == null) { -var minInclusive = $(xml).find('datatype minInclusive')[0]; +var minInclusive = this.find(xml, 'datatype minInclusive')[0]; el.
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv11982 Modified Files: validation.js.jsp Log Message: better to setup asynchronislou, because otherwise it will not be before the first validation of the fields See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.47 retrieving revision 1.48 diff -u -b -r1.47 -r1.48 --- validation.js.jsp 1 Apr 2008 11:28:38 - 1.47 +++ validation.js.jsp 1 Apr 2008 15:47:11 - 1.48 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.47 2008/04/01 11:28:38 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.48 2008/04/01 15:47:11 michiel Exp $ */ var validators = new Array(); @@ -43,7 +43,6 @@ //this.changedElements = 0; this.elements= new Array(); this.validateHook; - this.setup(w); this.root = root; this.lang = null; @@ -470,7 +469,7 @@ var url = ''; var params = {nodemanager: nodemanager }; var self = this; -$.ajax({url: url, type: "GET", dataType: "xml", data: params, +$.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params, complete: function(res, status){ if (status == "success") { var dataTypes = res.responseXML; @@ -635,6 +634,8 @@ el.serverValidated = true; result = res.responseXML; //console.log("" + res); + } else { + result = $(""); } } }); ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv11918 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: better to setup asynchronislou, because otherwise it will not be before the first validation of the fields See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.20 retrieving revision 1.11.2.21 diff -u -b -r1.11.2.20 -r1.11.2.21 --- validation.js.jsp 1 Apr 2008 11:28:18 - 1.11.2.20 +++ validation.js.jsp 1 Apr 2008 15:46:45 - 1.11.2.21 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.20 2008/04/01 11:28:18 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.21 2008/04/01 15:46:45 michiel Exp $ */ var validators = new Array(); @@ -43,7 +43,6 @@ //this.changedElements = 0; this.elements= new Array(); this.validateHook; - this.setup(w); this.root = root; this.lang = null; @@ -470,7 +469,7 @@ var url = ''; var params = {nodemanager: nodemanager }; var self = this; -$.ajax({url: url, type: "GET", dataType: "xml", data: params, +$.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params, complete: function(res, status){ if (status == "success") { var dataTypes = res.responseXML; @@ -635,6 +634,8 @@ el.serverValidated = true; result = res.responseXML; //console.log("" + res); + } else { + result = $(""); } } }); ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv4880 Modified Files: validation.js.jsp Log Message: bugfix See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.46 retrieving revision 1.47 diff -u -b -r1.46 -r1.47 --- validation.js.jsp 31 Mar 2008 15:51:51 - 1.46 +++ validation.js.jsp 1 Apr 2008 11:28:38 - 1.47 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.46 2008/03/31 15:51:51 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.47 2008/04/01 11:28:38 michiel Exp $ */ var validators = new Array(); @@ -407,8 +407,11 @@ } } }); + this.log("Found " + dataType); +} else { + this.trace("Found in cache " + dataType); } return dataType; } @@ -477,7 +480,7 @@ var key = new Key(); key.nodeManager = nodemanager; key.field = fields[i].getAttribute("name"); - self.dataTypeCache[key.string()] = $(res.responseText)[0]; + self.dataTypeCache[key.string()] = fields[i]; } //console.log("" + res); } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv4820 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: bugfix See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.19 retrieving revision 1.11.2.20 diff -u -b -r1.11.2.19 -r1.11.2.20 --- validation.js.jsp 31 Mar 2008 15:51:19 - 1.11.2.19 +++ validation.js.jsp 1 Apr 2008 11:28:18 - 1.11.2.20 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.19 2008/03/31 15:51:19 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.20 2008/04/01 11:28:18 michiel Exp $ */ var validators = new Array(); @@ -407,8 +407,11 @@ } } }); + this.log("Found " + dataType); +} else { + this.trace("Found in cache " + dataType); } return dataType; } @@ -477,7 +480,7 @@ var key = new Key(); key.nodeManager = nodemanager; key.field = fields[i].getAttribute("name"); - self.dataTypeCache[key.string()] = $(res.responseText)[0]; + self.dataTypeCache[key.string()] = fields[i]; } //console.log("" + res); } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv5259 Modified Files: validation.js.jsp Log Message: a this pointed to the wrong object See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.45 retrieving revision 1.46 diff -u -b -r1.45 -r1.46 --- validation.js.jsp 28 Mar 2008 15:47:54 - 1.45 +++ validation.js.jsp 31 Mar 2008 15:51:51 - 1.46 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.45 2008/03/28 15:47:54 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.46 2008/03/31 15:51:51 michiel Exp $ */ var validators = new Array(); @@ -477,7 +477,7 @@ var key = new Key(); key.nodeManager = nodemanager; key.field = fields[i].getAttribute("name"); - this.dataTypeCache[key.string()] = $(res.responseText)[0]; + self.dataTypeCache[key.string()] = $(res.responseText)[0]; } //console.log("" + res); } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv5212 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: a this pointed to the wrong object See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.18 retrieving revision 1.11.2.19 diff -u -b -r1.11.2.18 -r1.11.2.19 --- validation.js.jsp 28 Mar 2008 15:45:48 - 1.11.2.18 +++ validation.js.jsp 31 Mar 2008 15:51:19 - 1.11.2.19 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.18 2008/03/28 15:45:48 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.19 2008/03/31 15:51:19 michiel Exp $ */ var validators = new Array(); @@ -477,7 +477,7 @@ var key = new Key(); key.nodeManager = nodemanager; key.field = fields[i].getAttribute("name"); - this.dataTypeCache[key.string()] = $(res.responseText)[0]; + self.dataTypeCache[key.string()] = $(res.responseText)[0]; } //console.log("" + res); } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv1070 Modified Files: validation.js.jsp Log Message: if no elements at all, also call the validateHook See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.43 retrieving revision 1.44 diff -u -b -r1.43 -r1.44 --- validation.js.jsp 20 Mar 2008 14:00:38 - 1.43 +++ validation.js.jsp 20 Mar 2008 14:07:56 - 1.44 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.43 2008/03/20 14:00:38 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.44 2008/03/20 14:07:56 michiel Exp $ */ var validators = new Array(); @@ -726,9 +726,10 @@ if (el == null) { el = document.documentElement; } -this.log("Will validate elements in " + el + " (" + els.length + " elements)"); var els = getElementsByClass(el, "mm_validate"); +this.log("Will validate elements in " + el + " (" + els.length + " elements)"); + for (var i = 0; i < els.length; i++) { var entry = els[i]; if (entry.type == "textarea") { ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv767 Modified Files: validation.js.jsp Log Message: if no elements at all, also call the validateHook See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.42 retrieving revision 1.43 diff -u -b -r1.42 -r1.43 --- validation.js.jsp 21 Dec 2007 13:45:04 - 1.42 +++ validation.js.jsp 20 Mar 2008 14:00:38 - 1.43 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.42 2007/12/21 13:45:04 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.43 2008/03/20 14:00:38 michiel Exp $ */ var validators = new Array(); @@ -726,7 +726,7 @@ if (el == null) { el = document.documentElement; } -this.log("Will validate " + el); +this.log("Will validate elements in " + el + " (" + els.length + " elements)"); var els = getElementsByClass(el, "mm_validate"); for (var i = 0; i < els.length; i++) { @@ -772,6 +772,11 @@ } } +if (els.length == 0) { +if (this.validateHook) { +this.validateHook(this.invalidElements == 0); +} +} el = null; } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs
[MMBASE CVS] html/mmbase/validation validation.js.jsp
Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv674 Modified Files: Tag: MMBase-1_8 validation.js.jsp Log Message: if no elements at all, also call the validateHook See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp === RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.11.2.16 retrieving revision 1.11.2.17 diff -u -b -r1.11.2.16 -r1.11.2.17 --- validation.js.jsp 21 Dec 2007 13:43:31 - 1.11.2.16 +++ validation.js.jsp 20 Mar 2008 13:59:35 - 1.11.2.17 @@ -10,7 +10,7 @@ * then call validator.setup(window[,root]). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.11.2.16 2007/12/21 13:43:31 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.11.2.17 2008/03/20 13:59:35 michiel Exp $ */ var validators = new Array(); @@ -726,9 +726,9 @@ if (el == null) { el = document.documentElement; } -this.log("Will validate " + el); - var els = getElementsByClass(el, "mm_validate"); +this.log("Will validate elements in " + el + " (" + els.length + " elements)"); + for (var i = 0; i < els.length; i++) { var entry = els[i]; if (entry.type == "textarea") { @@ -772,6 +772,11 @@ } } +if (els.length == 0) { +if (this.validateHook) { +this.validateHook(this.invalidElements == 0); +} +} el = null; } ___ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs