@@ -10,25 +10,38 @@ export const AutosubmitChangeAttribute = "data-autosubmit-change";
10
10
11
11
export class AutosubmitPlugin implements DatagridPlugin {
12
12
onDatagridInit ( datagrid : Datagrid ) : boolean {
13
- // Auto-submit perPage
14
- datagrid . el
15
- . querySelectorAll < HTMLSelectElement > ( `select[${ AutosubmitPerPageAttribute } ]` )
13
+ datagrid . ajax . addEventListener ( 'complete' , ( event ) => {
14
+ this . initPerPage ( datagrid ) ;
15
+ this . initChange ( datagrid ) ;
16
+ } ) ;
17
+
18
+ this . initPerPage ( datagrid ) ;
19
+ this . initChange ( datagrid ) ;
20
+
21
+ return true ;
22
+ } ;
23
+
24
+ // Auto-submit perPage
25
+ initPerPage ( datagrid : Datagrid ) {
26
+ datagrid . el . querySelectorAll < HTMLSelectElement > ( `select[${ AutosubmitPerPageAttribute } ]` )
16
27
. forEach ( pageSelectEl => {
17
28
pageSelectEl . addEventListener ( "change" , ( ) => {
18
29
let inputEl = pageSelectEl . parentElement ?. querySelector ( "input[type=submit]" ) ;
19
30
if ( ! inputEl ) {
20
31
inputEl = pageSelectEl . parentElement ?. querySelector ( "button[type=submit]" ) ;
21
32
}
22
-
33
+ console . log ( { inputEl } ) ;
23
34
if ( ! ( inputEl instanceof HTMLElement ) ) return ;
24
-
25
35
const form = inputEl . closest ( 'form' ) ;
36
+ console . log ( { form } ) ;
26
37
form && datagrid . ajax . submitForm ( form ) ;
27
38
} ) ;
28
39
} ) ;
40
+ }
29
41
30
- datagrid . el
31
- . querySelectorAll < HTMLSelectElement | HTMLInputElement > ( `[${ AutosubmitAttribute } ]` )
42
+ // Auto-submit change
43
+ initChange ( datagrid : Datagrid ) {
44
+ datagrid . el . querySelectorAll < HTMLSelectElement | HTMLInputElement > ( `[${ AutosubmitAttribute } ]` )
32
45
. forEach ( submitEl => {
33
46
const form = submitEl . closest ( "form" ) ;
34
47
if ( ! form ) return ;
@@ -63,7 +76,7 @@ export class AutosubmitPlugin implements DatagridPlugin {
63
76
) ;
64
77
}
65
78
} ) ;
66
-
67
- return true ;
68
- } ;
79
+ }
69
80
}
81
+
82
+
0 commit comments