OSDN Git Service

fix filer edit box
[pettanr/pettanr.git] / app / assets / javascripts / locmare / filer / pager.js.coffee
1 class Locmare.FilerModule.Pager extends Backbone.View\r
2   tagName: 'ul'\r
3   className: 'pagination'\r
4   \r
5   initialize: (options) ->\r
6     @filer = options.filer\r
7   \r
8   total_result: () ->\r
9     _this = this\r
10     t = @filer.list_result.total\r
11     t.fetch().done ->\r
12       a = t.count\r
13       _this.render()\r
14   \r
15   list_result: () ->\r
16     @filer.list_result\r
17   \r
18   api_path: () ->\r
19     list_result().path\r
20   \r
21 class Locmare.FilerModule.DefaultPager extends Locmare.FilerModule.Pager\r
22   tagName: 'ul'\r
23   className: 'pagination'\r
24   \r
25   initialize: (options) ->\r
26     @page_status = options.page_status\r
27     @counter = @page_status.counter\r
28     @current_page = @page_status.current_page\r
29     @per_page = @page_status.per_page\r
30     @window_size = @page_status.window_size\r
31     @parts = []\r
32     _this = this\r
33     @counter.fetch().done ->\r
34       _this.total = _this.counter.get('count')\r
35       _this.total_page = Math.floor(_this.total / _this.per_page) + 1\r
36       _this.render()\r
37   \r
38   render: () ->\r
39     @parts = []\r
40     @build()\r
41     _this = this\r
42     this.$el.html('')\r
43     _.each @parts, (part) ->\r
44       _this.$el.append(part.render().el)\r
45     rb = new Pettanr.Tag.Div({class_name: 'row_break'})\r
46     this.$el.append(rb.render().el)\r
47     this\r
48   \r
49   build: () ->\r
50     @parts.push(new Locmare.FilerModule.DefaultPager.FirstPage({})) if @hasPreviousPage()\r
51     @parts.push(new Locmare.FilerModule.DefaultPager.PrevPage({})) if @hasPreviousPage()\r
52     @parts.push(new Locmare.FilerModule.DefaultPager.PageGap({})) if @hasPreviousPageGap()\r
53     f = if @hasPreviousPageGap()\r
54       @current_page - @window_size\r
55     else\r
56       1\r
57     t = if @hasNextPageGap()\r
58       @current_page + @window_size\r
59     else\r
60       @total_page\r
61     for page in [f..t]\r
62       @parts.push(new Locmare.FilerModule.DefaultPager.Page({page: page}))\r
63     @parts.push(new Locmare.FilerModule.DefaultPager.PageGap({})) if @hasNextPageGap()\r
64     @parts.push(new Locmare.FilerModule.DefaultPager.NextPage({})) if @hasNextPage()\r
65     @parts.push(new Locmare.FilerModule.DefaultPager.LastPage({})) if @hasNextPage()\r
66   \r
67   hasPreviousPage: () ->\r
68     @current_page > 1\r
69   \r
70   hasNextPage: () ->\r
71     @current_page < @total_page\r
72   \r
73   hasPreviousPageGap: () ->\r
74     @current_page > @window_size + 1\r
75   \r
76   hasNextPageGap: () ->\r
77     @total_page - @current_page > @window_size\r
78   \r
79 class Locmare.FilerModule.DefaultPager.FirstPage extends Backbone.View\r
80   tagName: 'li'\r
81   className: 'first'\r
82   \r
83   render: () ->\r
84     this.$el.html('<<')\r
85     this\r
86   \r
87 class Locmare.FilerModule.DefaultPager.PrevPage extends Backbone.View\r
88   tagName: 'li'\r
89   className: 'prev'\r
90   \r
91   render: () ->\r
92     this.$el.html('<')\r
93     this\r
94   \r
95 class Locmare.FilerModule.DefaultPager.PageGap extends Backbone.View\r
96   tagName: 'li'\r
97   className: 'page-gap'\r
98   \r
99   render: () ->\r
100     this.$el.html('...')\r
101     this\r
102   \r
103 class Locmare.FilerModule.DefaultPager.Page extends Backbone.View\r
104   tagName: 'li'\r
105   className: 'page'\r
106   \r
107   initialize: (options) ->\r
108     @page = options.page\r
109   \r
110   render: () ->\r
111     this.$el.html(@page)\r
112     this\r
113   \r
114 class Locmare.FilerModule.DefaultPager.NextPage extends Backbone.View\r
115   tagName: 'li'\r
116   className: 'next'\r
117   \r
118   render: () ->\r
119     this.$el.html('>')\r
120     this\r
121   \r
122 class Locmare.FilerModule.DefaultPager.LastPage extends Backbone.View\r
123   tagName: 'li'\r
124   className: 'last'\r
125   \r
126   render: () ->\r
127     this.$el.html('>>')\r
128     this\r
129   \r
130 class Locmare.FilerModule.MorePager extends Locmare.FilerModule.Pager\r
131   \r