@@ -23,8 +23,8 @@ public function it_can_set_total_records()
23
23
{
24
24
$ crawler = $ this ->call ('GET ' , '/set-total-records ' );
25
25
$ crawler ->assertJson ([
26
- 'draw ' => 0 ,
27
- 'recordsTotal ' => 10 ,
26
+ 'draw ' => 0 ,
27
+ 'recordsTotal ' => 10 ,
28
28
'recordsFiltered ' => 10 ,
29
29
]);
30
30
}
@@ -34,8 +34,8 @@ public function it_can_set_zero_total_records()
34
34
{
35
35
$ crawler = $ this ->call ('GET ' , '/zero-total-records ' );
36
36
$ crawler ->assertJson ([
37
- 'draw ' => 0 ,
38
- 'recordsTotal ' => 0 ,
37
+ 'draw ' => 0 ,
38
+ 'recordsTotal ' => 0 ,
39
39
'recordsFiltered ' => 0 ,
40
40
]);
41
41
}
@@ -45,8 +45,8 @@ public function it_can_set_total_filtered_records()
45
45
{
46
46
$ crawler = $ this ->call ('GET ' , '/set-filtered-records ' );
47
47
$ crawler ->assertJson ([
48
- 'draw ' => 0 ,
49
- 'recordsTotal ' => 20 ,
48
+ 'draw ' => 0 ,
49
+ 'recordsTotal ' => 20 ,
50
50
'recordsFiltered ' => 10 ,
51
51
]);
52
52
}
@@ -56,8 +56,8 @@ public function it_returns_all_records_when_no_parameters_is_passed()
56
56
{
57
57
$ crawler = $ this ->call ('GET ' , '/query/users ' );
58
58
$ crawler ->assertJson ([
59
- 'draw ' => 0 ,
60
- 'recordsTotal ' => 20 ,
59
+ 'draw ' => 0 ,
60
+ 'recordsTotal ' => 20 ,
61
61
'recordsFiltered ' => 20 ,
62
62
]);
63
63
}
@@ -70,12 +70,12 @@ public function it_can_perform_global_search()
70
70
['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
71
71
['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
72
72
],
73
- 'search ' => ['value ' => 'Record-19 ' ],
73
+ 'search ' => ['value ' => 'Record-19 ' ],
74
74
]);
75
75
76
76
$ crawler ->assertJson ([
77
- 'draw ' => 0 ,
78
- 'recordsTotal ' => 20 ,
77
+ 'draw ' => 0 ,
78
+ 'recordsTotal ' => 20 ,
79
79
'recordsFiltered ' => 1 ,
80
80
]);
81
81
}
@@ -88,12 +88,12 @@ public function it_can_skip_total_records_count_query()
88
88
['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
89
89
['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
90
90
],
91
- 'search ' => ['value ' => 'Record-19 ' ],
91
+ 'search ' => ['value ' => 'Record-19 ' ],
92
92
]);
93
93
94
94
$ crawler ->assertJson ([
95
- 'draw ' => 0 ,
96
- 'recordsTotal ' => 0 ,
95
+ 'draw ' => 0 ,
96
+ 'recordsTotal ' => 0 ,
97
97
'recordsFiltered ' => 1 ,
98
98
]);
99
99
}
@@ -106,12 +106,12 @@ public function it_can_perform_multiple_term_global_search()
106
106
['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
107
107
['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
108
108
],
109
- 'search ' => ['value ' => 'Record-19 Email-19 ' ],
109
+ 'search ' => ['value ' => 'Record-19 Email-19 ' ],
110
110
]);
111
111
112
112
$ crawler ->assertJson ([
113
- 'draw ' => 0 ,
114
- 'recordsTotal ' => 20 ,
113
+ 'draw ' => 0 ,
114
+ 'recordsTotal ' => 20 ,
115
115
'recordsFiltered ' => 1 ,
116
116
]);
117
117
}
@@ -170,12 +170,12 @@ public function it_does_not_allow_search_on_added_columns()
170
170
['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
171
171
['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
172
172
],
173
- 'search ' => ['value ' => 'Record-19 ' ],
173
+ 'search ' => ['value ' => 'Record-19 ' ],
174
174
]);
175
175
176
176
$ crawler ->assertJson ([
177
- 'draw ' => 0 ,
178
- 'recordsTotal ' => 20 ,
177
+ 'draw ' => 0 ,
178
+ 'recordsTotal ' => 20 ,
179
179
'recordsFiltered ' => 1 ,
180
180
]);
181
181
}
@@ -188,6 +188,20 @@ public function it_returns_only_the_selected_columns()
188
188
$ this ->assertArrayHasKey ('name ' , $ json ['data ' ][0 ]);
189
189
}
190
190
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
+
191
205
/** @test */
192
206
public function it_does_not_allow_raw_html_on_added_columns ()
193
207
{
@@ -222,12 +236,12 @@ public function it_can_return_auto_index_column()
222
236
['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
223
237
['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
224
238
],
225
- 'search ' => ['value ' => 'Record-19 ' ],
239
+ 'search ' => ['value ' => 'Record-19 ' ],
226
240
]);
227
241
228
242
$ crawler ->assertJson ([
229
- 'draw ' => 0 ,
230
- 'recordsTotal ' => 20 ,
243
+ 'draw ' => 0 ,
244
+ 'recordsTotal ' => 20 ,
231
245
'recordsFiltered ' => 1 ,
232
246
]);
233
247
@@ -243,12 +257,12 @@ public function it_allows_search_on_added_column_with_custom_filter_handler()
243
257
['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
244
258
['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
245
259
],
246
- 'search ' => ['value ' => 'Record-19 ' ],
260
+ 'search ' => ['value ' => 'Record-19 ' ],
247
261
]);
248
262
249
263
$ crawler ->assertJson ([
250
- 'draw ' => 0 ,
251
- 'recordsTotal ' => 20 ,
264
+ 'draw ' => 0 ,
265
+ 'recordsTotal ' => 20 ,
252
266
'recordsFiltered ' => 1 ,
253
267
]);
254
268
@@ -262,10 +276,10 @@ public function it_returns_search_panes_options()
262
276
$ crawler = $ this ->call ('GET ' , '/query/search-panes ' );
263
277
264
278
$ crawler ->assertJson ([
265
- 'draw ' => 0 ,
266
- 'recordsTotal ' => 20 ,
279
+ 'draw ' => 0 ,
280
+ 'recordsTotal ' => 20 ,
267
281
'recordsFiltered ' => 20 ,
268
- 'searchPanes ' => [
282
+ 'searchPanes ' => [
269
283
'options ' => [
270
284
'id ' => [],
271
285
],
@@ -287,8 +301,8 @@ public function it_performs_search_using_search_panes()
287
301
]);
288
302
289
303
$ crawler ->assertJson ([
290
- 'draw ' => 0 ,
291
- 'recordsTotal ' => 20 ,
304
+ 'draw ' => 0 ,
305
+ 'recordsTotal ' => 20 ,
292
306
'recordsFiltered ' => 2 ,
293
307
]);
294
308
}
@@ -299,21 +313,21 @@ public function it_allows_column_search_added_column_with_custom_filter_handler(
299
313
$ crawler = $ this ->call ('GET ' , '/query/blacklisted-filter ' , [
300
314
'columns ' => [
301
315
[
302
- 'data ' => 'foo ' ,
303
- 'name ' => 'foo ' ,
316
+ 'data ' => 'foo ' ,
317
+ 'name ' => 'foo ' ,
304
318
'searchable ' => 'true ' ,
305
- 'orderable ' => 'true ' ,
306
- 'search ' => ['value ' => 'Record-1 ' ],
319
+ 'orderable ' => 'true ' ,
320
+ 'search ' => ['value ' => 'Record-1 ' ],
307
321
],
308
322
['data ' => 'name ' , 'name ' => 'name ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
309
323
['data ' => 'email ' , 'name ' => 'email ' , 'searchable ' => 'true ' , 'orderable ' => 'true ' ],
310
324
],
311
- 'search ' => ['value ' => '' ],
325
+ 'search ' => ['value ' => '' ],
312
326
]);
313
327
314
328
$ crawler ->assertJson ([
315
- 'draw ' => 0 ,
316
- 'recordsTotal ' => 20 ,
329
+ 'draw ' => 0 ,
330
+ 'recordsTotal ' => 20 ,
317
331
'recordsFiltered ' => 1 ,
318
332
]);
319
333
}
@@ -324,8 +338,8 @@ public function it_can_return_formatted_columns()
324
338
$ crawler = $ this ->call ('GET ' , '/query/formatColumn ' );
325
339
326
340
$ crawler ->assertJson ([
327
- 'draw ' => 0 ,
328
- 'recordsTotal ' => 20 ,
341
+ 'draw ' => 0 ,
342
+ 'recordsTotal ' => 20 ,
329
343
'recordsFiltered ' => 20 ,
330
344
]);
331
345
@@ -345,8 +359,8 @@ public function it_can_return_added_column_with_dependency_injection()
345
359
$ crawler = $ this ->call ('GET ' , '/closure-di ' );
346
360
347
361
$ crawler ->assertJson ([
348
- 'draw ' => 0 ,
349
- 'recordsTotal ' => 20 ,
362
+ 'draw ' => 0 ,
363
+ 'recordsTotal ' => 20 ,
350
364
'recordsFiltered ' => 20 ,
351
365
]);
352
366
@@ -417,6 +431,21 @@ protected function setUp(): void
417
431
->toJson ();
418
432
});
419
433
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
+
420
449
$ router ->get ('/query/xss-add ' , function (DataTables $ dataTable ) {
421
450
return $ dataTable ->query (DB ::table ('users ' ))
422
451
->addColumn ('foo ' , '<a href="#">Allowed</a> ' )
0 commit comments