Merge pull request #717 from walkermatt/master
Support for PropertyIsNull Filter
This commit is contained in:
@@ -26,7 +26,8 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
|
||||
* - OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO = "<=";
|
||||
* - OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO = ">=";
|
||||
* - OpenLayers.Filter.Comparison.BETWEEN = "..";
|
||||
* - OpenLayers.Filter.Comparison.LIKE = "~";
|
||||
* - OpenLayers.Filter.Comparison.LIKE = "~";
|
||||
* - OpenLayers.Filter.Comparison.IS_NULL = "NULL";
|
||||
*/
|
||||
type: null,
|
||||
|
||||
@@ -154,6 +155,9 @@ OpenLayers.Filter.Comparison = OpenLayers.Class(OpenLayers.Filter, {
|
||||
var regexp = new RegExp(this.value, "gi");
|
||||
result = regexp.test(got);
|
||||
break;
|
||||
case OpenLayers.Filter.Comparison.IS_NULL:
|
||||
result = (got === null);
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
},
|
||||
@@ -260,3 +264,4 @@ OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO = "<=";
|
||||
OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO = ">=";
|
||||
OpenLayers.Filter.Comparison.BETWEEN = "..";
|
||||
OpenLayers.Filter.Comparison.LIKE = "~";
|
||||
OpenLayers.Filter.Comparison.IS_NULL = "NULL";
|
||||
|
||||
@@ -212,6 +212,13 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
|
||||
"Function": function(node, obj) {
|
||||
//TODO write decoder for it
|
||||
return;
|
||||
},
|
||||
"PropertyIsNull": function(node, obj) {
|
||||
var filter = new OpenLayers.Filter.Comparison({
|
||||
type: OpenLayers.Filter.Comparison.IS_NULL
|
||||
});
|
||||
this.readChildNodes(node, filter);
|
||||
obj.filters.push(filter);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -448,6 +455,11 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
|
||||
this.writeOgcExpression(params[i], node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
"PropertyIsNull": function(filter) {
|
||||
var node = this.createElementNSPlus("ogc:PropertyIsNull");
|
||||
this.writeNode("PropertyName", filter, node);
|
||||
return node;
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -480,6 +492,7 @@ OpenLayers.Format.Filter.v1 = OpenLayers.Class(OpenLayers.Format.XML, {
|
||||
">=": "PropertyIsGreaterThanOrEqualTo",
|
||||
"..": "PropertyIsBetween",
|
||||
"~": "PropertyIsLike",
|
||||
"NULL": "PropertyIsNull",
|
||||
"BBOX": "BBOX",
|
||||
"DWITHIN": "DWITHIN",
|
||||
"WITHIN": "WITHIN",
|
||||
|
||||
Reference in New Issue
Block a user