1 class Locmare.FilerModule.DefaultPager extends Backbone.View
\r
3 className: 'pagination'
\r
5 initialize: (options) ->
\r
6 @page_status = options.page_status
\r
7 @count = @page_status.count
\r
8 @current_page = @page_status.current_page
\r
9 @per_page = @page_status.per_page
\r
10 @window_size = @page_status.window_size
\r
11 @params = @page_status.params
\r
14 @total_page = Math.floor(@total / @per_page) + 1
\r
23 _.each @parts, (part) ->
\r
24 _this.$el.append(part.render().el)
\r
25 rb = new Tag.RowBreak()
\r
26 this.$el.append(rb.render().el)
\r
30 opt = {pager: this, page_status: @page_status}
\r
31 @parts.push(new Locmare.FilerModule.DefaultPager.FirstPage(opt)) if @hasPreviousPage()
\r
32 @parts.push(new Locmare.FilerModule.DefaultPager.PrevPage(opt)) if @hasPreviousPage()
\r
33 @parts.push(new Locmare.FilerModule.DefaultPager.PageGap(opt)) if @hasPreviousPageGap()
\r
34 f = if @hasPreviousPageGap()
\r
35 @current_page - @window_size
\r
38 t = if @hasNextPageGap()
\r
39 @current_page + @window_size
\r
43 @parts.push(new Locmare.FilerModule.DefaultPager.Page({pager: this, page: page, page_status: @page_status}))
\r
44 @parts.push(new Locmare.FilerModule.DefaultPager.PageGap(opt)) if @hasNextPageGap()
\r
45 @parts.push(new Locmare.FilerModule.DefaultPager.NextPage(opt)) if @hasNextPage()
\r
46 @parts.push(new Locmare.FilerModule.DefaultPager.LastPage(opt)) if @hasNextPage()
\r
48 hasPreviousPage: () ->
\r
52 @current_page < @total_page
\r
54 hasPreviousPageGap: () ->
\r
55 @current_page > @window_size + 1
\r
57 hasNextPageGap: () ->
\r
58 @total_page - @current_page > @window_size
\r
60 class Locmare.FilerModule.DefaultPager.FirstPage extends Backbone.View
\r
64 initialize: (options) ->
\r
65 @page_status = options.page_status
\r
66 @params = @page_status.params
\r
70 _.extend(my_params, @params)
\r
71 my_params['page'] = 1
\r
72 url = Pettanr.url(my_params['controller'], my_params['action'], my_params)
\r
73 linked_caption = new Tag.A({
\r
74 attr: {href: '/' + url},
\r
78 this.$el.html(linked_caption.render().el)
\r
81 class Locmare.FilerModule.DefaultPager.PrevPage extends Backbone.View
\r
85 initialize: (options) ->
\r
86 @page_status = options.page_status
\r
87 @current_page = @page_status.current_page
\r
88 @params = @page_status.params
\r
92 _.extend(my_params, @params)
\r
93 my_params['page'] = @current_page - 1
\r
94 url = Pettanr.url(my_params['controller'], my_params['action'], my_params)
\r
95 linked_caption = new Tag.A({
\r
96 attr: {href: '/' + url},
\r
100 this.$el.html(linked_caption.render().el)
\r
104 class Locmare.FilerModule.DefaultPager.PageGap extends Backbone.View
\r
106 className: 'page-gap'
\r
109 this.$el.html('...')
\r
112 class Locmare.FilerModule.DefaultPager.Page extends Backbone.View
\r
116 initialize: (options) ->
\r
117 @page_status = options.page_status
\r
118 @page = options.page
\r
119 @params = @page_status.params
\r
123 _.extend(my_params, @params)
\r
124 my_params['page'] = @page
\r
125 url = Pettanr.url(my_params['controller'], my_params['action'], my_params)
\r
126 linked_caption = new Tag.A({
\r
127 attr: {href: '/' + url},
\r
131 this.$el.html(linked_caption.render().el)
\r
134 class Locmare.FilerModule.DefaultPager.NextPage extends Backbone.View
\r
138 initialize: (options) ->
\r
139 @page_status = options.page_status
\r
140 @current_page = @page_status.current_page
\r
141 @params = @page_status.params
\r
145 _.extend(my_params, @params)
\r
146 my_params['page'] = @current_page + 1
\r
147 url = Pettanr.url(my_params['controller'], my_params['action'], my_params)
\r
148 linked_caption = new Tag.A({
\r
149 attr: {href: '/' + url},
\r
153 this.$el.html(linked_caption.render().el)
\r
156 class Locmare.FilerModule.DefaultPager.LastPage extends Backbone.View
\r
160 initialize: (options) ->
\r
161 @page_status = options.page_status
\r
162 @pager = options.pager
\r
163 @params = @page_status.params
\r
167 _.extend(my_params, @params)
\r
168 my_params['page'] = @pager.total_page
\r
169 url = Pettanr.url(my_params['controller'], my_params['action'], my_params)
\r
170 linked_caption = new Tag.A({
\r
171 attr: {href: '/' + url},
\r
175 this.$el.html(linked_caption.render().el)
\r
178 class Locmare.FilerModule.MorePager extends Backbone.View
\r