11
11
( function ( $ ) {
12
12
// Default settings
13
13
var DEFAULT_SETTINGS = {
14
- // Search settings
14
+ // Search settings
15
15
method : "GET" ,
16
- contentType : "json" ,
17
16
queryParam : "q" ,
18
17
searchDelay : 300 ,
19
18
minChars : 1 ,
20
19
propertyToSearch : "name" ,
21
20
jsonContainer : null ,
21
+ contentType : "json" ,
22
22
23
- // Display settings
23
+ // Prepopulation settings
24
+ prePopulate : null ,
25
+ processPrePopulate : false ,
26
+
27
+ // Display settings
24
28
hintText : "Type in a search term" ,
25
29
noResultsText : "No results" ,
26
30
searchingText : "Searching..." ,
27
31
deleteText : "×" ,
28
32
animateDropdown : true ,
33
+ theme : null ,
34
+ resultsFormatter : function ( item ) { return "<li>" + item [ this . propertyToSearch ] + "</li>" } ,
35
+ tokenFormatter : function ( item ) { return "<li><p>" + item [ this . propertyToSearch ] + "</p></li>" } ,
29
36
30
- // Tokenization settings
37
+ // Tokenization settings
31
38
tokenLimit : null ,
32
39
tokenDelimiter : "," ,
33
40
preventDuplicates : false ,
34
-
35
- // Output settings
36
41
tokenValue : "id" ,
37
42
38
- // Prepopulation settings
39
- prePopulate : null ,
40
- processPrePopulate : false ,
41
-
42
- // Manipulation settings
43
- idPrefix : "token-input-" ,
44
-
45
- // Formatters
46
- resultsFormatter : function ( item ) { return "<li>" + item [ this . propertyToSearch ] + "</li>" } ,
47
- tokenFormatter : function ( item ) { return "<li><p>" + item [ this . propertyToSearch ] + "</p></li>" } ,
48
-
49
- // Callbacks
43
+ // Callbacks
50
44
onResult : null ,
51
45
onAdd : null ,
52
46
onDelete : null ,
53
- onReady : null
47
+ onReady : null ,
48
+
49
+ // Other settings
50
+ idPrefix : "token-input-"
54
51
} ;
55
52
56
53
// Default classes to use when theming
@@ -115,8 +112,8 @@ var methods = {
115
112
return this ;
116
113
} ,
117
114
get : function ( ) {
118
- return this . data ( "tokenInputObject" ) . getTokens ( ) ;
119
- }
115
+ return this . data ( "tokenInputObject" ) . getTokens ( ) ;
116
+ }
120
117
}
121
118
122
119
// Expose the .tokenInput function to jQuery as a plugin
@@ -412,10 +409,10 @@ $.TokenList = function (input, url_or_data, settings) {
412
409
}
413
410
} ) ;
414
411
}
415
-
412
+
416
413
this . getTokens = function ( ) {
417
- return saved_tokens ;
418
- }
414
+ return saved_tokens ;
415
+ }
419
416
420
417
//
421
418
// Private functions
@@ -656,7 +653,7 @@ $.TokenList = function (input, url_or_data, settings) {
656
653
function highlight_term ( value , term ) {
657
654
return value . replace ( new RegExp ( "(?![^&;]+;)(?!<[^<>]*)(" + term + ")(?![^<>]*>)(?![^&;]+;)" , "gi" ) , "<b>$1</b>" ) ;
658
655
}
659
-
656
+
660
657
function find_value_and_highlight_term ( template , value , term ) {
661
658
return template . replace ( new RegExp ( "(?![^&;]+;)(?!<[^<>]*)(" + value + ")(?![^<>]*>)(?![^&;]+;)" , "g" ) , highlight_term ( value , term ) ) ;
662
659
}
@@ -679,11 +676,11 @@ $.TokenList = function (input, url_or_data, settings) {
679
676
680
677
$ . each ( results , function ( index , value ) {
681
678
var this_li = settings . resultsFormatter ( value ) ;
682
-
683
- this_li = find_value_and_highlight_term ( this_li , value [ settings . propertyToSearch ] , query ) ;
684
-
679
+
680
+ this_li = find_value_and_highlight_term ( this_li , value [ settings . propertyToSearch ] , query ) ;
681
+
685
682
this_li = $ ( this_li ) . appendTo ( dropdown_ul ) ;
686
-
683
+
687
684
if ( index % 2 ) {
688
685
this_li . addClass ( settings . classes . dropdownItem ) ;
689
686
} else {
0 commit comments