66 < title > Generic Crud Table</ title >
77 < link rel ='icon ' type ='image/png ' href ='favicon.png '>
88 < link rel ='stylesheet ' href ='global.css '>
9+ < link rel ='stylesheet ' href ='https://ivosdc.github.io/svelte-generic-table-pager/build/table-pager.css '>
10+ < script defer src ='https://ivosdc.github.io/svelte-generic-table-pager/build/table-pager.js '> </ script >
911 < link rel ='stylesheet ' href ='build/crud-table.css '>
1012 < script defer src ='build/crud-table.js '> </ script >
1113</ head >
@@ -17,6 +19,7 @@ <h1><crud-table></crud-table></h1>
1719< p > </ p >
1820< hr >
1921< crud-table > </ crud-table >
22+ < table-pager > </ table-pager >
2023< hr >
2124</ span style="text-align: right"> < a href ="https://ivolution.one "> ivolution.one product - MIT License</ a >
2225< a href ="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7V5M288MUT7GE&source=url "> donate
@@ -31,11 +34,56 @@ <h1><crud-table></crud-table></h1>
3134</ body >
3235
3336< script >
34- let table_data = [
37+
38+ // config table-pager
39+ let table_data = [ ] ;
40+ let myData = [
41+ { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
42+ { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
43+ { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
44+ { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
45+ { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
46+ { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
47+ { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
48+ { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
49+ { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
3550 { id : '127' , name : 'myName' , job : 'code' , private : 'not editable' } ,
3651 { id : '127' , name : 'myName2' , job : 'code2' , private : 'not editable' }
37- ] ;
52+ ] ;
53+
54+ const pager_config = {
55+ lines : 5
56+ }
57+
58+ let currentPage = 1 ;
59+ let maxPages = 1 ;
60+ let genericTablePager = document . querySelector ( 'table-pager' ) ;
61+ genericTablePager . setAttribute ( 'pager_config' , JSON . stringify ( pager_config ) )
62+ genericTablePager . setAttribute ( 'pager_data' , JSON . stringify ( myData ) )
63+
3864
65+ genericTablePager . addEventListener ( 'newpage' , ( e ) => {
66+ console . log ( e )
67+ table_data = e . detail . body ;
68+ currentPage = e . detail . page ;
69+ maxPages = e . detail . pages ;
70+ refresh ( ) ;
71+ } ) ;
72+
73+
74+ function refresh_pager ( ) {
75+ genericTablePager . setAttribute ( 'pager_data' , JSON . stringify ( myData ) ) ;
76+ if ( currentPage > 1 ) {
77+ genericTablePager . shadowRoot . getElementById ( 'left' ) . click ( ) ;
78+ genericTablePager . shadowRoot . getElementById ( 'right' ) . click ( ) ;
79+ } else {
80+ genericTablePager . shadowRoot . getElementById ( 'right' ) . click ( ) ;
81+ genericTablePager . shadowRoot . getElementById ( 'left' ) . click ( ) ;
82+ }
83+ }
84+
85+
86+ //config crud-table
3987 let table_config = {
4088 name : 'Awesome' ,
4189 options : [ 'CREATE' , 'EDIT' , 'DELETE' , 'DETAILS' ] ,
@@ -55,27 +103,41 @@ <h1><crud-table></crud-table></h1>
55103
56104 genericCrudTable . addEventListener ( 'create' , ( ) => {
57105 console . log ( 'create' ) ;
58- table_data . push ( { name : 'myName' , job : 'code' , private : 'not editable' } ) ;
106+ myData . push ( { name : 'myName' , job : 'code' , private : 'not editable' } ) ;
59107 refresh ( ) ;
108+ refresh_pager ( ) ;
60109 } ) ;
61110
62- genericCrudTable . addEventListener ( 'details' , ( e ) => {
111+ genericCrudTable . addEventListener ( 'details' , ( e ) => {
63112 console . log ( 'details' ) ;
64113 console . log ( e . detail . body ) ;
65114 } ) ;
66115
67116 genericCrudTable . addEventListener ( 'update' , ( e ) => {
68117 console . log ( 'update' ) ;
69118 console . log ( e . detail . body ) ;
70- table_data [ e . detail . id ] = e . detail . body ;
119+ let BreakException = { } ;
120+ for ( let i = 0 ; i < myData . length ; i ++ ) {
121+ if ( JSON . stringify ( myData [ i ] ) === JSON . stringify ( table_data [ e . detail . id ] ) ) {
122+ myData [ i ] = e . detail . body ;
123+ break ;
124+ }
125+ }
71126 refresh ( ) ;
127+ refresh_pager ( ) ;
72128 } ) ;
73129
74130 genericCrudTable . addEventListener ( 'delete' , ( e ) => {
75131 console . log ( 'delete: ' + JSON . stringify ( e . detail . body ) ) ;
76132 console . log ( 'offset in view:' + e . detail . id ) ;
77- table_data = arrayRemove ( table_data , e . detail . id ) ;
133+ for ( let i = 0 ; i < myData . length ; i ++ ) {
134+ if ( JSON . stringify ( myData [ i ] ) === JSON . stringify ( table_data [ e . detail . id ] ) ) {
135+ myData = arrayRemove ( myData , i )
136+ break ;
137+ }
138+ }
78139 refresh ( ) ;
140+ refresh_pager ( ) ;
79141 } ) ;
80142
81143 genericCrudTable . addEventListener ( 'sort' , ( e ) => {
0 commit comments