11# frozen_string_literal: true
22
33module Admin
4- COLUMNS = %i[ id first_col second_col third_col ] . freeze
4+ COLUMNS = %i[ id name full_address phone_number ] . freeze
55
66 Column = Struct . new ( :name , :title , :type , :options )
77 Item = Struct . new ( *COLUMNS )
88
9- RECORDS = [
10- Item . new ( 1 , 'value a1' , 'value a2' , 'value a3' ) ,
11- Item . new ( 2 , 'value b1' , 'value b2' , 'value b3' ) ,
12- Item . new ( 3 , 'value c1' , 'value c2' , 'value c3' )
13- ] . freeze
9+ RECORDS = 1 . upto ( 100 ) . map do |i |
10+ Item . new ( i , Faker ::Name . name , Faker ::Address . full_address , Faker ::PhoneNumber . phone_number )
11+ end
1412
15- class ItemsRepo < TinyAdmin ::Plugins ::BaseRepository
13+ class ItemsRepo < :: TinyAdmin ::Plugins ::BaseRepository
1614 def fields ( options : nil )
1715 COLUMNS . map do |name |
1816 Column . new ( name , name . to_s . tr ( '_' , ' ' ) , :string , { } )
@@ -28,8 +26,9 @@ def index_title
2826 end
2927
3028 def list ( page : 1 , limit : 10 , filters : nil , sort : [ 'id' ] )
29+ page_offset = page . positive? ? ( page - 1 ) * limit : 0
3130 [
32- RECORDS ,
31+ RECORDS [ page_offset ... page_offset + limit ] ,
3332 RECORDS . size
3433 ]
3534 end
0 commit comments