Changeset 1995
- Timestamp:
- 03/17/10 15:28:07 (5 months ago)
- Files:
-
- core/trunk/geoext/lib/GeoExt/widgets/form.js (modified) (4 diffs)
- core/trunk/geoext/lib/GeoExt/widgets/form/SearchAction.js (modified) (1 diff)
- core/trunk/geoext/tests/lib/GeoExt/widgets/form.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
core/trunk/geoext/lib/GeoExt/widgets/form.js
r1956 r1995 14 14 * ``OpenLayers.Filter.Logical.OR``, set to 15 15 * ``OpenLayers.Filter.Logical.AND`` if null or undefined 16 * :param wildcard: ``Integer`` Determines the wildcard behaviour of like 17 * queries. This behaviour can either be: none, prepend, append or both. 16 18 * 17 19 * :return: ``OpenLayers.Filter`` … … 20 22 * or a {Ext.form.FormPanel} instance. 21 23 */ 22 GeoExt.form.toFilter = function(form, logicalOp ) {24 GeoExt.form.toFilter = function(form, logicalOp, wildcard) { 23 25 if(form instanceof Ext.form.FormPanel) { 24 26 form = form.getForm(); … … 35 37 } else { 36 38 type = OpenLayers.Filter.Comparison.EQUAL_TO; 39 } 40 41 if (type === OpenLayers.Filter.Comparison.LIKE) { 42 switch(wildcard) { 43 case GeoExt.form.ENDS_WITH: 44 value = '.*' + value; 45 break; 46 case GeoExt.form.STARTS_WITH: 47 value += '.*'; 48 break; 49 case GeoExt.form.CONTAINS: 50 value = '.*' + value + '.*'; 51 break; 52 default: 53 // do nothing, just take the value 54 break; 55 } 37 56 } 38 57 … … 65 84 "like": OpenLayers.Filter.Comparison.LIKE 66 85 }; 86 87 GeoExt.form.ENDS_WITH = 1; 88 GeoExt.form.STARTS_WITH = 2; 89 GeoExt.form.CONTAINS = 3; core/trunk/geoext/lib/GeoExt/widgets/form/SearchAction.js
r1956 r1995 113 113 run: function() { 114 114 var o = this.options; 115 var f = GeoExt.form.toFilter(this.form );115 var f = GeoExt.form.toFilter(this.form, o.logicalOp, o.wildcard); 116 116 if(o.clientValidation === false || this.form.isValid()){ 117 117 core/trunk/geoext/tests/lib/GeoExt/widgets/form.html
r836 r1995 141 141 "logicalOp is OpenLayers.Filter.Logical.OR"].join(" ")); 142 142 } 143 144 function test_toFilter_Wildcard(t) { 145 t.plan(4); 146 147 /* 148 * Set up 149 */ 150 151 var form, filter, fields = []; 152 153 fields.push(new Ext.form.TextField({ 154 name: "foo__like", 155 value: "bar" 156 })); 157 158 form = new Ext.form.FormPanel({ 159 renderTo: "form", 160 items: fields 161 }); 162 163 /* 164 * Test 165 */ 166 167 filter = GeoExt.form.toFilter(form, null, GeoExt.form.STARTS_WITH); 168 t.eq(filter.filters[0].value, "bar.*", "GeoExt.form.STARTS_WITH appends a wildcard"); 169 filter = GeoExt.form.toFilter(form, null, GeoExt.form.ENDS_WITH); 170 t.eq(filter.filters[0].value, ".*bar", "GeoExt.form.ENDS_WITH prepends a wildcard"); 171 filter = GeoExt.form.toFilter(form, null, GeoExt.form.CONTAINS); 172 t.eq(filter.filters[0].value, ".*bar.*", "GeoExt.form.CONTAINS appends *and* prepends a wildcard"); 173 filter = GeoExt.form.toFilter(form); 174 t.eq(filter.filters[0].value, "bar", "Default behaviour is to not add any wildcards"); 175 } 176 143 177 </script> 144 178 <body>