diff options
Diffstat (limited to 'web/js/labitrack.d/43-browse.coffee')
-rw-r--r-- | web/js/labitrack.d/43-browse.coffee | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/web/js/labitrack.d/43-browse.coffee b/web/js/labitrack.d/43-browse.coffee new file mode 100644 index 0000000..b0d3358 --- /dev/null +++ b/web/js/labitrack.d/43-browse.coffee @@ -0,0 +1,66 @@ +hdl_add = -> + console.log 'add' + +hdl_remove = -> + console.log 'remove' + +hdl_reset = -> + console.log 'reset' + @render() + +collection = Backbone.Collection.extend { + model: λ.o, + url: -> '/browse/'+(@nextpage++)+'.json' + comparator: (object) -> object.id + fetchpage: (page) -> + if page + @nextpage = page + @fetch() + parse: (data) -> + @stats = {count: data.count} + console.log data + return data.objects +} + +browse = Backbone.View.extend { + initialize: () -> + messages = @collection + messages.bind "reset", hdl_reset, @ + messages.bind "add", hdl_add, @ + messages.bind "remove", hdl_remove, @ + render: (page) -> + if page then @page = page + page = @page + stats = @collection.stats + pages = [] + if stats != undefined + pgcnt = Math.ceil(stats.count / 10) + pages = λ.pagination page, pgcnt + + data = { + rows: @collection.toJSON(), + pages: pages + } + console.log data + $(@el).html λ.template 'objecttable', data +} + +collection = new collection() + +view = λ.routableview.extend { + initialize: () -> + λ.routableview.prototype.initialize.call(@) + @browse = new browse({collection: collection}) + render: (page) -> + page || (page = 1) + page = parseInt page, 10 + console.log 'page', page + λ.setcontent 'browse', {page} + @browse.el = $(@el).find('#objecttable_ph')[0] + console.log @browse.render + @browse.render page + @browse.collection.fetchpage page +} + +view.route 'browse' +view.route 'browse/page/:page' |