@@ 81-125 (lines=45) @@ | ||
78 | * |
|
79 | * @return $this |
|
80 | */ |
|
81 | public function ajax($url, $idField = 'id', $textField = 'text') |
|
82 | { |
|
83 | $this->script = <<<EOT |
|
84 | ||
85 | $("{$this->getElementClassSelector()}").select2({ |
|
86 | dir: "$this->direction", |
|
87 | language : "$this->local", |
|
88 | tags: true, |
|
89 | multiple: true, |
|
90 | ajax: { |
|
91 | url: "$url", |
|
92 | dataType: 'json', |
|
93 | delay: 250, |
|
94 | data: function (params) { |
|
95 | return { |
|
96 | q: params.term, |
|
97 | page: params.page |
|
98 | }; |
|
99 | }, |
|
100 | processResults: function (data, params) { |
|
101 | params.page = params.page || 1; |
|
102 | ||
103 | return { |
|
104 | results: $.map(data.data, function (d) { |
|
105 | d.id = d.$idField; |
|
106 | d.text = d.$textField; |
|
107 | return d; |
|
108 | }), |
|
109 | pagination: { |
|
110 | more: data.next_page_url |
|
111 | } |
|
112 | }; |
|
113 | }, |
|
114 | cache: true |
|
115 | }, |
|
116 | minimumInputLength: 1, |
|
117 | escapeMarkup: function (markup) { |
|
118 | return markup; |
|
119 | } |
|
120 | }); |
|
121 | ||
122 | EOT; |
|
123 | ||
124 | return $this; |
|
125 | } |
|
126 | ||
127 | /** |
|
128 | * {@inheritdoc} |
@@ 185-227 (lines=43) @@ | ||
182 | * |
|
183 | * @return $this |
|
184 | */ |
|
185 | public function ajax($url, $idField = 'id', $textField = 'text') |
|
186 | { |
|
187 | $this->script = <<<EOT |
|
188 | ||
189 | $("{$this->getElementClassSelector()}").select2({ |
|
190 | ajax: { |
|
191 | url: "$url", |
|
192 | dataType: 'json', |
|
193 | delay: 250, |
|
194 | data: function (params) { |
|
195 | return { |
|
196 | q: params.term, |
|
197 | page: params.page |
|
198 | }; |
|
199 | }, |
|
200 | processResults: function (data, params) { |
|
201 | params.page = params.page || 1; |
|
202 | ||
203 | return { |
|
204 | results: $.map(data.data, function (d) { |
|
205 | d.id = d.$idField; |
|
206 | d.text = d.$textField; |
|
207 | return d; |
|
208 | }), |
|
209 | pagination: { |
|
210 | more: data.next_page_url |
|
211 | } |
|
212 | }; |
|
213 | }, |
|
214 | cache: true |
|
215 | }, |
|
216 | minimumInputLength: 1, |
|
217 | escapeMarkup: function (markup) { |
|
218 | return markup; |
|
219 | }, |
|
220 | dir: "$this->direction", |
|
221 | language : "$this->local", |
|
222 | }); |
|
223 | ||
224 | EOT; |
|
225 | ||
226 | return $this; |
|
227 | } |
|
228 | ||
229 | /** |
|
230 | * Set config for select2. |