File tree Expand file tree Collapse file tree 3 files changed +58
-0
lines changed Expand file tree Collapse file tree 3 files changed +58
-0
lines changed Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Rappasoft \LaravelLivewireTables \Events ;
4
+
5
+ use Illuminate \Queue \SerializesModels ;
6
+ use Illuminate \Foundation \Events \Dispatchable ;
7
+ use JohnDoe \BlogPackage \Models \Post ;
8
+
9
+ class ColumnsSelected
10
+ {
11
+ use Dispatchable, SerializesModels;
12
+
13
+ public $ columns ;
14
+ public $ key ;
15
+
16
+ public function __construct ($ key , $ columns )
17
+ {
18
+ $ this ->key = $ key ;
19
+ $ this ->columns = $ columns ;
20
+ }
21
+
22
+
23
+ }
Original file line number Diff line number Diff line change 4
4
5
5
use Rappasoft \LaravelLivewireTables \Traits \Configuration \ColumnSelectConfiguration ;
6
6
use Rappasoft \LaravelLivewireTables \Traits \Helpers \ColumnSelectHelpers ;
7
+ use Rappasoft \LaravelLivewireTables \Events \ColumnsSelected ;
8
+ use Illuminate \Support \Facades \Event ;
7
9
8
10
trait WithColumnSelect
9
11
{
@@ -58,13 +60,15 @@ public function selectAllColumns()
58
60
{
59
61
$ this ->{$ this ->tableName }['columns ' ] = [];
60
62
$ this ->forgetColumnSelectSession ();
63
+ event (new ColumnsSelected ($ this ->getColumnSelectSessionKey (), $ this ->selectedColumns ));
61
64
}
62
65
63
66
public function deselectAllColumns ()
64
67
{
65
68
$ this ->{$ this ->tableName }['columns ' ] = [];
66
69
$ this ->selectedColumns = [];
67
70
session ([$ this ->getColumnSelectSessionKey () => []]);
71
+ event (new ColumnsSelected ($ this ->getColumnSelectSessionKey (), $ this ->selectedColumns ));
68
72
}
69
73
70
74
public function updatedSelectedColumns (): void
@@ -75,6 +79,7 @@ public function updatedSelectedColumns(): void
75
79
} else {
76
80
$ this ->{$ this ->tableName }['columns ' ] = $ this ->selectedColumns ;
77
81
session ([$ this ->getColumnSelectSessionKey () => $ this ->{$ this ->tableName }['columns ' ]]);
82
+ event (new ColumnsSelected ($ this ->getColumnSelectSessionKey (), $ this ->selectedColumns ));
78
83
}
79
84
}
80
85
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Rappasoft \LaravelLivewireTables \Events ;
4
+
5
+ use Rappasoft \LaravelLivewireTables \Tests \TestCase ;
6
+ use Rappasoft \LaravelLivewireTables \Events \ColumnsSelected ;
7
+ use Illuminate \Support \Facades \Event ;
8
+
9
+
10
+ class ColumnSelectedTest extends TestCase
11
+ {
12
+
13
+ /** @test */
14
+ function an_event_is_emitted_when_a_column_selection_are_updated ()
15
+ {
16
+ Event::fake ([
17
+ ColumnsSelected::class
18
+ ]);
19
+
20
+ $ test ['columns ' ] = $ this ->basicTable ->selectedColumns ;
21
+ $ test ['key ' ] = $ this ->basicTable ->getDataTableFingerprint ().'-columnSelectEnabled ' ;
22
+
23
+ // Select all columns to test event trigger
24
+ $ this ->basicTable ->selectAllColumns ();
25
+
26
+ Event::assertDispatched (ColumnsSelected::class, function ($ event ) use ($ test ) {
27
+ return ($ event ->columns === $ test ['columns ' ] && $ event ->key === $ test ['key ' ]);
28
+ });
29
+ }
30
+ }
You can’t perform that action at this time.
0 commit comments