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