OSDN Git Service

js viewer worked
[pettanr/pettanr.git] / app / assets / javascripts / locmare / list_group / list / base.js.coffee
1 class Locmare.ListGroupModule.Base extends Backbone.Collection\r
2   \r
3   initialize: (options) ->\r
4     @item_name = options.item_name\r
5     @list_name = options.list_name\r
6     @list_group_manifest = LocalManifest.manifest().list_groups[@item_name]\r
7     @list_manifest = @list_group_manifest.lists[@list_name]\r
8     @model_manifest = Manifest.manifest().models[@item_name]\r
9     @model_list_manifest = @model_manifest.list\r
10     @model_class = Manifest.item_name_to_model @item_name\r
11     @table_name = @model_class.table_name()\r
12   \r
13   page_number: (prm = null) ->\r
14     page = Pettanr.to_i(parseInt(prm))\r
15     page = 1 if page < 1\r
16     page\r
17   \r
18   page_size: (prm) ->\r
19     page_size = Pettanr.to_i(parseInt(prm))\r
20     page_size = @max_page_size() if page_size > @max_page_size()\r
21     page_size = @default_page_size() if page_size < 1\r
22     page_size\r
23   \r
24   default_page_size: () ->\r
25     @model_list_manifest.default_page_size\r
26   \r
27   max_page_size: () ->\r
28     @model_list_manifest.max_page_size\r
29   \r
30   count: (operators, params, action) ->\r
31     new Pettanr.CounterModel({}, {url: '/' + action.counter_url(params)})\r
32   \r
33   open: (operators, params, action, options, cb) ->\r
34     page = @page_number(params['page']) \r
35     page_size = @page_size(params['page_size'])\r
36     #offset = (page - 1) * page_size\r
37     #items = @items(operators, params, offset, page_size, action)\r
38     @url = '/' + action.url(params)\r
39     @model = Manifest.item_name_to_model action.item_name\r
40     _this = this\r
41     counter = new Locmare.ListGroupModule.Counter({}, {url: '/' + action.counter_url(params)})\r
42     counter.fetch().done ->\r
43       page_status = new Locmare.ListGroupModule.PageStatus(page, page_size, counter.count(), params)\r
44       _this.fetch(options).done ->\r
45         #_this.boost(items)\r
46         cb(page_status)\r
47   \r
48 class Locmare.ListGroupModule.Counter extends Backbone.Model\r
49   initialize: (attr, options) ->\r
50     @url = options['url']\r
51   \r
52   count: () ->\r
53     @get('count')\r
54   \r
55 class Locmare.ListGroupModule.PageStatus\r
56   \r
57   constructor: (@current_page, @per_page, @count, @params) ->\r
58     @window_size = 3\r
59   \r