[Commits] r2467 - in core/trunk/geoext: lib/GeoExt/widgets tests/lib/GeoExt/widgets
commits at geoext.org
commits at geoext.org
Thu Oct 21 13:00:55 CEST 2010
Author: elemoine
Date: 2010-10-21 13:00:54 +0200 (Thu, 21 Oct 2010)
New Revision: 2467
Modified:
core/trunk/geoext/lib/GeoExt/widgets/form.js
core/trunk/geoext/tests/lib/GeoExt/widgets/form.html
Log:
fix form.toFilter: AND filters should only be applied with two or more terms, p=Testbaudson,ahocevar,me r=ahocevar,me (closes #366)
Modified: core/trunk/geoext/lib/GeoExt/widgets/form.js
===================================================================
--- core/trunk/geoext/lib/GeoExt/widgets/form.js 2010-10-19 06:35:27 UTC (rev 2466)
+++ core/trunk/geoext/lib/GeoExt/widgets/form.js 2010-10-21 11:00:54 UTC (rev 2467)
@@ -64,10 +64,12 @@
);
}
- return new OpenLayers.Filter.Logical({
- type: logicalOp || OpenLayers.Filter.Logical.AND,
- filters: filters
- });
+ return filters.length == 1 && logicalOp != OpenLayers.Filter.Logical.NOT ?
+ filters[0] :
+ new OpenLayers.Filter.Logical({
+ type: logicalOp || OpenLayers.Filter.Logical.AND,
+ filters: filters
+ });
};
/** private: constant[FILTER_MAP]
Modified: core/trunk/geoext/tests/lib/GeoExt/widgets/form.html
===================================================================
--- core/trunk/geoext/tests/lib/GeoExt/widgets/form.html 2010-10-19 06:35:27 UTC (rev 2466)
+++ core/trunk/geoext/tests/lib/GeoExt/widgets/form.html 2010-10-21 11:00:54 UTC (rev 2467)
@@ -142,6 +142,39 @@
"logicalOp is OpenLayers.Filter.Logical.OR"].join(" "));
}
+ // http://trac.geoext.org/ticket/366
+ function test_toFilter_one_filter(t) {
+ t.plan(2);
+
+ /*
+ * Set up
+ */
+
+ var form, filter, fields = [];
+
+ fields.push(new Ext.form.TextField({
+ name: "foo__like",
+ value: "bar"
+ }));
+
+ form = new Ext.form.FormPanel({
+ renderTo: "form",
+ items: fields
+ });
+
+ /*
+ * Test
+ */
+
+ filter = GeoExt.form.toFilter(form);
+ t.ok(filter instanceof OpenLayers.Filter.Comparison,
+ "comparison filter not wrapped in a logical filter");
+
+ filter = GeoExt.form.toFilter(form, OpenLayers.Filter.Logical.NOT);
+ t.ok(filter instanceof OpenLayers.Filter.Logical,
+ "comparison filter wrapped in logical not filter");
+ }
+
function test_toFilter_Wildcard(t) {
t.plan(4);
@@ -166,13 +199,14 @@
*/
filter = GeoExt.form.toFilter(form, null, GeoExt.form.STARTS_WITH);
- t.eq(filter.filters[0].value, "bar.*", "GeoExt.form.STARTS_WITH appends a wildcard");
+ filter = GeoExt.form.toFilter(form, null, GeoExt.form.STARTS_WITH);
+ t.eq(filter.value, "bar.*", "GeoExt.form.STARTS_WITH appends a wildcard");
filter = GeoExt.form.toFilter(form, null, GeoExt.form.ENDS_WITH);
- t.eq(filter.filters[0].value, ".*bar", "GeoExt.form.ENDS_WITH prepends a wildcard");
+ t.eq(filter.value, ".*bar", "GeoExt.form.ENDS_WITH prepends a wildcard");
filter = GeoExt.form.toFilter(form, null, GeoExt.form.CONTAINS);
- t.eq(filter.filters[0].value, ".*bar.*", "GeoExt.form.CONTAINS appends *and* prepends a wildcard");
+ t.eq(filter.value, ".*bar.*", "GeoExt.form.CONTAINS appends *and* prepends a wildcard");
filter = GeoExt.form.toFilter(form);
- t.eq(filter.filters[0].value, "bar", "Default behaviour is to not add any wildcards");
+ t.eq(filter.value, "bar", "Default behaviour is to not add any wildcards");
}
function test_recordToField(t) {
More information about the Commits
mailing list