14
14
15
15
( function ( $ , undefined ) {
16
16
17
- var i18n = {
17
+ // - field types
18
+ var fTypes = {
19
+ text :'text' ,
20
+ bool :'boolean' ,
21
+ number :'number' ,
22
+ date :'date' ,
23
+ time :'time' ,
24
+ list :'list' ,
25
+ listOpts : 'list-options' ,
26
+ listDropdown : 'list-dropdown'
27
+ } ,
28
+
29
+ // - i18n strings (to translate in other languages)
30
+ i18n = {
18
31
sEqual :'equals' ,
19
32
sNotEqual :'not equal' ,
20
33
sStart :'starts with' ,
45
58
bSubmit :'Submit' ,
46
59
bCancel :'Cancel'
47
60
} ,
61
+
62
+ // - list of operators (for conditions)
48
63
evoAPI = {
49
64
sEqual :'eq' ,
50
65
sNotEqual :'ne' ,
59
74
sSmaller :'lt' ,
60
75
sBetween :'bw'
61
76
} ,
62
- fTypes = {
63
- text :'text' ,
64
- bool :'boolean' ,
65
- number :'number' ,
66
- date :'date' ,
67
- time :'time' ,
68
- list :'list' ,
69
- exList : 'list-options' ,
70
- selList : 'list-dropdown'
71
- } ,
72
77
isNotFirefox = navigator . userAgent . toLowerCase ( ) . indexOf ( 'firefox' ) === - 1 ;
73
78
74
79
$ . widget ( 'evol.structFilter' , {
@@ -159,7 +164,7 @@ $.widget( 'evol.structFilter', {
159
164
that . _field = that . _getFieldById ( fieldID ) ;
160
165
var fType = that . _type = that . _field . type ;
161
166
that . _setEditorOperator ( ) ;
162
- if ( [ fTypes . list , fTypes . bool , fTypes . exList , fTypes . selList ] . indexOf ( fType ) > - 1 ) {
167
+ if ( fType === fTypes . bool || fType . startsWith ( 'list' ) ) {
163
168
that . _setEditorValue ( ) ;
164
169
}
165
170
} else {
@@ -176,10 +181,10 @@ $.widget( 'evol.structFilter', {
176
181
that . _setEditorValue ( ) ;
177
182
} ) . on ( 'change keyup' , '#value,#value2' , function ( evt ) {
178
183
evt . stopPropagation ( ) ;
179
- var type = that . _type ,
184
+ var fType = that . _type ,
180
185
value = $ ( this ) . val ( ) ,
181
- valid = ( value !== '' ) || ( [ fTypes . list , fTypes . bool , fTypes . exList , fTypes . selList ] . indexOf ( type ) > - 1 ) ;
182
- if ( type == fTypes . number ) {
186
+ valid = value !== '' || fType === fTypes . bool || fType . startsWith ( 'list' ) ;
187
+ if ( fType == fTypes . number ) {
183
188
valid = valid && ! isNaN ( value ) ;
184
189
} else if ( that . _operator == evoAPI . sBetween ) {
185
190
valid = that . _editor . find ( '#value' ) . val ( ) !== '' && that . _editor . find ( '#value2' ) . val ( ) !== '' ;
@@ -346,8 +351,8 @@ $.widget( 'evol.structFilter', {
346
351
h += EvoUI . inputHidden ( 'operator' , evoAPI . sInList ) ;
347
352
this . _operator = evoAPI . sInList ;
348
353
break ;
349
- case fTypes . exList :
350
- case fTypes . selList :
354
+ case fTypes . listOpts :
355
+ case fTypes . listDropdown :
351
356
case fTypes . bool :
352
357
//h.push(i18n.sEqual);
353
358
h += EvoUI . inputHidden ( 'operator' , evoAPI . sEqual ) ;
@@ -423,14 +428,14 @@ $.widget( 'evol.structFilter', {
423
428
EvoUI . inputCheckboxes ( fld . list ) +
424
429
'</span>' ;
425
430
break ;
426
- case fTypes . exList :
431
+ case fTypes . listOpts :
427
432
h += '<span id="value">' ;
428
433
h += fld . list . map ( function ( item ) {
429
434
return EvoUI . inputRadio ( fld . id , item . id , item . label , v == item . id , 'value' + item . id ) ;
430
435
} ) . join ( '' ) ;
431
436
h += '</span>' ;
432
437
break ;
433
- case fTypes . selList :
438
+ case fTypes . listDropdown :
434
439
h += '<select id="value">' + EvoUI . optNull ;
435
440
h += fld . list . map ( function ( item ) {
436
441
return EvoUI . inputOption ( item . id , item . label ) ;
@@ -463,7 +468,7 @@ $.widget( 'evol.structFilter', {
463
468
case fTypes . list :
464
469
$value . find ( '#' + v . split ( ',' ) . join ( ',#' ) ) . prop ( 'checked' , 'checked' ) ;
465
470
break ;
466
- case fTypes . exList :
471
+ case fTypes . listOpts :
467
472
case fTypes . bool :
468
473
$value . find ( '#value' + v ) . prop ( 'checked' , 'checked' ) ;
469
474
break ;
@@ -476,7 +481,7 @@ $.widget( 'evol.structFilter', {
476
481
}
477
482
}
478
483
} else {
479
- addOK = ( fType == fTypes . list || fType == fTypes . listSelect || fType == fTypes . bool ) ;
484
+ addOK = ( fType == fTypes . list || fType == fTypes . listDropdown || fType == fTypes . bool ) ;
480
485
}
481
486
}
482
487
this . _bAdd . button ( addOK ?'enable' :'disable' ) . show ( ) ;
@@ -525,13 +530,13 @@ $.widget( 'evol.structFilter', {
525
530
var val = ( v . find ( '#value1' ) . prop ( 'checked' ) ) ?1 :0 ;
526
531
fv . label = ( val == 1 ) ?i18n . yes :i18n . no ;
527
532
fv . value = val ;
528
- } else if ( this . _type == fTypes . exList ) {
533
+ } else if ( this . _type == fTypes . listOpts ) {
529
534
op . label = i18n . sEqual ;
530
535
op . value = evoAPI . sEqual ;
531
536
var sel = v . find ( 'input:checked' ) ;
532
537
fv . label = sel . parent ( ) . text ( ) ;
533
538
fv . value = sel . prop ( 'id' ) . slice ( 5 ) ;
534
- } else if ( this . _type == fTypes . selList ) {
539
+ } else if ( this . _type == fTypes . listDropdown ) {
535
540
op . label = i18n . sEqual ;
536
541
op . value = evoAPI . sEqual ;
537
542
var vval = v . val ( ) ;
0 commit comments