class Locmare.ListGroupModule.Base extends Backbone.Collection\r
\r
initialize: (options) ->\r
- @item_name = options.item_name\r
+ @list_group_name = options.list_group_name\r
@list_name = options.list_name\r
- @list_group_manifest = LocalManifest.manifest().list_groups[@item_name]\r
+ @operators = options.operators\r
+ @params = options.options\r
+ \r
+ @list_group_manifest = LocalManifest.manifest().list_groups[@list_group_name]\r
@list_manifest = @list_group_manifest.lists[@list_name]\r
- @model_manifest = Manifest.manifest().models[@item_name]\r
- @model_list_manifest = @model_manifest.list\r
- @model = Manifest.item_name_to_model @item_name\r
- @table_name = @model.table_name\r
- \r
- page_number: (prm = null) ->\r
- page = Pettanr.to_i(parseInt(prm))\r
- page = 1 if page < 1\r
- page\r
- \r
- page_size: (prm) ->\r
- page_size = Pettanr.to_i(parseInt(prm))\r
- page_size = @max_page_size() if page_size > @max_page_size()\r
- page_size = @default_page_size() if page_size < 1\r
- page_size\r
- \r
- default_page_size: () ->\r
- @model_list_manifest.default_page_size\r
- \r
- max_page_size: () ->\r
- @model_list_manifest.max_page_size\r
- \r
- count: (operators, params, action) ->\r
- new Pettanr.CounterModel({}, {url: '/' + action.counter_url(params)})\r
- \r
- open: (operators, params, action, options, cb) ->\r
- page = @page_number(params['page']) \r
- page_size = @page_size(params['page_size'])\r
- #offset = (page - 1) * page_size\r
- #items = @items(operators, params, offset, page_size, action)\r
- @url = '/' + action.url(params)\r
- _this = this\r
- counter = new Locmare.ListGroupModule.Counter({}, {url: '/' + action.counter_url(params)})\r
- counter.fetch().done ->\r
- page_status = new Locmare.ListGroupModule.PageStatus(page, page_size, counter.count())\r
- _this.fetch(options).done ->\r
- #_this.boost(items)\r
- cb(page_status)\r
- \r
-class Locmare.ListGroupModule.Counter extends Backbone.Model\r
- initialize: (attr, options) ->\r
- @url = options['url']\r
+ \r
+ @controller_name = @list_group_name\r
+ @action_name = @list_name\r
+ @controller_manifest = Manifest.manifest().controllers[@controller_name]\r
+ @action_manifest = @controller_manifest.actions[@action_name]\r
+ @item_name = @action_manifest.item_name\r
+ @model_class = Manifest.item_name_to_model @item_name\r
+ @table_name = @model_class.table_name()\r
+ \r
+ parse: (res) ->\r
+ @page_status = res.page_status\r
+ res.list\r
+ \r
+ items: () ->\r
+ _.map @models, (model) =>\r
+ new @model_class(model.attributes)\r
\r
count: () ->\r
- @get('count')\r
- \r
-class Locmare.ListGroupModule.PageStatus\r
+ new Pettanr.CounterModel({}, {url: '/' + @action_manifest.counter_url(@params)})\r
\r
- constructor: (@current_page, @per_page, @count) ->\r
- @window_size = 3\r
+ open: (cb) ->\r
+ @url = '/' + @action_manifest.url(@params)\r
+ @fetch({cache: true}).done =>\r
+ # @boost(items)\r
+ cb()\r
\r