@@ -111,8 +111,7 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil
111
111
rowSearcher . setupFilters = function setupFilters ( filters ) {
112
112
var newFilters = [ ] ;
113
113
114
- var filtersLength = filters . length ;
115
- for ( var i = 0 ; i < filtersLength ; i ++ ) {
114
+ for ( var i = 0 ; i < filters . length ; i ++ ) {
116
115
var filter = filters [ i ] ;
117
116
118
117
if ( filter . noTerm || ! gridUtil . isNullOrUndefined ( filter . term ) ) {
@@ -131,30 +130,24 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil
131
130
newFilter . term = rowSearcher . stripTerm ( filter ) ;
132
131
}
133
132
}
134
- newFilter . noTerm = filter . noTerm ;
135
-
136
- if ( filter . condition ) {
137
- newFilter . condition = filter . condition ;
138
- } else {
139
- newFilter . condition = rowSearcher . guessCondition ( filter ) ;
140
- }
141
133
134
+ newFilter . noTerm = filter . noTerm ;
135
+ newFilter . condition = filter . condition || rowSearcher . guessCondition ( filter ) ;
142
136
newFilter . flags = angular . extend ( { caseSensitive : false , date : false } , filter . flags ) ;
143
137
144
- if ( newFilter . condition === uiGridConstants . filter . STARTS_WITH ) {
145
- newFilter . startswithRE = new RegExp ( '^' + newFilter . term , regexpFlags ) ;
146
- }
147
-
148
- if ( newFilter . condition === uiGridConstants . filter . ENDS_WITH ) {
149
- newFilter . endswithRE = new RegExp ( newFilter . term + '$' , regexpFlags ) ;
150
- }
151
-
152
- if ( newFilter . condition === uiGridConstants . filter . CONTAINS ) {
153
- newFilter . containsRE = new RegExp ( newFilter . term , regexpFlags ) ;
154
- }
155
-
156
- if ( newFilter . condition === uiGridConstants . filter . EXACT ) {
157
- newFilter . exactRE = new RegExp ( '^' + newFilter . term + '$' , regexpFlags ) ;
138
+ switch ( newFilter . condition ) {
139
+ case uiGridConstants . filter . STARTS_WITH :
140
+ newFilter . startswithRE = new RegExp ( '^' + newFilter . term , regexpFlags ) ;
141
+ break ;
142
+ case uiGridConstants . filter . ENDS_WITH :
143
+ newFilter . endswithRE = new RegExp ( newFilter . term + '$' , regexpFlags ) ;
144
+ break ;
145
+ case uiGridConstants . filter . EXACT :
146
+ newFilter . exactRE = new RegExp ( '^' + newFilter . term + '$' , regexpFlags ) ;
147
+ break ;
148
+ case uiGridConstants . filter . CONTAINS :
149
+ newFilter . containsRE = new RegExp ( newFilter . term , regexpFlags ) ;
150
+ break ;
158
151
}
159
152
160
153
newFilters . push ( newFilter ) ;
@@ -185,12 +178,9 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil
185
178
var term = filter . term ;
186
179
187
180
// Get the column value for this row
188
- var value ;
189
- if ( column . filterCellFiltered ) {
190
- value = grid . getCellDisplayValue ( row , column ) ;
191
- } else {
192
- value = grid . getCellValue ( row , column ) ;
193
- }
181
+ var value = column . filterCellFiltered ? grid . getCellDisplayValue ( row , column ) : grid . getCellValue ( row , column ) ;
182
+ if ( value == void 0 )
183
+ value = "" ;
194
184
195
185
196
186
// If the filter's condition is a RegExp, then use it
@@ -220,8 +210,7 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil
220
210
}
221
211
222
212
if ( filter . condition === uiGridConstants . filter . NOT_EQUAL ) {
223
- var regex = new RegExp ( '^' + term + '$' ) ;
224
- return ! regex . exec ( value ) ;
213
+ return ! new RegExp ( '^' + term + '$' ) . test ( value ) ;
225
214
}
226
215
227
216
if ( typeof ( value ) === 'number' && typeof ( term ) === 'string' ) {
@@ -240,20 +229,15 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil
240
229
term = new Date ( term . replace ( / \\ / g, '' ) ) ;
241
230
}
242
231
243
- if ( filter . condition === uiGridConstants . filter . GREATER_THAN ) {
244
- return ( value > term ) ;
245
- }
246
-
247
- if ( filter . condition === uiGridConstants . filter . GREATER_THAN_OR_EQUAL ) {
248
- return ( value >= term ) ;
249
- }
250
-
251
- if ( filter . condition === uiGridConstants . filter . LESS_THAN ) {
252
- return ( value < term ) ;
253
- }
254
-
255
- if ( filter . condition === uiGridConstants . filter . LESS_THAN_OR_EQUAL ) {
256
- return ( value <= term ) ;
232
+ switch ( filter . condition ) {
233
+ case uiGridConstants . filter . GREATER_THAN :
234
+ return ( value > term ) ;
235
+ case uiGridConstants . filter . GREATER_THAN_OR_EQUAL :
236
+ return ( value >= term ) ;
237
+ case uiGridConstants . filter . LESS_THAN :
238
+ return ( value < term ) ;
239
+ case uiGridConstants . filter . LESS_THAN_OR_EQUAL :
240
+ return ( value <= term ) ;
257
241
}
258
242
259
243
return true ;
@@ -287,13 +271,11 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil
287
271
return true ;
288
272
}
289
273
290
- var filtersLength = filters . length ;
291
- for ( var i = 0 ; i < filtersLength ; i ++ ) {
274
+ for ( var i = 0 ; i < filters . length ; i ++ ) {
292
275
var filter = filters [ i ] ;
293
276
294
277
if ( ! gridUtil . isNullOrUndefined ( filter . term ) && filter . term !== '' || filter . noTerm ) {
295
- var ret = rowSearcher . runColumnFilter ( grid , row , column , filter ) ;
296
- if ( ! ret ) {
278
+ if ( ! rowSearcher . runColumnFilter ( grid , row , column , filter ) ) {
297
279
return false ;
298
280
}
299
281
}
@@ -333,8 +315,6 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil
333
315
// Build list of filters to apply
334
316
var filterData = [ ] ;
335
317
336
- var colsLength = columns . length ;
337
-
338
318
var hasTerm = function ( filters ) {
339
319
var hasTerm = false ;
340
320
@@ -347,7 +327,7 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil
347
327
return hasTerm ;
348
328
} ;
349
329
350
- for ( var i = 0 ; i < colsLength ; i ++ ) {
330
+ for ( var i = 0 ; i < cols . length ; i ++ ) {
351
331
var col = columns [ i ] ;
352
332
353
333
if ( typeof ( col . filters ) !== 'undefined' && hasTerm ( col . filters ) ) {
@@ -364,15 +344,13 @@ module.service('rowSearcher', ['gridUtil', 'uiGridConstants', function (gridUtil
364
344
} ;
365
345
366
346
var foreachFilterCol = function ( grid , filterData ) {
367
- var rowsLength = rows . length ;
368
- for ( var i = 0 ; i < rowsLength ; i ++ ) {
347
+ for ( var i = 0 ; i < rows . length ; i ++ ) {
369
348
foreachRow ( grid , rows [ i ] , filterData . col , filterData . filters ) ;
370
349
}
371
350
} ;
372
351
373
352
// nested loop itself - foreachFilterCol, which in turn calls foreachRow
374
- var filterDataLength = filterData . length ;
375
- for ( var j = 0 ; j < filterDataLength ; j ++ ) {
353
+ for ( var j = 0 ; j < filterData . length ; j ++ ) {
376
354
foreachFilterCol ( grid , filterData [ j ] ) ;
377
355
}
378
356
0 commit comments