20
20
* array of columns to limit search too (the column title in the table header)
21
21
* ifHidden - callback to execute if one or more elements was hidden
22
22
*/
23
- ( function ( $ ) {
24
- $ . uiTableFilter = function ( jq , phrase , column , ifHidden ) {
23
+ ( function ( $ ) {
24
+ $ . uiTableFilter = function ( jq , phrase , column , ifHidden ) {
25
25
var new_hidden = false ;
26
- if ( this . last_phrase === phrase ) return false ;
26
+ if ( this . last_phrase === phrase ) return false ;
27
27
28
28
var phrase_length = phrase . length ;
29
29
var words = phrase . toLowerCase ( ) . split ( " " ) ;
30
30
31
31
// these function pointers may change
32
- var matches = function ( elem ) { elem . show ( ) }
33
- var noMatch = function ( elem ) { elem . hide ( ) ; new_hidden = true }
34
- var getText = function ( elem ) { return elem . text ( ) }
32
+ var matches = function ( elem ) { elem . show ( ) }
33
+ var noMatch = function ( elem ) { elem . hide ( ) ; new_hidden = true }
34
+ var getText = function ( elem ) { return elem . text ( ) }
35
35
36
- if ( column )
37
- {
38
- if ( ! $ . isArray ( column ) )
39
- {
36
+ if ( column ) {
37
+ if ( ! $ . isArray ( column ) ) {
40
38
column = new Array ( column ) ;
41
39
}
42
40
43
41
var index = new Array ( ) ;
44
42
45
- jq . find ( "thead > tr:last > th" ) . each ( function ( i )
46
- {
47
- for ( var j = 0 ; j < column . length ; j ++ )
48
- {
49
- if ( $ . trim ( $ ( this ) . text ( ) ) == column [ j ] )
50
- {
51
- index [ j ] = i ;
52
- break ;
53
- }
43
+ jq . find ( "thead > tr:last > th" ) . each ( function ( i ) {
44
+ for ( var j = 0 ; j < column . length ; j ++ ) {
45
+ if ( $ . trim ( $ ( this ) . text ( ) ) == column [ j ] ) {
46
+ index [ j ] = i ;
47
+ break ;
54
48
}
49
+ }
55
50
56
51
} ) ;
57
52
58
- getText = function ( elem ) {
59
- var selector = "" ;
60
- for ( var i = 0 ; i < index . length ; i ++ )
61
- {
62
- if ( i != 0 ) { selector += "," ; }
63
- selector += "td:eq(" + index [ i ] + ")" ;
64
- }
65
- return $ ( elem . find ( ( selector ) ) ) . text ( ) ;
53
+ getText = function ( elem ) {
54
+ var selector = "" ;
55
+ for ( var i = 0 ; i < index . length ; i ++ ) {
56
+ if ( i != 0 ) { selector += "," ; }
57
+ selector += "td:eq(" + index [ i ] + ")" ;
58
+ }
59
+ return $ ( elem . find ( ( selector ) ) ) . text ( ) ;
66
60
}
67
61
}
68
62
69
63
// if added one letter to last time,
70
64
// just check newest word and only need to hide
71
- if ( ( words . size > 1 ) && ( phrase . substr ( 0 , phrase_length - 1 ) ===
72
- this . last_phrase ) ) {
65
+ if ( ( words . size > 1 ) && ( phrase . substr ( 0 , phrase_length - 1 ) ===
66
+ this . last_phrase ) ) {
73
67
74
- if ( phrase [ - 1 ] === " " )
75
- { this . last_phrase = phrase ; return false ; }
68
+ if ( phrase [ - 1 ] === " " ) { this . last_phrase = phrase ; return false ; }
76
69
77
70
var words = words [ - 1 ] ; // just search for the newest word
78
71
79
72
// only hide visible rows
80
- matches = function ( elem ) { ; }
73
+ matches = function ( elem ) { ; }
81
74
var elems = jq . find ( "tbody:first > tr:visible" )
82
75
}
83
76
else {
84
77
new_hidden = true ;
85
78
var elems = jq . find ( "tbody:first > tr" )
86
79
}
87
80
88
- elems . each ( function ( ) {
81
+ elems . each ( function ( ) {
89
82
var elem = $ ( this ) ;
90
- $ . uiTableFilter . has_words ( getText ( elem ) , words , false ) ?
83
+ $ . uiTableFilter . has_words ( getText ( elem ) , words , false ) ?
91
84
matches ( elem ) : noMatch ( elem ) ;
92
85
} ) ;
93
86
94
87
last_phrase = phrase ;
95
- if ( ifHidden && new_hidden ) ifHidden ( ) ;
88
+ if ( ifHidden && new_hidden ) ifHidden ( ) ;
96
89
return jq ;
97
90
} ;
98
91
102
95
// not jQuery dependent
103
96
// "" [""] -> Boolean
104
97
// "" [""] Boolean -> Boolean
105
- $ . uiTableFilter . has_words = function ( str , words , caseSensitive )
106
- {
98
+ $ . uiTableFilter . has_words = function ( str , words , caseSensitive ) {
107
99
var text = caseSensitive ? str : str . toLowerCase ( ) ;
108
- for ( var i = 0 ; i < words . length ; i ++ ) {
100
+ for ( var i = 0 ; i < words . length ; i ++ ) {
109
101
if ( text . indexOf ( words [ i ] ) === - 1 ) return false ;
110
102
}
111
103
return true ;
112
104
}
113
- } ) ( jQuery ) ;
105
+ } ) ( jQuery ) ;
0 commit comments