@@ -23,8 +23,8 @@ public function it_can_set_total_records()
2323 {
2424 $ crawler = $ this ->call ('GET ' , '/set-total-records ' );
2525 $ crawler ->assertJson ([
26- 'draw ' => 0 ,
27- 'recordsTotal ' => 10 ,
26+ 'draw ' => 0 ,
27+ 'recordsTotal ' => 10 ,
2828 'recordsFiltered ' => 10 ,
2929 ]);
3030 }
@@ -34,8 +34,8 @@ public function it_can_set_zero_total_records()
3434 {
3535 $ crawler = $ this ->call ('GET ' , '/zero-total-records ' );
3636 $ crawler ->assertJson ([
37- 'draw ' => 0 ,
38- 'recordsTotal ' => 0 ,
37+ 'draw ' => 0 ,
38+ 'recordsTotal ' => 0 ,
3939 'recordsFiltered ' => 0 ,
4040 ]);
4141 }
@@ -45,8 +45,8 @@ public function it_can_set_total_filtered_records()
4545 {
4646 $ crawler = $ this ->call ('GET ' , '/set-filtered-records ' );
4747 $ crawler ->assertJson ([
48- 'draw ' => 0 ,
49- 'recordsTotal ' => 20 ,
48+ 'draw ' => 0 ,
49+ 'recordsTotal ' => 20 ,
5050 'recordsFiltered ' => 10 ,
5151 ]);
5252 }
@@ -56,8 +56,8 @@ public function it_returns_all_records_when_no_parameters_is_passed()
5656 {
5757 $ crawler = $ this ->call ('GET ' , '/query/users ' );
5858 $ crawler ->assertJson ([
59- 'draw ' => 0 ,
60- 'recordsTotal ' => 20 ,
59+ 'draw ' => 0 ,
60+ 'recordsTotal ' => 20 ,
6161 'recordsFiltered ' => 20 ,
6262 ]);
6363 }
@@ -70,12 +70,12 @@ public function it_can_perform_global_search()
7070 ['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
7171 ['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
7272 ],
73- 'search ' => ['value ' => 'Record-19 ' ],
73+ 'search ' => ['value ' => 'Record-19 ' ],
7474 ]);
7575
7676 $ crawler ->assertJson ([
77- 'draw ' => 0 ,
78- 'recordsTotal ' => 20 ,
77+ 'draw ' => 0 ,
78+ 'recordsTotal ' => 20 ,
7979 'recordsFiltered ' => 1 ,
8080 ]);
8181 }
@@ -88,12 +88,12 @@ public function it_can_skip_total_records_count_query()
8888 ['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
8989 ['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
9090 ],
91- 'search ' => ['value ' => 'Record-19 ' ],
91+ 'search ' => ['value ' => 'Record-19 ' ],
9292 ]);
9393
9494 $ crawler ->assertJson ([
95- 'draw ' => 0 ,
96- 'recordsTotal ' => 0 ,
95+ 'draw ' => 0 ,
96+ 'recordsTotal ' => 0 ,
9797 'recordsFiltered ' => 1 ,
9898 ]);
9999 }
@@ -106,12 +106,12 @@ public function it_can_perform_multiple_term_global_search()
106106 ['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
107107 ['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
108108 ],
109- 'search ' => ['value ' => 'Record-19 Email-19 ' ],
109+ 'search ' => ['value ' => 'Record-19 Email-19 ' ],
110110 ]);
111111
112112 $ crawler ->assertJson ([
113- 'draw ' => 0 ,
114- 'recordsTotal ' => 20 ,
113+ 'draw ' => 0 ,
114+ 'recordsTotal ' => 20 ,
115115 'recordsFiltered ' => 1 ,
116116 ]);
117117 }
@@ -170,12 +170,12 @@ public function it_does_not_allow_search_on_added_columns()
170170 ['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
171171 ['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
172172 ],
173- 'search ' => ['value ' => 'Record-19 ' ],
173+ 'search ' => ['value ' => 'Record-19 ' ],
174174 ]);
175175
176176 $ crawler ->assertJson ([
177- 'draw ' => 0 ,
178- 'recordsTotal ' => 20 ,
177+ 'draw ' => 0 ,
178+ 'recordsTotal ' => 20 ,
179179 'recordsFiltered ' => 1 ,
180180 ]);
181181 }
@@ -188,6 +188,20 @@ public function it_returns_only_the_selected_columns()
188188 $ this ->assertArrayHasKey ('name ' , $ json ['data ' ][0 ]);
189189 }
190190
191+ /** @test */
192+ public function it_edit_only_the_selected_columns_after_using_editOnlySelectedColumns ()
193+ {
194+ $ json = $ this ->call ('GET ' , '/query/edit-columns ' , [
195+ 'columns ' => [
196+ ['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
197+ ],
198+ ])->json ();
199+
200+ $ this ->assertEquals ('edited ' , $ json ['data ' ][0 ]['name ' ]);
201+ $ this ->assertEquals ('edited ' , $ json ['data ' ][0 ]['id ' ]);
202+ $ this ->assertNotEquals ('edited ' , $ json ['data ' ][0 ]['email ' ]);
203+ }
204+
191205 /** @test */
192206 public function it_does_not_allow_raw_html_on_added_columns ()
193207 {
@@ -222,12 +236,12 @@ public function it_can_return_auto_index_column()
222236 ['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
223237 ['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
224238 ],
225- 'search ' => ['value ' => 'Record-19 ' ],
239+ 'search ' => ['value ' => 'Record-19 ' ],
226240 ]);
227241
228242 $ crawler ->assertJson ([
229- 'draw ' => 0 ,
230- 'recordsTotal ' => 20 ,
243+ 'draw ' => 0 ,
244+ 'recordsTotal ' => 20 ,
231245 'recordsFiltered ' => 1 ,
232246 ]);
233247
@@ -243,12 +257,12 @@ public function it_allows_search_on_added_column_with_custom_filter_handler()
243257 ['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
244258 ['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
245259 ],
246- 'search ' => ['value ' => 'Record-19 ' ],
260+ 'search ' => ['value ' => 'Record-19 ' ],
247261 ]);
248262
249263 $ crawler ->assertJson ([
250- 'draw ' => 0 ,
251- 'recordsTotal ' => 20 ,
264+ 'draw ' => 0 ,
265+ 'recordsTotal ' => 20 ,
252266 'recordsFiltered ' => 1 ,
253267 ]);
254268
@@ -262,10 +276,10 @@ public function it_returns_search_panes_options()
262276 $ crawler = $ this ->call ('GET ' , '/query/search-panes ' );
263277
264278 $ crawler ->assertJson ([
265- 'draw ' => 0 ,
266- 'recordsTotal ' => 20 ,
279+ 'draw ' => 0 ,
280+ 'recordsTotal ' => 20 ,
267281 'recordsFiltered ' => 20 ,
268- 'searchPanes ' => [
282+ 'searchPanes ' => [
269283 'options ' => [
270284 'id ' => [],
271285 ],
@@ -287,8 +301,8 @@ public function it_performs_search_using_search_panes()
287301 ]);
288302
289303 $ crawler ->assertJson ([
290- 'draw ' => 0 ,
291- 'recordsTotal ' => 20 ,
304+ 'draw ' => 0 ,
305+ 'recordsTotal ' => 20 ,
292306 'recordsFiltered ' => 2 ,
293307 ]);
294308 }
@@ -299,21 +313,21 @@ public function it_allows_column_search_added_column_with_custom_filter_handler(
299313 $ crawler = $ this ->call ('GET ' , '/query/blacklisted-filter ' , [
300314 'columns ' => [
301315 [
302- 'data ' => 'foo ' ,
303- 'name ' => 'foo ' ,
316+ 'data ' => 'foo ' ,
317+ 'name ' => 'foo ' ,
304318 'searchable ' => 'true ' ,
305- 'orderable ' => 'true ' ,
306- 'search ' => ['value ' => 'Record-1 ' ],
319+ 'orderable ' => 'true ' ,
320+ 'search ' => ['value ' => 'Record-1 ' ],
307321 ],
308322 ['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
309323 ['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
310324 ],
311- 'search ' => ['value ' => '' ],
325+ 'search ' => ['value ' => '' ],
312326 ]);
313327
314328 $ crawler ->assertJson ([
315- 'draw ' => 0 ,
316- 'recordsTotal ' => 20 ,
329+ 'draw ' => 0 ,
330+ 'recordsTotal ' => 20 ,
317331 'recordsFiltered ' => 1 ,
318332 ]);
319333 }
@@ -324,8 +338,8 @@ public function it_can_return_formatted_columns()
324338 $ crawler = $ this ->call ('GET ' , '/query/formatColumn ' );
325339
326340 $ crawler ->assertJson ([
327- 'draw ' => 0 ,
328- 'recordsTotal ' => 20 ,
341+ 'draw ' => 0 ,
342+ 'recordsTotal ' => 20 ,
329343 'recordsFiltered ' => 20 ,
330344 ]);
331345
@@ -345,8 +359,8 @@ public function it_can_return_added_column_with_dependency_injection()
345359 $ crawler = $ this ->call ('GET ' , '/closure-di ' );
346360
347361 $ crawler ->assertJson ([
348- 'draw ' => 0 ,
349- 'recordsTotal ' => 20 ,
362+ 'draw ' => 0 ,
363+ 'recordsTotal ' => 20 ,
350364 'recordsFiltered ' => 20 ,
351365 ]);
352366
@@ -417,6 +431,21 @@ protected function setUp(): void
417431 ->toJson ();
418432 });
419433
434+ $ router ->get ('/query/edit-columns ' , function (DataTables $ dataTable ) {
435+ return $ dataTable ->query (DB ::table ('users ' ))
436+ ->editColumn ('id ' , function () {
437+ return 'edited ' ;
438+ })
439+ ->editOnlySelectedColumns ()
440+ ->editColumn ('name ' , function () {
441+ return 'edited ' ;
442+ })
443+ ->editColumn ('email ' , function () {
444+ return 'edited ' ;
445+ })
446+ ->toJson ();
447+ });
448+
420449 $ router ->get ('/query/xss-add ' , function (DataTables $ dataTable ) {
421450 return $ dataTable ->query (DB ::table ('users ' ))
422451 ->addColumn ('foo ' , '<a href="#">Allowed</a> ' )
0 commit comments