7 attr :page_status, :options, :window_size,
8 :total, :current_page, :per_page, :total_page,
9 :template_dir, :template_name
11 def initialize page_status, options
12 @page_status = page_status
14 @total = @page_status.total
15 @current_page = @page_status.page
16 @per_page = @page_status.limit
17 @total_page = @page_status.total_page
19 @template_dir = 'templates/r/pager/'
20 @template_name = @template_dir + 'default'
21 @controller = Manifest.manifest.controllers[@options['controller'].to_s]
22 @action = @controller.actions[@options['action'].to_s]
26 f = if self.has_previous_page_gap
27 @current_page - @window_size
31 t = if self.has_next_page_gap
32 @current_page + @window_size
44 @current_page < @total_page
47 def has_previous_page_gap
48 @current_page > @window_size + 1
52 @total_page - @current_page > @window_size
57 @options.each do |k, v| # deep copy
61 params['page_size'] = @per_page